@etherisc/gif-next 0.0.2-f2df3e2-873 → 0.0.2-f347f00-614

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 (571) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +238 -167
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +225 -2171
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +378 -2689
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +643 -345
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -182
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  47. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  48. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  49. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  50. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  56. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  66. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +65 -48
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  68. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  70. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
  71. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  72. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  86. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +96 -186
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  92. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -141
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  94. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  96. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  105. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  106. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  117. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +124 -0
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1896 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +762 -103
  130. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +166 -0
  132. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +182 -0
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  136. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1554 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  158. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1184 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  164. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  166. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  168. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  170. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  172. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  176. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  178. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  180. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  182. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  184. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  186. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  188. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  190. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  192. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  193. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  194. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  199. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  204. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  205. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  208. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  209. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  210. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  211. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  218. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  219. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  233. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  264. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  266. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  268. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  270. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  274. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  275. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  276. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  277. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  278. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  280. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  282. package/contracts/{components → distribution}/Distribution.sol +41 -64
  283. package/contracts/distribution/DistributionService.sol +297 -0
  284. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  285. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  286. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  287. package/contracts/instance/BundleManager.sol +5 -5
  288. package/contracts/instance/IInstance.sol +51 -66
  289. package/contracts/instance/IInstanceService.sol +51 -22
  290. package/contracts/instance/Instance.sol +137 -184
  291. package/contracts/instance/InstanceAdmin.sol +331 -0
  292. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  293. package/contracts/instance/InstanceReader.sol +130 -55
  294. package/contracts/instance/InstanceService.sol +258 -297
  295. package/contracts/instance/InstanceServiceManager.sol +11 -21
  296. package/contracts/instance/InstanceStore.sol +269 -0
  297. package/contracts/instance/base/BalanceStore.sol +123 -0
  298. package/contracts/instance/base/Cloneable.sol +28 -0
  299. package/contracts/instance/base/ObjectCounter.sol +21 -0
  300. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
  301. package/contracts/instance/module/IAccess.sol +4 -12
  302. package/contracts/instance/module/IBundle.sol +6 -9
  303. package/contracts/instance/module/IComponents.sol +21 -10
  304. package/contracts/instance/module/IDistribution.sol +7 -6
  305. package/contracts/instance/module/IPolicy.sol +22 -15
  306. package/contracts/instance/module/IRisk.sol +1 -1
  307. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  308. package/contracts/oracle/IOracle.sol +20 -0
  309. package/contracts/oracle/IOracleComponent.sol +32 -0
  310. package/contracts/oracle/IOracleService.sol +65 -0
  311. package/contracts/oracle/Oracle.sol +145 -0
  312. package/contracts/oracle/OracleService.sol +278 -0
  313. package/contracts/oracle/OracleServiceManager.sol +42 -0
  314. package/contracts/pool/BundleService.sol +296 -0
  315. package/contracts/pool/BundleServiceManager.sol +42 -0
  316. package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
  317. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  318. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  319. package/contracts/{components → pool}/Pool.sol +52 -55
  320. package/contracts/pool/PoolService.sol +452 -0
  321. package/contracts/pool/PoolServiceManager.sol +42 -0
  322. package/contracts/product/ApplicationService.sol +254 -0
  323. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  324. package/contracts/product/ClaimService.sol +442 -0
  325. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  326. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  327. package/contracts/product/IClaimService.sol +99 -0
  328. package/contracts/product/IPolicyService.sol +78 -0
  329. package/contracts/product/IPricingService.sol +39 -0
  330. package/contracts/product/IProductComponent.sol +42 -0
  331. package/contracts/product/IProductService.sol +33 -0
  332. package/contracts/product/PolicyService.sol +475 -0
  333. package/contracts/product/PolicyServiceManager.sol +42 -0
  334. package/contracts/product/PricingService.sol +300 -0
  335. package/contracts/product/PricingServiceManager.sol +42 -0
  336. package/contracts/{components → product}/Product.sol +89 -83
  337. package/contracts/product/ProductService.sol +124 -0
  338. package/contracts/product/ProductServiceManager.sol +42 -0
  339. package/contracts/registry/ChainNft.sol +8 -1
  340. package/contracts/registry/IRegistry.sol +44 -21
  341. package/contracts/registry/IRegistryService.sol +37 -36
  342. package/contracts/registry/IServiceAuthorization.sol +35 -0
  343. package/contracts/registry/Registry.sol +192 -83
  344. package/contracts/registry/RegistryAdmin.sol +333 -0
  345. package/contracts/registry/RegistryService.sol +71 -87
  346. package/contracts/registry/RegistryServiceManager.sol +21 -30
  347. package/contracts/registry/ReleaseManager.sol +394 -197
  348. package/contracts/registry/ServiceAuthorization.sol +83 -0
  349. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  350. package/contracts/registry/TokenRegistry.sol +261 -62
  351. package/contracts/shared/AccessAdmin.sol +750 -0
  352. package/contracts/shared/AccessManagerCustom.sol +741 -0
  353. package/contracts/shared/AccessManagerExtended.sol +481 -0
  354. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  355. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  356. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  357. package/contracts/shared/Component.sol +281 -0
  358. package/contracts/shared/ComponentService.sol +617 -0
  359. package/contracts/shared/ComponentServiceManager.sol +35 -0
  360. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  361. package/contracts/shared/ERC165.sol +1 -1
  362. package/contracts/shared/IAccessAdmin.sol +162 -0
  363. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  364. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  365. package/contracts/{components → shared}/IComponent.sol +23 -29
  366. package/contracts/shared/IComponentService.sol +102 -0
  367. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  368. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  369. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  370. package/contracts/shared/INftOwnable.sol +2 -2
  371. package/contracts/shared/IPolicyHolder.sol +29 -10
  372. package/contracts/shared/IRegistryLinked.sol +0 -1
  373. package/contracts/shared/IService.sol +11 -2
  374. package/contracts/shared/IVersionable.sol +1 -1
  375. package/contracts/shared/InitializableCustom.sol +177 -0
  376. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  377. package/contracts/shared/KeyValueStore.sol +127 -0
  378. package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
  379. package/contracts/shared/NftIdSetManager.sol +65 -0
  380. package/contracts/shared/NftOwnable.sol +3 -16
  381. package/contracts/shared/PolicyHolder.sol +40 -19
  382. package/contracts/shared/ProxyManager.sol +34 -4
  383. package/contracts/shared/Registerable.sol +13 -12
  384. package/contracts/shared/RegistryLinked.sol +0 -5
  385. package/contracts/shared/Service.sol +32 -21
  386. package/contracts/shared/TokenHandler.sol +27 -2
  387. package/contracts/shared/Versionable.sol +1 -1
  388. package/contracts/staking/IStaking.sol +168 -0
  389. package/contracts/staking/IStakingService.sol +153 -0
  390. package/contracts/staking/StakeManagerLib.sol +231 -0
  391. package/contracts/staking/Staking.sol +513 -0
  392. package/contracts/staking/StakingManager.sol +54 -0
  393. package/contracts/staking/StakingReader.sol +187 -0
  394. package/contracts/staking/StakingService.sol +411 -0
  395. package/contracts/staking/StakingServiceManager.sol +44 -0
  396. package/contracts/staking/StakingStore.sol +613 -0
  397. package/contracts/staking/TargetManagerLib.sol +207 -0
  398. package/contracts/{types → type}/AddressSet.sol +1 -1
  399. package/contracts/type/Amount.sol +128 -0
  400. package/contracts/{types → type}/Blocknumber.sol +20 -3
  401. package/contracts/{types → type}/Fee.sol +24 -22
  402. package/contracts/{types → type}/NftId.sol +14 -16
  403. package/contracts/{types → type}/NftIdSet.sol +2 -2
  404. package/contracts/type/ObjectType.sol +241 -0
  405. package/contracts/{types → type}/Referral.sol +1 -1
  406. package/contracts/type/RequestId.sol +75 -0
  407. package/contracts/{types → type}/RiskId.sol +1 -1
  408. package/contracts/type/RoleId.sol +201 -0
  409. package/contracts/{types → type}/Seconds.sol +27 -0
  410. package/contracts/type/Selector.sol +102 -0
  411. package/contracts/{types → type}/StateId.sol +27 -2
  412. package/contracts/type/String.sol +53 -0
  413. package/contracts/{types → type}/Timestamp.sol +6 -2
  414. package/contracts/{types → type}/Version.sol +1 -1
  415. package/package.json +3 -3
  416. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  417. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  418. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  419. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  420. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  421. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  422. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  423. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  424. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  425. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  426. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  427. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  428. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  429. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  430. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  431. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  433. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  434. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  435. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  436. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  437. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  438. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  439. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  440. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  441. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  443. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  444. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  445. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
  447. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  448. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  449. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  451. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  453. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  454. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  455. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  456. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  457. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  458. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  462. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  464. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
  466. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  468. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  470. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  472. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  474. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  476. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  477. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  478. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  479. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  480. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  481. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  482. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  483. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  484. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  485. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  486. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  487. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  488. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  489. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  490. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  491. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  492. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  493. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  494. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  495. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  496. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  497. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
  499. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  500. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  501. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  503. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  504. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  507. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  508. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  510. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  511. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  512. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  513. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  515. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  518. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  521. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  523. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  529. package/contracts/components/Component.sol +0 -253
  530. package/contracts/components/IProductComponent.sol +0 -40
  531. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  532. package/contracts/instance/Cloneable.sol +0 -51
  533. package/contracts/instance/InstanceAccessManager.sol +0 -527
  534. package/contracts/instance/base/ComponentService.sol +0 -121
  535. package/contracts/instance/base/KeyValueStore.sol +0 -180
  536. package/contracts/instance/module/ISetup.sol +0 -33
  537. package/contracts/instance/module/ITreasury.sol +0 -23
  538. package/contracts/instance/service/ApplicationService.sol +0 -355
  539. package/contracts/instance/service/BundleService.sol +0 -436
  540. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  541. package/contracts/instance/service/ClaimService.sol +0 -239
  542. package/contracts/instance/service/DistributionService.sol +0 -431
  543. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  544. package/contracts/instance/service/IClaimService.sol +0 -92
  545. package/contracts/instance/service/IPolicyService.sol +0 -137
  546. package/contracts/instance/service/IProductService.sol +0 -40
  547. package/contracts/instance/service/PolicyService.sol +0 -541
  548. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  549. package/contracts/instance/service/PoolService.sol +0 -303
  550. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  551. package/contracts/instance/service/ProductService.sol +0 -210
  552. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  553. package/contracts/registry/RegistryAccessManager.sol +0 -216
  554. package/contracts/shared/ContractDeployerLib.sol +0 -72
  555. package/contracts/test/TestFee.sol +0 -25
  556. package/contracts/test/TestRegisterable.sol +0 -18
  557. package/contracts/test/TestRoleId.sol +0 -14
  558. package/contracts/test/TestService.sol +0 -25
  559. package/contracts/test/TestVersion.sol +0 -44
  560. package/contracts/test/TestVersionable.sol +0 -17
  561. package/contracts/test/Usdc.sol +0 -26
  562. package/contracts/types/Amount.sol +0 -65
  563. package/contracts/types/ChainId.sol +0 -38
  564. package/contracts/types/NumberId.sol +0 -52
  565. package/contracts/types/ObjectType.sol +0 -157
  566. package/contracts/types/RoleId.sol +0 -97
  567. /package/contracts/{types → type}/ClaimId.sol +0 -0
  568. /package/contracts/{types → type}/DistributorType.sol +0 -0
  569. /package/contracts/{types → type}/Key32.sol +0 -0
  570. /package/contracts/{types → type}/PayoutId.sol +0 -0
  571. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -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 {OracleService} from "./OracleService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract OracleServiceManager is ProxyManager {
12
+
13
+ OracleService private _oracleService;
14
+
15
+ /// @dev initializes proxy manager with service implementation and deploys instance
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ OracleService orclSrv = new OracleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(orclSrv),
27
+ data,
28
+ salt);
29
+
30
+ _oracleService = OracleService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getOracleService()
35
+ external
36
+ view
37
+ returns (OracleService oracleService)
38
+ {
39
+ return _oracleService;
40
+ }
41
+
42
+ }
@@ -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,28 +1,30 @@
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
 
16
16
  event LogBundleServiceBundleActivated(NftId bundleNftId);
17
17
  event LogBundleServiceBundleLocked(NftId bundleNftId);
18
18
 
19
- error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, uint256 amount);
19
+ error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
20
20
  error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
21
- error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, uint capacityAmount, uint collateralAmount);
21
+ error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
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
+
27
+ error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
26
28
 
27
29
  /// @dev create a new bundle for the specified attributes
28
30
  /// may only be called by pool service
@@ -38,6 +40,13 @@ interface IBundleService is IService {
38
40
  external
39
41
  returns(NftId bundleNftId); // the nft id of the newly created bundle
40
42
 
43
+
44
+ /// @dev increase bundle stakes by the specified amount
45
+ /// may only be called by the bundle owner
46
+ // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
47
+
48
+ // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
49
+
41
50
  /// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
42
51
  /// only active bundles may be locked
43
52
  /// may only be called by registered and unlocked pool components
@@ -71,11 +80,10 @@ interface IBundleService is IService {
71
80
  /// the premium (minus bundle fee) is added to the bundle capital
72
81
  /// may only be called by pool service
73
82
  function lockCollateral(
74
- IInstance instanceNftId,
83
+ IInstance instance,
75
84
  NftId policyNftId,
76
85
  NftId bundleNftId,
77
- uint256 collateralAmount,
78
- uint256 premium // premium amount after pool fee
86
+ Amount collateralAmount
79
87
  ) external;
80
88
 
81
89
 
@@ -85,12 +93,14 @@ interface IBundleService is IService {
85
93
  IInstance instance,
86
94
  NftId policyNftId,
87
95
  NftId bundleNftId,
88
- uint256 collateralAmount
96
+ Amount collateralAmount
89
97
  ) external;
90
98
 
91
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
92
-
93
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
94
-
95
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
99
+ /// @dev unlink policy from bundle
100
+ /// policy may only be unlinked if policy is closeable
101
+ /// may only be called by pool service
102
+ function unlinkPolicy(
103
+ IInstance instance,
104
+ NftId policyNftId
105
+ ) external;
96
106
  }
@@ -1,34 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
7
  import {IComponents} from "../instance/module/IComponents.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {Seconds} from "../types/Seconds.sol";
10
- import {UFixed} from "../types/UFixed.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";
11
12
 
12
13
  /// @dev pool components hold and manage the collateral to cover active policies
13
14
  /// pools come in different flavors
14
- interface IPoolComponent is IComponent {
15
+ interface IPoolComponent is IInstanceLinkedComponent {
15
16
 
16
17
  error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
17
18
  error ErrorPoolNotPoolService(address caller);
18
19
 
19
20
  error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
21
 
21
- event LogPoolVerifiedByPool(address pool, NftId applicationNftId, uint256 collateralizationAmount);
22
+ event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
22
23
 
23
24
  /// @dev increases the staked tokens by the specified amount
24
25
  /// only the bundle owner may stake tokens
25
26
  /// bundle MUST be in active or locked state
26
- function stake(NftId bundleNftId, uint256 amount) external;
27
+ function stake(NftId bundleNftId, Amount amount) external;
27
28
 
28
29
  /// @dev decreases the staked tokens by the specified amount
29
30
  /// only the bundle owner may unstake tokens from the bundle
30
31
  /// bundle MUST be in active, locked or closed state
31
- function unstake(NftId bundleNftId, uint256 amount) external;
32
+ function unstake(NftId bundleNftId, Amount amount) external;
32
33
 
33
34
  /// @dev extends the bundle lifetime of the bundle by the specified time
34
35
  /// only the bundle owner may extend the bundle's lifetime
@@ -61,7 +62,7 @@ interface IPoolComponent is IComponent {
61
62
 
62
63
  /// @dev sets the maximum overall capital amound held by this pool
63
64
  /// function may only be called by pool owner
64
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
65
+ function setMaxCapitalAmount(Amount maxCapitalAmount) external;
65
66
 
66
67
  /// @dev sets the required role to create/own bundles
67
68
  /// may only be called once after setting up a pool
@@ -88,7 +89,7 @@ interface IPoolComponent is IComponent {
88
89
  bytes memory applicationData,
89
90
  NftId bundleNftId,
90
91
  bytes memory bundleFilter,
91
- uint256 collateralizationAmount
92
+ Amount collateralizationAmount
92
93
  ) external;
93
94
 
94
95
  /// @dev returns true iff the application matches with the bundle
@@ -99,15 +100,13 @@ interface IPoolComponent is IComponent {
99
100
  bytes memory applicationData,
100
101
  NftId bundleNftId,
101
102
  bytes memory bundleFilter,
102
- uint256 collateralizationAmount
103
+ Amount collateralizationAmount
103
104
  )
104
105
  external
105
106
  view
106
107
  returns (bool isMatching);
107
108
 
108
- /// @dev returns pool specific infos for this pool
109
- /// when registered with an instance the info is obtained from the data stored in the instance
110
- /// when not registered the function returns the info from the component contract
111
- function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
109
+ /// @dev returns initial pool specific infos for this pool
110
+ function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
112
111
 
113
112
  }