@etherisc/gif-next 0.0.2-917cede-703 → 0.0.2-92c50c2-136

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 (591) hide show
  1. package/README.md +20 -3
  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 +3597 -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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  49. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  50. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  51. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  58. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  64. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  67. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  68. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +55 -61
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  70. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  72. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +254 -136
  73. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  74. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  76. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  80. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  84. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  87. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +96 -186
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  90. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  93. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  94. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -141
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  96. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
  97. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  98. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  100. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  104. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  107. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  108. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  110. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  114. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  118. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  120. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  130. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +709 -91
  134. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  136. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  138. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  140. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  142. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  144. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  152. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  153. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  154. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  156. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  158. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  160. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  162. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  168. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  170. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  172. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  174. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  176. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  178. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  180. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  182. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  186. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  188. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  190. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  192. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  194. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  196. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  198. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  208. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  209. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  210. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  212. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  214. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  239. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  255. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  276. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  284. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  288. package/contracts/{components → distribution}/Distribution.sol +41 -64
  289. package/contracts/distribution/DistributionService.sol +297 -0
  290. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  291. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  292. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  293. package/contracts/instance/BundleManager.sol +5 -5
  294. package/contracts/instance/IInstance.sol +51 -66
  295. package/contracts/instance/IInstanceService.sol +51 -22
  296. package/contracts/instance/Instance.sol +137 -184
  297. package/contracts/instance/InstanceAdmin.sol +331 -0
  298. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  299. package/contracts/instance/InstanceReader.sol +130 -55
  300. package/contracts/instance/InstanceService.sol +258 -297
  301. package/contracts/instance/InstanceServiceManager.sol +11 -21
  302. package/contracts/instance/InstanceStore.sol +272 -0
  303. package/contracts/instance/base/BalanceStore.sol +123 -0
  304. package/contracts/instance/base/Cloneable.sol +28 -0
  305. package/contracts/instance/base/ObjectCounter.sol +21 -0
  306. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  307. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
  308. package/contracts/instance/module/IAccess.sol +4 -12
  309. package/contracts/instance/module/IBundle.sol +6 -9
  310. package/contracts/instance/module/IComponents.sol +21 -10
  311. package/contracts/instance/module/IDistribution.sol +7 -6
  312. package/contracts/instance/module/IPolicy.sol +22 -15
  313. package/contracts/instance/module/IRisk.sol +1 -1
  314. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  315. package/contracts/oracle/IOracle.sol +20 -0
  316. package/contracts/oracle/IOracleComponent.sol +32 -0
  317. package/contracts/oracle/IOracleService.sol +65 -0
  318. package/contracts/oracle/Oracle.sol +145 -0
  319. package/contracts/oracle/OracleService.sol +278 -0
  320. package/contracts/oracle/OracleServiceManager.sol +42 -0
  321. package/contracts/pool/BundleService.sol +296 -0
  322. package/contracts/pool/BundleServiceManager.sol +42 -0
  323. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  324. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  325. package/contracts/{instance/service → pool}/IPoolService.sol +70 -22
  326. package/contracts/{components → pool}/Pool.sol +52 -55
  327. package/contracts/pool/PoolService.sol +452 -0
  328. package/contracts/pool/PoolServiceManager.sol +42 -0
  329. package/contracts/product/ApplicationService.sol +254 -0
  330. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  331. package/contracts/product/ClaimService.sol +442 -0
  332. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  333. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  334. package/contracts/product/IClaimService.sol +99 -0
  335. package/contracts/product/IPolicyService.sol +78 -0
  336. package/contracts/product/IPricingService.sol +39 -0
  337. package/contracts/product/IProductComponent.sol +42 -0
  338. package/contracts/product/IProductService.sol +33 -0
  339. package/contracts/product/PolicyService.sol +475 -0
  340. package/contracts/product/PolicyServiceManager.sol +42 -0
  341. package/contracts/product/PricingService.sol +300 -0
  342. package/contracts/product/PricingServiceManager.sol +42 -0
  343. package/contracts/{components → product}/Product.sol +89 -83
  344. package/contracts/product/ProductService.sol +124 -0
  345. package/contracts/product/ProductServiceManager.sol +42 -0
  346. package/contracts/registry/ChainNft.sol +8 -1
  347. package/contracts/registry/IRegistry.sol +44 -21
  348. package/contracts/registry/IRegistryService.sol +37 -36
  349. package/contracts/registry/IServiceAuthorization.sol +38 -0
  350. package/contracts/registry/Registry.sol +198 -83
  351. package/contracts/registry/RegistryAdmin.sol +335 -0
  352. package/contracts/registry/RegistryService.sol +71 -87
  353. package/contracts/registry/RegistryServiceManager.sol +21 -30
  354. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  355. package/contracts/registry/ReleaseManager.sol +370 -191
  356. package/contracts/registry/ServiceAuthorization.sol +90 -0
  357. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  358. package/contracts/registry/TokenRegistry.sol +261 -62
  359. package/contracts/shared/AccessAdmin.sol +759 -0
  360. package/contracts/shared/AccessManagerCustom.sol +741 -0
  361. package/contracts/shared/AccessManagerExtended.sol +481 -0
  362. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  363. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  364. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  365. package/contracts/shared/Component.sol +281 -0
  366. package/contracts/shared/ComponentService.sol +620 -0
  367. package/contracts/shared/ComponentServiceManager.sol +35 -0
  368. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  369. package/contracts/shared/ERC165.sol +1 -1
  370. package/contracts/shared/IAccessAdmin.sol +168 -0
  371. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  372. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  373. package/contracts/{components → shared}/IComponent.sol +23 -29
  374. package/contracts/shared/IComponentService.sol +102 -0
  375. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  376. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  377. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  378. package/contracts/shared/INftOwnable.sol +2 -2
  379. package/contracts/shared/IPolicyHolder.sol +29 -10
  380. package/contracts/shared/IRegistryLinked.sol +0 -1
  381. package/contracts/shared/IService.sol +11 -2
  382. package/contracts/shared/IVersionable.sol +1 -1
  383. package/contracts/shared/InitializableCustom.sol +177 -0
  384. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  385. package/contracts/shared/KeyValueStore.sol +131 -0
  386. package/contracts/shared/Lifecycle.sol +77 -0
  387. package/contracts/shared/NftIdSetManager.sol +65 -0
  388. package/contracts/shared/NftOwnable.sol +3 -16
  389. package/contracts/shared/PolicyHolder.sol +40 -19
  390. package/contracts/shared/ProxyManager.sol +34 -4
  391. package/contracts/shared/Registerable.sol +13 -12
  392. package/contracts/shared/RegistryLinked.sol +0 -5
  393. package/contracts/shared/Service.sol +32 -21
  394. package/contracts/shared/TokenHandler.sol +27 -2
  395. package/contracts/shared/Versionable.sol +1 -1
  396. package/contracts/staking/IStaking.sol +168 -0
  397. package/contracts/staking/IStakingService.sol +153 -0
  398. package/contracts/staking/StakeManagerLib.sol +231 -0
  399. package/contracts/staking/Staking.sol +513 -0
  400. package/contracts/staking/StakingLifecycle.sol +23 -0
  401. package/contracts/staking/StakingManager.sol +54 -0
  402. package/contracts/staking/StakingReader.sol +187 -0
  403. package/contracts/staking/StakingService.sol +411 -0
  404. package/contracts/staking/StakingServiceManager.sol +44 -0
  405. package/contracts/staking/StakingStore.sol +615 -0
  406. package/contracts/staking/TargetManagerLib.sol +207 -0
  407. package/contracts/{types → type}/AddressSet.sol +1 -1
  408. package/contracts/{types → type}/Amount.sol +59 -1
  409. package/contracts/{types → type}/Blocknumber.sol +20 -3
  410. package/contracts/{types → type}/Fee.sol +24 -22
  411. package/contracts/{types → type}/NftId.sol +14 -16
  412. package/contracts/{types → type}/NftIdSet.sol +2 -2
  413. package/contracts/type/ObjectType.sol +241 -0
  414. package/contracts/{types → type}/Referral.sol +1 -1
  415. package/contracts/type/RequestId.sol +75 -0
  416. package/contracts/{types → type}/RiskId.sol +1 -1
  417. package/contracts/type/RoleId.sol +201 -0
  418. package/contracts/{types → type}/Seconds.sol +27 -0
  419. package/contracts/type/Selector.sol +102 -0
  420. package/contracts/{types → type}/StateId.sol +27 -2
  421. package/contracts/type/String.sol +53 -0
  422. package/contracts/{types → type}/Timestamp.sol +6 -2
  423. package/contracts/{types → type}/Version.sol +1 -1
  424. package/package.json +6 -3
  425. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  426. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  427. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  428. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  429. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  430. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  432. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  433. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  434. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  435. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  436. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  437. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  438. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  439. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  440. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  441. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  442. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  444. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  445. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  447. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  448. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  449. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  450. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  451. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  452. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  453. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  454. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  455. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  456. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  457. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  458. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  460. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  462. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  464. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  466. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1519
  475. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -745
  477. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1433
  479. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -701
  481. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  483. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  485. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  486. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  487. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  488. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  489. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  490. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  491. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  493. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  495. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  497. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  499. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  501. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  503. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  504. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  505. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  506. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  507. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  508. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  509. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  511. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  512. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  513. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  515. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  517. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  519. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  520. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  521. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  523. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  524. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  525. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  527. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  529. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  531. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  533. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  535. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  537. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  539. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  543. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  545. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  547. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  549. package/contracts/components/Component.sol +0 -253
  550. package/contracts/components/IProductComponent.sol +0 -40
  551. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  552. package/contracts/instance/Cloneable.sol +0 -51
  553. package/contracts/instance/InstanceAccessManager.sol +0 -527
  554. package/contracts/instance/base/ComponentService.sol +0 -121
  555. package/contracts/instance/base/KeyValueStore.sol +0 -180
  556. package/contracts/instance/base/Lifecycle.sol +0 -117
  557. package/contracts/instance/module/ISetup.sol +0 -33
  558. package/contracts/instance/module/ITreasury.sol +0 -23
  559. package/contracts/instance/service/ApplicationService.sol +0 -355
  560. package/contracts/instance/service/BundleService.sol +0 -443
  561. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  562. package/contracts/instance/service/ClaimService.sol +0 -239
  563. package/contracts/instance/service/DistributionService.sol +0 -431
  564. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  565. package/contracts/instance/service/IClaimService.sol +0 -92
  566. package/contracts/instance/service/IPolicyService.sol +0 -137
  567. package/contracts/instance/service/IProductService.sol +0 -40
  568. package/contracts/instance/service/PolicyService.sol +0 -545
  569. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  570. package/contracts/instance/service/PoolService.sol +0 -336
  571. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  572. package/contracts/instance/service/ProductService.sol +0 -210
  573. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  574. package/contracts/registry/RegistryAccessManager.sol +0 -216
  575. package/contracts/shared/ContractDeployerLib.sol +0 -72
  576. package/contracts/test/TestFee.sol +0 -25
  577. package/contracts/test/TestRegisterable.sol +0 -18
  578. package/contracts/test/TestRoleId.sol +0 -14
  579. package/contracts/test/TestService.sol +0 -25
  580. package/contracts/test/TestVersion.sol +0 -44
  581. package/contracts/test/TestVersionable.sol +0 -17
  582. package/contracts/test/Usdc.sol +0 -26
  583. package/contracts/types/ChainId.sol +0 -38
  584. package/contracts/types/NumberId.sol +0 -52
  585. package/contracts/types/ObjectType.sol +0 -157
  586. package/contracts/types/RoleId.sol +0 -97
  587. /package/contracts/{types → type}/ClaimId.sol +0 -0
  588. /package/contracts/{types → type}/DistributorType.sol +0 -0
  589. /package/contracts/{types → type}/Key32.sol +0 -0
  590. /package/contracts/{types → type}/PayoutId.sol +0 -0
  591. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -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,19 +80,12 @@ 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
- /// @dev updates the bundle's fees of with the provided fee amount
82
- function updateBundleFees(
83
- IInstance instance,
84
- NftId bundleNftId,
85
- Amount feeAmount
86
- ) external;
87
89
 
88
90
  /// @dev releases the specified collateral in the bundle
89
91
  /// may only be called by pool service
@@ -91,12 +93,14 @@ interface IBundleService is IService {
91
93
  IInstance instance,
92
94
  NftId policyNftId,
93
95
  NftId bundleNftId,
94
- uint256 collateralAmount
96
+ Amount collateralAmount
95
97
  ) external;
96
98
 
97
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
98
-
99
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
100
-
101
- // 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;
102
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
  }
@@ -1,38 +1,37 @@
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 {IBundle} from "../module/IBundle.sol";
8
- import {IInstance} from "../../instance/IInstance.sol";
9
- import {IPolicy} from "../module/IPolicy.sol";
10
- import {IService} from "../../shared/IService.sol";
11
- import {RoleId} from "../../types/RoleId.sol";
12
- import {Seconds} from "../../types/Seconds.sol";
13
- 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";
14
17
 
15
18
  interface IPoolService is IService {
16
19
 
17
- event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, uint256 previousMaxCapitalAmount, uint256 currentMaxCapitalAmount);
20
+ event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
18
21
  event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
19
22
 
20
23
  event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
21
24
  event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
25
 
23
26
  error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
24
- error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
25
27
  error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
26
28
 
27
- /// @dev registers a new pool with the registry service
28
- function register(address poolAddress) external returns(NftId);
29
-
30
29
  /// @dev defines the required role for bundle owners for the calling pool
31
30
  /// default implementation returns PUBLIC ROLE
32
31
  function setBundleOwnerRole(RoleId bundleOwnerRole) external;
33
32
 
34
33
  /// @dev sets the max capital amount for the calling pool
35
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
34
+ function setMaxCapitalAmount(Amount maxCapitalAmount) external;
36
35
 
37
36
  /// @dev set pool sepecific fees
38
37
  function setFees(
@@ -49,22 +48,41 @@ interface IPoolService is IService {
49
48
  /// may only be called by the policy service for unlocked pool components
50
49
  function lockCollateral(
51
50
  IInstance instance,
51
+ address token,
52
52
  NftId productNftId,
53
53
  NftId applicationNftId,
54
- IPolicy.PolicyInfo memory applicationInfo,
55
- uint256 premiumAmount
56
- ) 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
+ );
57
62
 
58
63
 
59
64
  /// @dev releases the remaining collateral linked to the specified policy
60
65
  /// may only be called by the policy service for unlocked pool components
61
66
  function releaseCollateral(
62
67
  IInstance instance,
68
+ address token,
63
69
  NftId policyNftId,
64
70
  IPolicy.PolicyInfo memory policyInfo
65
71
  ) external;
66
72
 
67
73
 
74
+ /// @dev reduces the locked collateral in the bundle associated with the specified policy
75
+ /// every payout of a policy reduces the collateral by the payout amount
76
+ /// may only be called by the claim service for unlocked pool components
77
+ function reduceCollateral(
78
+ IInstance instance,
79
+ address token,
80
+ NftId policyNftId,
81
+ IPolicy.PolicyInfo memory policyInfo,
82
+ Amount payoutAmount
83
+ ) external;
84
+
85
+
68
86
  /// @dev create a new bundle for the provided parameters
69
87
  /// staking fees will be deducted by the pool service from the staking amount
70
88
  /// may only be called by registered and unlocked pool components
@@ -86,8 +104,9 @@ interface IPoolService is IService {
86
104
  /// may only be called by registered and unlocked pool components
87
105
  function closeBundle(NftId bundleNftId) external;
88
106
 
107
+
89
108
  /// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
90
- function processSale(NftId bundleNftId, IPolicy.Premium memory premium, Amount actualAmountTransferred) external;
109
+ function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
91
110
 
92
111
  /// @dev increase stakes for bundle
93
112
  /// staking fees will be deducted by the pool service from the staking amount
@@ -99,4 +118,33 @@ interface IPoolService is IService {
99
118
  /// performance fees will be deducted by the pool service from the staking amount
100
119
  /// may only be called by registered and unlocked pool components
101
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
+
102
150
  }
@@ -1,28 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../types/Amount.sol";
5
- import {Component} from "./Component.sol";
6
- import {Fee, FeeLib} from "../types/Fee.sol";
7
- import {IBundleService} from "../instance/service/IBundleService.sol";
4
+ import {Amount, AmountLib} from "../type/Amount.sol";
5
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
6
+ import {Fee, FeeLib} from "../type/Fee.sol";
7
+ import {IBundleService} from "./IBundleService.sol";
8
8
  import {IPoolComponent} from "./IPoolComponent.sol";
9
- import {IPoolService} from "../instance/service/IPoolService.sol";
9
+ import {IPoolService} from "./IPoolService.sol";
10
10
  import {IComponents} from "../instance/module/IComponents.sol";
11
- import {NftId, NftIdLib} from "../types/NftId.sol";
12
- import {BUNDLE, POOL} from "../types/ObjectType.sol";
13
- import {RoleId, PUBLIC_ROLE} from "../types/RoleId.sol";
14
- import {Seconds} from "../types/Seconds.sol";
11
+ import {IComponentService} from "../shared/IComponentService.sol";
12
+ import {NftId, NftIdLib} from "../type/NftId.sol";
13
+ import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
14
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
15
+ import {Seconds} from "../type/Seconds.sol";
15
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {UFixed, UFixedLib} from "../types/UFixed.sol";
17
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
18
 
18
19
  abstract contract Pool is
19
- Component,
20
+ InstanceLinkedComponent,
20
21
  IPoolComponent
21
22
  {
22
23
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
23
24
  bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
24
25
 
25
26
  struct PoolStorage {
27
+ IComponentService _componentService;
26
28
  IPoolService _poolService;
27
29
  IBundleService _bundleService;
28
30
  }
@@ -51,25 +53,36 @@ abstract contract Pool is
51
53
  address token,
52
54
  bool isInterceptingNftTransfers,
53
55
  address initialOwner,
54
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
56
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
57
+ bytes memory componentData // component specifidc data
55
58
  )
56
59
  public
57
60
  virtual
58
61
  onlyInitializing()
59
62
  {
60
- initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
63
+ initializeInstanceLinkedComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData, componentData);
61
64
 
62
65
  PoolStorage storage $ = _getPoolStorage();
63
66
  $._poolService = IPoolService(_getServiceAddress(POOL()));
64
67
  $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
68
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
65
69
 
66
70
  registerInterface(type(IPoolComponent).interfaceId);
67
71
  }
68
72
 
69
73
 
74
+ function register()
75
+ external
76
+ virtual
77
+ onlyOwner()
78
+ {
79
+ _getPoolStorage()._componentService.registerPool();
80
+ }
81
+
82
+
70
83
  function stake(
71
84
  NftId bundleNftId,
72
- uint256 amount
85
+ Amount amount
73
86
  )
74
87
  public
75
88
  virtual
@@ -82,7 +95,7 @@ abstract contract Pool is
82
95
 
83
96
  function unstake(
84
97
  NftId bundleNftId,
85
- uint256 amount
98
+ Amount amount
86
99
  )
87
100
  public
88
101
  virtual
@@ -142,14 +155,14 @@ abstract contract Pool is
142
155
  )
143
156
  public
144
157
  virtual
145
- restricted()
158
+ //restricted()
146
159
  onlyBundleOwner(bundleNftId)
147
160
  {
148
161
  _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
149
162
  }
150
163
 
151
164
 
152
- function setMaxCapitalAmount(uint256 maxCapitalAmount)
165
+ function setMaxCapitalAmount(Amount maxCapitalAmount)
153
166
  public
154
167
  virtual
155
168
  restricted()
@@ -179,7 +192,7 @@ abstract contract Pool is
179
192
  restricted()
180
193
  onlyOwner()
181
194
  {
182
- _getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
195
+ _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
183
196
  }
184
197
 
185
198
 
@@ -189,7 +202,7 @@ abstract contract Pool is
189
202
  bytes memory applicationData,
190
203
  NftId bundleNftId,
191
204
  bytes memory bundleFilter,
192
- uint256 collateralizationAmount
205
+ Amount collateralizationAmount
193
206
  )
194
207
  public
195
208
  virtual
@@ -218,7 +231,7 @@ abstract contract Pool is
218
231
  bytes memory applicationData,
219
232
  NftId bundleNftId,
220
233
  bytes memory bundleFilter,
221
- uint256 collateralizationAmount
234
+ Amount collateralizationAmount
222
235
  )
223
236
  public
224
237
  view
@@ -229,8 +242,25 @@ abstract contract Pool is
229
242
  }
230
243
 
231
244
 
232
- function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
233
- poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
245
+ function getInitialPoolInfo()
246
+ public
247
+ virtual
248
+ view
249
+ returns (IComponents.PoolInfo memory poolInfo)
250
+ {
251
+ return IComponents.PoolInfo(
252
+ NftIdLib.zero(), // will be set when GIF registers the related product
253
+ PUBLIC_ROLE(), // bundleOwnerRole
254
+ AmountLib.max(), // maxCapitalAmount,
255
+ isNftInterceptor(), // isInterceptingBundleTransfers
256
+ false, // isExternallyManaged,
257
+ false, // isVerifyingApplications,
258
+ UFixedLib.toUFixed(1), // collateralizationLevel,
259
+ UFixedLib.toUFixed(1), // retentionLevel,
260
+ FeeLib.zero(), // initialPoolFee,
261
+ FeeLib.zero(), // initialStakingFee,
262
+ FeeLib.zero() // initialPerformanceFee,
263
+ );
234
264
  }
235
265
 
236
266
  // Internals
@@ -260,39 +290,6 @@ abstract contract Pool is
260
290
  return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
261
291
  }
262
292
 
263
- /// @dev defines initial pool specification
264
- /// overwrite this function according to your use case
265
- function _getInitialInfo()
266
- internal
267
- view
268
- virtual override
269
- returns (IComponents.ComponentInfo memory info)
270
- {
271
- return IComponents.ComponentInfo(
272
- getName(),
273
- getToken(),
274
- TokenHandler(address(0)), // will be created by GIF service during registration
275
- address(this), // contract is its own wallet
276
- AmountLib.zero(), // balance amount
277
- AmountLib.zero(), // fee amount
278
- abi.encode(
279
- IComponents.PoolInfo(
280
- NftIdLib.zero(), // will be set when GIF registers the related product
281
- PUBLIC_ROLE(), // bundleOwnerRole
282
- type(uint256).max, // maxCapitalAmount,
283
- 0, // initial balance amount
284
- 0, // initial fee amount
285
- isNftInterceptor(), // isInterceptingBundleTransfers
286
- false, // isExternallyManaged,
287
- false, // isVerifyingApplications,
288
- UFixedLib.toUFixed(1), // collateralizationLevel,
289
- UFixedLib.toUFixed(1), // retentionLevel,
290
- FeeLib.zeroFee(), // initialPoolFee,
291
- FeeLib.zeroFee(), // initialStakingFee,
292
- FeeLib.zeroFee() // initialPerformanceFee,
293
- )));
294
- }
295
-
296
293
 
297
294
  function _getPoolStorage() private pure returns (PoolStorage storage $) {
298
295
  assembly {