@etherisc/gif-next 0.0.2-a1053ad-624 → 0.0.2-a105567-464

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