@etherisc/gif-next 0.0.2-77c72ae-504 → 0.0.2-782a7d8-939

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 (552) hide show
  1. package/README.md +8 -84
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +310 -283
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +233 -201
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2127
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +229 -77
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +456 -2872
  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 +642 -327
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +295 -277
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -78
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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 +6 -1
  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 +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +286 -218
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +480 -213
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +527 -284
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +134 -97
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +272 -137
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IPricingService.sol/IPricingService.json} +249 -193
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +408 -219
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +85 -71
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/{components → product}/Product.sol/Product.json +433 -282
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +188 -19
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -74
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +430 -34
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +413 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +344 -95
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -54
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +96 -111
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +101 -26
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  185. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  187. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  189. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  191. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  193. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  195. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  197. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  199. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Service.sol/Service.json +109 -29
  201. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  203. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  205. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  206. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  207. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  208. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  214. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  216. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +597 -0
  218. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  220. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  222. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  224. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  226. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  228. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  230. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  232. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  234. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  236. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  238. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  240. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  242. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  244. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  246. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  248. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  250. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  252. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  254. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  256. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  258. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  260. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  262. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  264. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  266. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  270. package/contracts/{components → distribution}/Distribution.sol +53 -100
  271. package/contracts/distribution/DistributionService.sol +298 -0
  272. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  273. package/contracts/distribution/IDistributionComponent.sol +66 -0
  274. package/contracts/distribution/IDistributionService.sol +81 -0
  275. package/contracts/instance/BundleManager.sol +15 -14
  276. package/contracts/instance/IInstance.sol +56 -66
  277. package/contracts/instance/IInstanceService.sol +40 -18
  278. package/contracts/instance/Instance.sol +139 -194
  279. package/contracts/instance/InstanceAdmin.sol +331 -0
  280. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  281. package/contracts/instance/InstanceReader.sol +159 -62
  282. package/contracts/instance/InstanceService.sol +226 -340
  283. package/contracts/instance/InstanceServiceManager.sol +11 -21
  284. package/contracts/instance/InstanceStore.sol +281 -0
  285. package/contracts/instance/base/BalanceStore.sol +118 -0
  286. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  287. package/contracts/instance/base/ObjectCounter.sol +21 -0
  288. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  289. package/contracts/instance/module/IAccess.sol +19 -20
  290. package/contracts/instance/module/IBundle.sol +8 -8
  291. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -19
  292. package/contracts/instance/module/IDistribution.sol +7 -4
  293. package/contracts/instance/module/IPolicy.sol +53 -16
  294. package/contracts/instance/module/IRisk.sol +1 -1
  295. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  296. package/contracts/oracle/IOracle.sol +20 -0
  297. package/contracts/oracle/IOracleComponent.sol +32 -0
  298. package/contracts/oracle/IOracleService.sol +65 -0
  299. package/contracts/oracle/Oracle.sol +145 -0
  300. package/contracts/oracle/OracleService.sol +277 -0
  301. package/contracts/oracle/OracleServiceManager.sol +42 -0
  302. package/contracts/pool/BundleService.sol +296 -0
  303. package/contracts/pool/BundleServiceManager.sol +42 -0
  304. package/contracts/pool/IBundleService.sol +106 -0
  305. package/contracts/pool/IPoolComponent.sol +112 -0
  306. package/contracts/pool/IPoolService.sol +150 -0
  307. package/contracts/pool/Pool.sol +299 -0
  308. package/contracts/pool/PoolService.sol +453 -0
  309. package/contracts/pool/PoolServiceManager.sol +42 -0
  310. package/contracts/product/ApplicationService.sol +254 -0
  311. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  312. package/contracts/product/ClaimService.sol +442 -0
  313. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  314. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  315. package/contracts/product/IClaimService.sol +99 -0
  316. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  317. package/contracts/product/IPricingService.sol +39 -0
  318. package/contracts/product/IProductComponent.sol +42 -0
  319. package/contracts/product/IProductService.sol +33 -0
  320. package/contracts/product/PolicyService.sol +475 -0
  321. package/contracts/product/PolicyServiceManager.sol +42 -0
  322. package/contracts/product/PricingService.sol +301 -0
  323. package/contracts/product/PricingServiceManager.sol +42 -0
  324. package/contracts/product/Product.sol +377 -0
  325. package/contracts/product/ProductService.sol +124 -0
  326. package/contracts/product/ProductServiceManager.sol +42 -0
  327. package/contracts/registry/ChainNft.sol +16 -1
  328. package/contracts/registry/IRegistry.sol +46 -21
  329. package/contracts/registry/IRegistryService.sol +39 -37
  330. package/contracts/registry/ITransferInterceptor.sol +1 -0
  331. package/contracts/registry/Registry.sol +209 -97
  332. package/contracts/registry/RegistryAdmin.sol +237 -0
  333. package/contracts/registry/RegistryService.sol +69 -86
  334. package/contracts/registry/RegistryServiceManager.sol +21 -25
  335. package/contracts/registry/ReleaseManager.sol +459 -181
  336. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  337. package/contracts/registry/TokenRegistry.sol +261 -62
  338. package/contracts/shared/AccessManagerCustom.sol +736 -0
  339. package/contracts/shared/AccessManagerExtended.sol +470 -0
  340. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  341. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  342. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  343. package/contracts/shared/Component.sol +281 -0
  344. package/contracts/shared/ComponentService.sol +618 -0
  345. package/contracts/shared/ComponentServiceManager.sol +35 -0
  346. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  347. package/contracts/shared/ERC165.sol +1 -1
  348. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  349. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  350. package/contracts/shared/IComponent.sol +70 -0
  351. package/contracts/shared/IComponentService.sol +102 -0
  352. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  353. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  354. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  355. package/contracts/shared/INftOwnable.sol +2 -2
  356. package/contracts/shared/IPolicyHolder.sol +29 -10
  357. package/contracts/shared/IRegistryLinked.sol +0 -1
  358. package/contracts/shared/IService.sol +7 -5
  359. package/contracts/shared/IVersionable.sol +1 -1
  360. package/contracts/shared/InitializableCustom.sol +177 -0
  361. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  362. package/contracts/shared/KeyValueStore.sol +127 -0
  363. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  364. package/contracts/shared/NftIdSetManager.sol +65 -0
  365. package/contracts/shared/NftOwnable.sol +3 -16
  366. package/contracts/shared/PolicyHolder.sol +40 -19
  367. package/contracts/shared/ProxyManager.sol +34 -4
  368. package/contracts/shared/Registerable.sol +15 -14
  369. package/contracts/shared/RegistryLinked.sol +0 -5
  370. package/contracts/shared/Service.sol +29 -10
  371. package/contracts/shared/TokenHandler.sol +37 -6
  372. package/contracts/shared/Versionable.sol +1 -1
  373. package/contracts/staking/IStaking.sol +168 -0
  374. package/contracts/staking/IStakingService.sol +149 -0
  375. package/contracts/staking/StakeManagerLib.sol +179 -0
  376. package/contracts/staking/Staking.sol +551 -0
  377. package/contracts/staking/StakingManager.sol +54 -0
  378. package/contracts/staking/StakingReader.sol +187 -0
  379. package/contracts/staking/StakingService.sol +406 -0
  380. package/contracts/staking/StakingServiceManager.sol +45 -0
  381. package/contracts/staking/StakingStore.sol +572 -0
  382. package/contracts/staking/TargetManagerLib.sol +207 -0
  383. package/contracts/{types → type}/AddressSet.sol +1 -1
  384. package/contracts/type/Amount.sol +128 -0
  385. package/contracts/{types → type}/Blocknumber.sol +21 -3
  386. package/contracts/{types → type}/ClaimId.sol +25 -2
  387. package/contracts/{types → type}/Fee.sol +33 -23
  388. package/contracts/{types → type}/NftId.sol +21 -15
  389. package/contracts/{types → type}/NftIdSet.sol +2 -2
  390. package/contracts/{types → type}/ObjectType.sol +26 -14
  391. package/contracts/{types → type}/PayoutId.sol +33 -5
  392. package/contracts/{types → type}/Referral.sol +5 -1
  393. package/contracts/type/RequestId.sol +75 -0
  394. package/contracts/{types → type}/RiskId.sol +1 -1
  395. package/contracts/{types → type}/RoleId.sol +69 -13
  396. package/contracts/type/Seconds.sol +81 -0
  397. package/contracts/{types → type}/StateId.sol +34 -4
  398. package/contracts/{types → type}/Timestamp.sol +23 -14
  399. package/contracts/{types → type}/UFixed.sol +1 -0
  400. package/contracts/{types → type}/Version.sol +2 -1
  401. package/package.json +4 -3
  402. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  403. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  404. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  405. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  406. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  408. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  409. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  410. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  411. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  412. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  413. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  414. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  415. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  417. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  418. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  419. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  420. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  421. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  422. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  423. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  424. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  426. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  428. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  430. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  431. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  432. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  433. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  434. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  435. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  436. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  437. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  438. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  440. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  444. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  448. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  451. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  453. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  454. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  455. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  456. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  457. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  458. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  459. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  461. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  462. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  463. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  464. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  465. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  466. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  467. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  468. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  469. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  470. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  471. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  472. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  473. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  474. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  475. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  476. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  477. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  478. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  479. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  480. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  481. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  482. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  484. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  485. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  486. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  488. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  491. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  492. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  494. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  495. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  497. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  499. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  500. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  501. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  503. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  504. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  508. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  512. package/contracts/components/Component.sol +0 -241
  513. package/contracts/components/IComponent.sol +0 -54
  514. package/contracts/components/IDistributionComponent.sol +0 -100
  515. package/contracts/components/IPoolComponent.sol +0 -87
  516. package/contracts/components/IProductComponent.sol +0 -39
  517. package/contracts/components/Pool.sol +0 -254
  518. package/contracts/components/Product.sol +0 -285
  519. package/contracts/instance/InstanceAccessManager.sol +0 -297
  520. package/contracts/instance/base/ComponentService.sol +0 -134
  521. package/contracts/instance/base/KeyValueStore.sol +0 -172
  522. package/contracts/instance/module/ITreasury.sol +0 -23
  523. package/contracts/instance/service/ApplicationService.sol +0 -268
  524. package/contracts/instance/service/BundleService.sol +0 -298
  525. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  526. package/contracts/instance/service/ClaimService.sol +0 -151
  527. package/contracts/instance/service/DistributionService.sol +0 -277
  528. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  529. package/contracts/instance/service/IBundleService.sol +0 -54
  530. package/contracts/instance/service/IClaimService.sol +0 -61
  531. package/contracts/instance/service/IDistributionService.sol +0 -65
  532. package/contracts/instance/service/IPoolService.sol +0 -20
  533. package/contracts/instance/service/IProductService.sol +0 -40
  534. package/contracts/instance/service/PolicyService.sol +0 -474
  535. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  536. package/contracts/instance/service/PoolService.sol +0 -109
  537. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  538. package/contracts/instance/service/ProductService.sol +0 -233
  539. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  540. package/contracts/registry/RegistryAccessManager.sol +0 -216
  541. package/contracts/shared/ContractDeployerLib.sol +0 -72
  542. package/contracts/test/TestFee.sol +0 -25
  543. package/contracts/test/TestRegisterable.sol +0 -18
  544. package/contracts/test/TestRoleId.sol +0 -14
  545. package/contracts/test/TestService.sol +0 -25
  546. package/contracts/test/TestVersion.sol +0 -44
  547. package/contracts/test/TestVersionable.sol +0 -17
  548. package/contracts/test/Usdc.sol +0 -26
  549. package/contracts/types/ChainId.sol +0 -38
  550. package/contracts/types/NumberId.sol +0 -52
  551. /package/contracts/{types → type}/DistributorType.sol +0 -0
  552. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,453 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Pool} from "./Pool.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IBundle} from "../instance/module/IBundle.sol";
8
+ import {IComponents} from "../instance/module/IComponents.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+
11
+ import {IVersionable} from "../shared/IVersionable.sol";
12
+ import {Versionable} from "../shared/Versionable.sol";
13
+ import {INftOwnable} from "../shared/INftOwnable.sol";
14
+
15
+ import {Amount, AmountLib} from "../type/Amount.sol";
16
+ import {Fee, FeeLib} from "../type/Fee.sol";
17
+ import {NftId, NftIdLib} from "../type/NftId.sol";
18
+ import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
19
+ import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
20
+ import {Fee, FeeLib} from "../type/Fee.sol";
21
+ import {Version, VersionLib} from "../type/Version.sol";
22
+ import {KEEP_STATE, StateId} from "../type/StateId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
+ import {TokenHandler} from "../shared/TokenHandler.sol";
26
+ import {UFixed} from "../type/UFixed.sol";
27
+ import {Version, VersionLib} from "../type/Version.sol";
28
+
29
+ import {IService} from "../shared/IService.sol";
30
+ import {Service} from "../shared/Service.sol";
31
+ import {BundleManager} from "../instance/BundleManager.sol";
32
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
33
+ import {IBundleService} from "./IBundleService.sol";
34
+ import {IComponentService} from "../shared/IComponentService.sol";
35
+ import {IInstanceService} from "../instance/IInstanceService.sol";
36
+ import {IPoolService} from "./IPoolService.sol";
37
+ import {IRegistryService} from "../registry/IRegistryService.sol";
38
+ import {IStaking} from "../staking/IStaking.sol";
39
+ import {InstanceService} from "../instance/InstanceService.sol";
40
+ import {InstanceReader} from "../instance/InstanceReader.sol";
41
+ import {InstanceStore} from "../instance/InstanceStore.sol";
42
+ import {IComponent} from "../shared/IComponent.sol";
43
+ import {IPoolComponent} from "./IPoolComponent.sol";
44
+
45
+ string constant POOL_SERVICE_NAME = "PoolService";
46
+
47
+ contract PoolService is
48
+ ComponentVerifyingService,
49
+ IPoolService
50
+ {
51
+ using NftIdLib for NftId;
52
+ using AmountLib for Amount;
53
+
54
+ IBundleService internal _bundleService;
55
+ IComponentService internal _componentService;
56
+ IInstanceService private _instanceService;
57
+ IRegistryService private _registryService;
58
+
59
+ IStaking private _staking;
60
+
61
+ function _initialize(
62
+ address owner,
63
+ bytes memory data
64
+ )
65
+ internal
66
+ initializer
67
+ virtual override
68
+ {
69
+ (
70
+ address registryAddress,,
71
+ //address managerAddress
72
+ address authority
73
+ ) = abi.decode(data, (address, address, address));
74
+
75
+ initializeService(registryAddress, authority, owner);
76
+
77
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
78
+ _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
79
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
80
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
81
+
82
+ _staking = IStaking(getRegistry().getStakingAddress());
83
+
84
+ registerInterface(type(IPoolService).interfaceId);
85
+ }
86
+
87
+ function getDomain() public pure override returns(ObjectType) {
88
+ return POOL();
89
+ }
90
+
91
+
92
+ function setMaxCapitalAmount(Amount maxCapitalAmount)
93
+ external
94
+ virtual
95
+ {
96
+ /*
97
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
98
+ InstanceReader instanceReader = instance.getInstanceReader();
99
+
100
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
101
+ IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
102
+ Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
103
+
104
+ poolInfo.maxCapitalAmount = maxCapitalAmount;
105
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
106
+
107
+ emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
108
+ */
109
+ }
110
+
111
+ function setBundleOwnerRole(RoleId bundleOwnerRole)
112
+ external
113
+ virtual
114
+ {
115
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
116
+ InstanceReader instanceReader = instance.getInstanceReader();
117
+
118
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
119
+ IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
120
+
121
+ // bundle owner role may only be set once per pool
122
+ if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
123
+ revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
124
+ }
125
+
126
+ poolInfo.bundleOwnerRole = bundleOwnerRole;
127
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
128
+
129
+ emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
130
+ }
131
+
132
+
133
+ function setFees(
134
+ Fee memory poolFee,
135
+ Fee memory stakingFee,
136
+ Fee memory performanceFee
137
+ )
138
+ external
139
+ virtual
140
+ {
141
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
142
+
143
+ IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
144
+ poolInfo.poolFee = poolFee;
145
+ poolInfo.stakingFee = stakingFee;
146
+ poolInfo.performanceFee = performanceFee;
147
+
148
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
149
+
150
+ // TODO add logging
151
+ }
152
+
153
+ function createBundle(
154
+ address bundleOwner, // initial bundle owner
155
+ Fee memory fee, // fees deducted from premium that go to bundle owner
156
+ Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
157
+ Seconds lifetime, // initial duration for which new policies are covered
158
+ bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
159
+ )
160
+ external
161
+ virtual
162
+ returns(NftId bundleNftId)
163
+ {
164
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
165
+ InstanceReader instanceReader = instance.getInstanceReader();
166
+
167
+ (
168
+ Amount stakingFeeAmount,
169
+ Amount stakingNetAmount
170
+ ) = FeeLib.calculateFee(
171
+ _getStakingFee(instanceReader, poolNftId),
172
+ stakingAmount);
173
+
174
+ bundleNftId = _bundleService.create(
175
+ instance,
176
+ poolNftId,
177
+ bundleOwner,
178
+ fee,
179
+ stakingNetAmount,
180
+ lifetime,
181
+ filter);
182
+
183
+ // pool book keeping
184
+ _componentService.increasePoolBalance(
185
+ instance.getInstanceStore(),
186
+ poolNftId,
187
+ stakingAmount,
188
+ stakingFeeAmount);
189
+
190
+ // pool bookkeeping and collect tokens from bundle owner
191
+ _collectStakingAmount(
192
+ instanceReader,
193
+ poolNftId,
194
+ bundleOwner,
195
+ stakingAmount);
196
+
197
+ emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
198
+ }
199
+
200
+ function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
201
+ internal
202
+ virtual
203
+ view
204
+ returns (Fee memory stakingFee)
205
+ {
206
+ NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
207
+ return instanceReader.getPoolInfo(productNftId).stakingFee;
208
+ }
209
+
210
+ function closeBundle(NftId bundleNftId)
211
+ external
212
+ virtual
213
+ {
214
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
215
+
216
+ // TODO book keeping for pool collateral released outside of retention level
217
+
218
+ // releasing collateral in bundle
219
+ _bundleService.close(instance, bundleNftId);
220
+
221
+ // TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
222
+
223
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
224
+ }
225
+
226
+
227
+ function processSale(
228
+ NftId bundleNftId,
229
+ IPolicy.Premium memory premium
230
+ )
231
+ external
232
+ virtual
233
+ restricted
234
+ {
235
+ IRegistry registry = getRegistry();
236
+ IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
237
+ IRegistry.ObjectInfo memory poolObjectInfo = registry.getObjectInfo(bundleObjectInfo.parentNftId);
238
+ IRegistry.ObjectInfo memory instanceObjectInfo = registry.getObjectInfo(poolObjectInfo.parentNftId);
239
+ IInstance instance = IInstance(instanceObjectInfo.objectAddress);
240
+
241
+ Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
242
+ Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
243
+ Amount bundleNetAmount = AmountLib.toAmount(premium.netPremiumAmount);
244
+
245
+ InstanceStore instanceStore = instance.getInstanceStore();
246
+ _componentService.increasePoolBalance(
247
+ instanceStore,
248
+ poolObjectInfo.nftId,
249
+ bundleNetAmount + bundleFeeAmount,
250
+ poolFeeAmount);
251
+
252
+ _componentService.increaseBundleBalance(
253
+ instanceStore,
254
+ bundleObjectInfo.nftId,
255
+ bundleNetAmount,
256
+ bundleFeeAmount);
257
+ }
258
+
259
+
260
+ function lockCollateral(
261
+ IInstance instance,
262
+ address token,
263
+ NftId productNftId,
264
+ NftId applicationNftId,
265
+ NftId bundleNftId,
266
+ Amount sumInsuredAmount // premium amount after product and distribution fees
267
+ )
268
+ external
269
+ virtual
270
+ restricted()
271
+ returns (
272
+ Amount localCollateralAmount,
273
+ Amount totalCollateralAmount
274
+ )
275
+ {
276
+ (
277
+ localCollateralAmount,
278
+ totalCollateralAmount
279
+ ) = calculateRequiredCollateral(
280
+ instance.getInstanceReader(),
281
+ productNftId,
282
+ sumInsuredAmount);
283
+
284
+ // lock collateral amount from involved bundle
285
+ _bundleService.lockCollateral(
286
+ instance,
287
+ applicationNftId,
288
+ bundleNftId,
289
+ localCollateralAmount);
290
+
291
+ // update value locked with staking service
292
+ _staking.increaseTotalValueLocked(
293
+ instance.getNftId(),
294
+ token,
295
+ totalCollateralAmount);
296
+
297
+ // hierarhical riskpool setup
298
+ // TODO loop in with pool component to guarantee availability of external capital
299
+ if(totalCollateralAmount > localCollateralAmount) {
300
+
301
+ }
302
+ }
303
+
304
+
305
+ function reduceCollateral(
306
+ IInstance instance,
307
+ address token,
308
+ NftId policyNftId,
309
+ IPolicy.PolicyInfo memory policyInfo,
310
+ Amount payoutAmount
311
+ )
312
+ external
313
+ virtual
314
+ restricted
315
+ {
316
+ _bundleService.releaseCollateral(
317
+ instance,
318
+ policyNftId,
319
+ policyInfo.bundleNftId,
320
+ payoutAmount);
321
+
322
+ // update value locked with staking service
323
+ _staking.decreaseTotalValueLocked(
324
+ instance.getNftId(),
325
+ token,
326
+ payoutAmount);
327
+ }
328
+
329
+
330
+ /// @dev releases the remaining collateral linked to the specified policy
331
+ /// may only be called by the policy service for unlocked pool components
332
+ function releaseCollateral(
333
+ IInstance instance,
334
+ address token,
335
+ NftId policyNftId,
336
+ IPolicy.PolicyInfo memory policyInfo
337
+ )
338
+ external
339
+ virtual
340
+ restricted
341
+ {
342
+ Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
343
+
344
+ _bundleService.releaseCollateral(
345
+ instance,
346
+ policyNftId,
347
+ policyInfo.bundleNftId,
348
+ remainingCollateralAmount);
349
+
350
+ _bundleService.unlinkPolicy(
351
+ instance,
352
+ policyNftId);
353
+
354
+ // update value locked with staking service
355
+ _staking.decreaseTotalValueLocked(
356
+ instance.getNftId(),
357
+ token,
358
+ remainingCollateralAmount);
359
+ }
360
+
361
+
362
+ function calculateRequiredCollateral(
363
+ InstanceReader instanceReader,
364
+ NftId productNftId,
365
+ Amount sumInsuredAmount
366
+ )
367
+ public
368
+ view
369
+ returns(
370
+ Amount localCollateralAmount,
371
+ Amount totalCollateralAmount
372
+ )
373
+ {
374
+ NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
375
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
376
+
377
+ (
378
+ localCollateralAmount,
379
+ totalCollateralAmount
380
+ ) = calculateRequiredCollateral(
381
+ poolInfo.collateralizationLevel,
382
+ poolInfo.retentionLevel,
383
+ sumInsuredAmount);
384
+ }
385
+
386
+
387
+ function calculateRequiredCollateral(
388
+ UFixed collateralizationLevel,
389
+ UFixed retentionLevel,
390
+ Amount sumInsuredAmount
391
+ )
392
+ public
393
+ pure
394
+ returns(
395
+ Amount localCollateralAmount,
396
+ Amount totalCollateralAmount
397
+ )
398
+ {
399
+ // TODO define if only applies to local collateral
400
+ // TODO add minimalistic implementation
401
+
402
+ // assumptions
403
+ // - collateralizationLevel == 1.0
404
+ // - retentionLevel == 1.0
405
+ localCollateralAmount = sumInsuredAmount;
406
+ totalCollateralAmount = localCollateralAmount;
407
+ }
408
+
409
+
410
+ function _processStakingFees(
411
+ Fee memory stakingFee,
412
+ Amount stakingAmount
413
+ )
414
+ internal
415
+ returns (Amount stakingNetAmount)
416
+ {
417
+ stakingNetAmount = stakingAmount;
418
+
419
+ // check if any staking fees apply
420
+ if (FeeLib.gtz(stakingFee)) {
421
+ (Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
422
+ stakingNetAmount = netAmount;
423
+
424
+ // TODO update fee balance for pool
425
+ }
426
+ }
427
+
428
+
429
+ // TODO create (I)TreasuryService that deals with all gif related token transfers
430
+ /// @dev transfers the specified amount from the bundle owner to the pool's wallet
431
+ function _collectStakingAmount(
432
+ InstanceReader instanceReader,
433
+ NftId poolNftId,
434
+ address bundleOwner,
435
+ Amount amount
436
+ )
437
+ internal
438
+ {
439
+
440
+ // collecting investor token
441
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
442
+ TokenHandler tokenHandler = componentInfo.tokenHandler;
443
+ address poolWallet = componentInfo.wallet;
444
+
445
+ if(amount.gtz()) {
446
+ tokenHandler.transfer(
447
+ bundleOwner,
448
+ poolWallet,
449
+ amount);
450
+ }
451
+ }
452
+
453
+ }
@@ -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 {PoolService} from "./PoolService.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 PoolServiceManager is ProxyManager {
12
+
13
+ PoolService private _poolService;
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
+ PoolService poolSrv = new PoolService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(poolSrv),
27
+ data,
28
+ salt);
29
+
30
+ _poolService = PoolService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getPoolService()
35
+ external
36
+ view
37
+ returns (PoolService poolService)
38
+ {
39
+ return _poolService;
40
+ }
41
+
42
+ }