@etherisc/gif-next 0.0.2-d408403-475 → 0.0.2-d442a8c-593

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 (641) hide show
  1. package/README.md +239 -39
  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 +304 -1639
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +469 -1882
  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 +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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/base/Cloneable.sol/Cloneable.json +190 -0
  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 +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +376 -316
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → product/IProductService.sol/IProductService.json} +188 -177
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IService.sol/IService.json} +162 -154
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  200. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -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 +345 -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/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  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/type/Key32.sol/Key32Lib.json +125 -0
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -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/type/RoleId.sol/RoleIdLib.json +156 -0
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -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/type/Timestamp.sol/TimestampLib.json +280 -0
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  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 +72 -46
  267. package/contracts/instance/IInstanceService.sol +81 -0
  268. package/contracts/instance/Instance.sol +220 -59
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +365 -0
  272. package/contracts/instance/InstanceService.sol +362 -0
  273. package/contracts/instance/InstanceServiceManager.sol +44 -0
  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 +46 -0
  279. package/contracts/instance/module/IBundle.sol +20 -0
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +42 -0
  282. package/contracts/instance/module/IPolicy.sol +84 -0
  283. package/contracts/instance/module/IRisk.sol +11 -0
  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 +150 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +453 -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 +442 -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 +475 -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 +95 -37
  311. package/contracts/registry/IRegistry.sol +95 -28
  312. package/contracts/registry/IRegistryService.sol +69 -0
  313. package/contracts/registry/ITransferInterceptor.sol +7 -0
  314. package/contracts/registry/Registry.sol +476 -282
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +266 -0
  317. package/contracts/registry/RegistryServiceManager.sol +58 -0
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +315 -0
  321. package/contracts/shared/AccessManagerCustom.sol +736 -0
  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 +278 -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 +70 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/shared/IKeyValueStore.sol +53 -0
  337. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  338. package/contracts/shared/INftOwnable.sol +23 -0
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +10 -19
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +38 -37
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +127 -0
  347. package/contracts/{instance/base → shared}/Lifecycle.sol +29 -8
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +107 -0
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +199 -0
  352. package/contracts/shared/Registerable.sol +54 -65
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +58 -0
  356. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  357. package/contracts/shared/Versionable.sol +38 -68
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +149 -0
  360. package/contracts/staking/StakeManagerLib.sol +179 -0
  361. package/contracts/staking/Staking.sol +551 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +406 -0
  365. package/contracts/staking/StakingServiceManager.sol +45 -0
  366. package/contracts/staking/StakingStore.sol +572 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/{types → type}/AddressSet.sol +1 -1
  369. package/contracts/type/Amount.sol +128 -0
  370. package/contracts/{types → type}/Blocknumber.sol +21 -3
  371. package/contracts/type/ClaimId.sol +75 -0
  372. package/contracts/type/DistributorType.sol +55 -0
  373. package/contracts/type/Fee.sol +66 -0
  374. package/contracts/{types → type}/Key32.sol +8 -3
  375. package/contracts/{types → type}/NftId.sol +21 -15
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/{types → type}/ObjectType.sol +53 -15
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/type/Referral.sol +89 -0
  380. package/contracts/{types → type}/RiskId.sol +1 -1
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +81 -0
  383. package/contracts/{types → type}/StateId.sol +29 -7
  384. package/contracts/{types → type}/Timestamp.sol +22 -13
  385. package/contracts/{types → type}/UFixed.sol +129 -12
  386. package/contracts/{types → type}/Version.sol +15 -2
  387. package/package.json +6 -5
  388. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  389. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  390. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  391. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  392. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  393. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  394. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  395. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  396. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  397. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  398. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  399. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  400. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  401. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  402. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  403. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  404. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  405. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  406. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  408. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  410. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  412. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  414. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  416. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  418. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  420. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  422. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  424. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  426. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  428. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  430. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  432. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  434. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  436. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  438. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  439. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  440. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  441. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  442. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  444. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  445. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  448. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  449. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  450. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  451. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  452. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  453. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  454. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  455. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  456. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  457. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  458. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  459. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  460. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  461. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  462. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  463. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  464. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  466. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  467. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  469. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  470. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  471. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  474. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  475. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  477. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  479. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  480. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  482. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  484. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  486. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  487. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  488. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  489. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  491. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  493. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  495. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  497. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  499. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  500. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  501. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -531
  503. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -420
  505. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  507. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -440
  510. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -543
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  515. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  516. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  517. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  518. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  519. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  521. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  523. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  525. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  527. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  529. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  531. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  533. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  535. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  537. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  539. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  540. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  541. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  542. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  544. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  547. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  549. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  551. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  552. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  553. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  556. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  559. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  562. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  565. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  567. package/contracts/components/BaseComponent.sol +0 -94
  568. package/contracts/components/Distribution.sol +0 -132
  569. package/contracts/components/IBaseComponent.sol +0 -19
  570. package/contracts/components/IDistributionComponent.sol +0 -48
  571. package/contracts/components/IPoolComponent.sol +0 -71
  572. package/contracts/components/IProductComponent.sol +0 -38
  573. package/contracts/components/Pool.sol +0 -235
  574. package/contracts/components/Product.sol +0 -227
  575. package/contracts/experiment/errors/Require.sol +0 -38
  576. package/contracts/experiment/errors/Revert.sol +0 -44
  577. package/contracts/experiment/inheritance/A.sol +0 -53
  578. package/contracts/experiment/inheritance/B.sol +0 -28
  579. package/contracts/experiment/inheritance/C.sol +0 -34
  580. package/contracts/experiment/inheritance/IA.sol +0 -13
  581. package/contracts/experiment/inheritance/IB.sol +0 -10
  582. package/contracts/experiment/inheritance/IC.sol +0 -12
  583. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  584. package/contracts/experiment/statemachine/ISM.sol +0 -25
  585. package/contracts/experiment/statemachine/README.md +0 -112
  586. package/contracts/experiment/statemachine/SM.sol +0 -57
  587. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  588. package/contracts/experiment/types/TypeA.sol +0 -47
  589. package/contracts/experiment/types/TypeB.sol +0 -29
  590. package/contracts/instance/IInstanceLinked.sol +0 -8
  591. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  592. package/contracts/instance/base/IInstanceBase.sol +0 -22
  593. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  594. package/contracts/instance/base/IService.sol +0 -15
  595. package/contracts/instance/base/InstanceBase.sol +0 -91
  596. package/contracts/instance/base/KeyValueStore.sol +0 -161
  597. package/contracts/instance/base/ModuleBase.sol +0 -57
  598. package/contracts/instance/base/ServiceBase.sol +0 -37
  599. package/contracts/instance/module/access/Access.sol +0 -149
  600. package/contracts/instance/module/access/IAccess.sol +0 -53
  601. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  602. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  603. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  604. package/contracts/instance/module/component/IComponent.sol +0 -28
  605. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  606. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  607. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  608. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  609. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  610. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  611. package/contracts/instance/module/risk/IRisk.sol +0 -26
  612. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  613. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  614. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  615. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  616. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  617. package/contracts/instance/service/DistributionService.sol +0 -59
  618. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  619. package/contracts/instance/service/IDistributionService.sol +0 -12
  620. package/contracts/instance/service/IPoolService.sol +0 -37
  621. package/contracts/instance/service/IProductService.sol +0 -107
  622. package/contracts/instance/service/PoolService.sol +0 -149
  623. package/contracts/instance/service/ProductService.sol +0 -509
  624. package/contracts/registry/IChainNft.sol +0 -21
  625. package/contracts/registry/IRegistryLinked.sol +0 -8
  626. package/contracts/shared/IOwnable.sol +0 -6
  627. package/contracts/test/TestDistribution.sol +0 -21
  628. package/contracts/test/TestFee.sol +0 -25
  629. package/contracts/test/TestPool.sol +0 -25
  630. package/contracts/test/TestProduct.sol +0 -72
  631. package/contracts/test/TestRegisterable.sol +0 -19
  632. package/contracts/test/TestRoleId.sol +0 -14
  633. package/contracts/test/TestService.sol +0 -32
  634. package/contracts/test/TestToken.sol +0 -26
  635. package/contracts/test/TestVersion.sol +0 -44
  636. package/contracts/test/TestVersionable.sol +0 -17
  637. package/contracts/types/ChainId.sol +0 -38
  638. package/contracts/types/Fee.sol +0 -56
  639. package/contracts/types/NftIdSet.sol +0 -60
  640. package/contracts/types/ReferralId.sol +0 -48
  641. package/contracts/types/RoleId.sol +0 -38
@@ -1,138 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
- import {IDistributionComponent} from "../../../components/IDistributionComponent.sol";
6
- import {IPoolComponent} from "../../../components/IPoolComponent.sol";
7
- import {IProductComponent} from "../../../components/IProductComponent.sol";
8
-
9
- import {NftId} from "../../../types/NftId.sol";
10
- import {TREASURY} from "../../../types/ObjectType.sol";
11
- import {Fee, FeeLib} from "../../../types/Fee.sol";
12
- import {UFixed, UFixedMathLib} from "../../../types/UFixed.sol";
13
- import {TokenHandler} from "./TokenHandler.sol";
14
- import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
15
- import {ITreasuryModule} from "./ITreasury.sol";
16
- import {ModuleBase} from "../../base/ModuleBase.sol";
17
-
18
- abstract contract TreasuryModule is
19
- ModuleBase,
20
- ITreasuryModule
21
- {
22
- // relation of distributor and pool nft map to product nft
23
- mapping(NftId componentNftId => NftId productNftId) internal _productNft;
24
- // relation of component nft to token hanlder
25
- mapping(NftId componentNftId => TokenHandler tokenHandler) internal _tokenHandler;
26
- Fee internal _zeroFee;
27
-
28
-
29
- function initializeTreasuryModule(IKeyValueStore keyValueStore) internal {
30
- _initialize(keyValueStore);
31
- _zeroFee = FeeLib.zeroFee();
32
- }
33
-
34
- function registerProductSetup(
35
- IProductComponent product,
36
- IPoolComponent pool,
37
- IDistributionComponent distribution
38
- ) external override // TODO add authz (only component module)
39
- {
40
- NftId productNftId = product.getNftId();
41
- NftId poolNftId = pool.getNftId();
42
- NftId distributionNftId = distribution.getNftId();
43
-
44
- require(productNftId.gtz(), "ERROR:TRS-010:PRODUCT_UNDEFINED");
45
- require(poolNftId.gtz(), "ERROR:TRS-011:POOL_UNDEFINED");
46
-
47
- require(address(_tokenHandler[productNftId]) == address(0), "ERROR:TRS-012:TOKEN_HANDLER_ALREADY_REGISTERED");
48
- require(_productNft[poolNftId].eqz(), "ERROR:TRS-013:POOL_ALREADY_LINKED");
49
- require(_productNft[distributionNftId].eqz(), "ERROR:TRS-014:COMPENSATION_ALREADY_LINKED");
50
-
51
- // deploy product specific handler contract
52
- IERC20Metadata token = product.getToken();
53
- _tokenHandler[productNftId] = new TokenHandler(productNftId, address(token));
54
- _productNft[distributionNftId] = productNftId;
55
- _productNft[poolNftId] = productNftId;
56
-
57
- TreasuryInfo memory info = TreasuryInfo(
58
- poolNftId,
59
- distributionNftId,
60
- token,
61
- product.getProductFee(),
62
- product.getProcessingFee(),
63
- pool.getPoolFee(),
64
- pool.getStakingFee(),
65
- pool.getPerformanceFee(),
66
- distribution.getDistributionFee()
67
- );
68
-
69
- _create(TREASURY(), productNftId, abi.encode(info));
70
- }
71
-
72
- function setTreasuryInfo(
73
- NftId productNftId,
74
- TreasuryInfo memory info
75
- )
76
- external
77
- // TODO add authz (only component module)
78
- override
79
- {
80
- _updateData(TREASURY(), productNftId, abi.encode(info));
81
- }
82
-
83
- function getProductNftId(
84
- NftId componentNftId
85
- ) external view returns (NftId productNftId) {
86
- return _productNft[componentNftId];
87
- }
88
-
89
- function getTokenHandler(
90
- NftId componentNftId
91
- ) external view override returns (TokenHandler tokenHandler) {
92
- return _tokenHandler[componentNftId];
93
- }
94
-
95
- function hasTreasuryInfo(
96
- NftId productNftId
97
- ) public view override returns (bool hasInfo) {
98
- return _exists(TREASURY(), productNftId);
99
- }
100
-
101
- function getTreasuryInfo(
102
- NftId productNftId
103
- ) public view override returns (TreasuryInfo memory info) {
104
- return abi.decode(_getData(TREASURY(), productNftId), (TreasuryInfo));
105
- }
106
-
107
- function calculateFeeAmount(
108
- uint256 amount,
109
- Fee memory fee
110
- ) public pure override returns (uint256 feeAmount, uint256 netAmount) {
111
- return FeeLib.calculateFee(fee, amount);
112
- }
113
-
114
- function getFee(
115
- UFixed fractionalFee,
116
- uint256 fixedFee
117
- ) external pure override returns (Fee memory fee) {
118
- return FeeLib.toFee(fractionalFee, fixedFee);
119
- }
120
-
121
- function getZeroFee() external view override returns (Fee memory fee) {
122
- return _zeroFee;
123
- }
124
-
125
- function getUFixed(
126
- uint256 a
127
- ) external pure override returns (UFixed) {
128
- return UFixedMathLib.toUFixed(a);
129
- }
130
-
131
- function getUFixed(
132
- uint256 a,
133
- int8 exp
134
- ) external pure returns (UFixed)
135
- {
136
- return UFixedMathLib.toUFixed(a, exp);
137
- }
138
- }
@@ -1,157 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegistry} from "../../registry/IRegistry.sol";
7
- import {IInstance} from "../IInstance.sol";
8
-
9
- import {ITreasuryModule} from "../module/treasury/ITreasury.sol";
10
- import {TreasuryModule} from "../module/treasury/TreasuryModule.sol";
11
- import {IComponent, IComponentModule} from "../module/component/IComponent.sol";
12
- import {IBaseComponent} from "../../components/IBaseComponent.sol";
13
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
14
- import {IKeyValueStore} from "../../instance/base/IKeyValueStore.sol";
15
- import {IVersionable} from "../../shared/IVersionable.sol";
16
- import {Versionable} from "../../shared/Versionable.sol";
17
-
18
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../types/RoleId.sol";
19
- import {ObjectType, COMPONENT, PRODUCT, ORACLE, POOL, DISTRIBUTION} from "../../types/ObjectType.sol";
20
- import {StateId, ACTIVE, PAUSED} from "../../types/StateId.sol";
21
- import {Key32} from "../../types/Key32.sol";
22
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
23
- import {Fee} from "../../types/Fee.sol";
24
- import {Version, VersionLib} from "../../types/Version.sol";
25
-
26
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
27
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
28
- import {IProductComponent} from "../../components/IProductComponent.sol";
29
- import {ServiceBase} from "../base/ServiceBase.sol";
30
- import {IComponentOwnerService} from "./IComponentOwnerService.sol";
31
-
32
- contract ComponentOwnerService is
33
- ServiceBase,
34
- IComponentOwnerService
35
- {
36
- using NftIdLib for NftId;
37
-
38
- string public constant NAME = "ComponentOwnerService";
39
-
40
- modifier onlyRegisteredComponent(IBaseComponent component) {
41
- NftId nftId = _registry.getNftId(address(component));
42
- require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
43
- _;
44
- }
45
-
46
- constructor(
47
- address registry,
48
- NftId registryNftId
49
- ) ServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
50
- {
51
-
52
- }
53
-
54
- function getVersion()
55
- public
56
- pure
57
- virtual override (IVersionable, Versionable)
58
- returns(Version)
59
- {
60
- return VersionLib.toVersion(3,0,0);
61
- }
62
-
63
- function getName() external pure override returns(string memory name) {
64
- return NAME;
65
- }
66
-
67
- function getRoleForType(
68
- ObjectType cType
69
- ) public pure override returns (RoleId role) {
70
- if (cType == PRODUCT()) {
71
- return PRODUCT_OWNER_ROLE();
72
- }
73
- if (cType == POOL()) {
74
- return POOL_OWNER_ROLE();
75
- }
76
- if (cType == DISTRIBUTION()) {
77
- return DISTRIBUTION_OWNER_ROLE();
78
- }
79
- if (cType == ORACLE()) {
80
- return ORACLE_OWNER_ROLE();
81
- }
82
- }
83
-
84
- function register(
85
- IBaseComponent component
86
- ) external override returns (NftId nftId) {
87
- address initialOwner = component.getOwner();
88
- require(
89
- msg.sender == address(component),
90
- "ERROR:COS-003:NOT_COMPONENT"
91
- );
92
-
93
- IInstance instance = component.getInstance();
94
- ObjectType objectType = component.getType();
95
- RoleId typeRole = getRoleForType(objectType);
96
- require(
97
- instance.hasRole(typeRole, initialOwner),
98
- "ERROR:CMP-004:TYPE_ROLE_MISSING"
99
- );
100
-
101
- nftId = _registry.register(address(component));
102
- IERC20Metadata token = component.getToken();
103
-
104
- instance.registerComponent(
105
- nftId,
106
- token,
107
- component.getWallet());
108
-
109
- // component type specific registration actions
110
- if (component.getType() == PRODUCT()) {
111
- IProductComponent product = IProductComponent(address(component));
112
-
113
- NftId poolNftId = product.getPoolNftId();
114
- require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
115
- IPoolComponent pool = IPoolComponent(_registry.getObjectInfo(poolNftId).objectAddress);
116
-
117
- NftId distributionNftId = product.getDistributionNftId();
118
- IDistributionComponent distribution = IDistributionComponent(_registry.getObjectInfo(distributionNftId).objectAddress);
119
-
120
- // register with tresury
121
- instance.registerProductSetup(
122
- product,
123
- pool,
124
- distribution
125
- );
126
- } else if (component.getType() == POOL()) {
127
- IPoolComponent pool = IPoolComponent(address(component));
128
-
129
- // register with pool
130
- instance.registerPool(
131
- nftId,
132
- pool.isVerifying(),
133
- pool.getCollateralizationLevel());
134
- }
135
- // TODO add compensation
136
- }
137
-
138
- function lock(
139
- IBaseComponent component
140
- ) external override onlyRegisteredComponent(component) {
141
- // TODO use msg.sender to get component and get instance via registered parent nft id
142
- IInstance instance = component.getInstance();
143
- NftId nftId = component.getNftId();
144
- Key32 key = nftId.toKey32(COMPONENT());
145
- instance.updateState(key, PAUSED());
146
- }
147
-
148
- function unlock(
149
- IBaseComponent component
150
- ) external override onlyRegisteredComponent(component) {
151
- // TODO use msg.sender to get component and get instance via registered parent nft id
152
- IInstance instance = component.getInstance();
153
- NftId nftId = component.getNftId();
154
- Key32 key = nftId.toKey32(COMPONENT());
155
- instance.updateState(key, ACTIVE());
156
- }
157
- }
@@ -1,59 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../instance/IInstance.sol";
6
- import {ITreasury} from "../../instance/module/treasury/ITreasury.sol";
7
-
8
- import {NftId} from "../../types/NftId.sol";
9
- import {Fee} from "../../types/Fee.sol";
10
- import {DISTRIBUTION} from "../../types/ObjectType.sol";
11
- import {Version, VersionLib} from "../../types/Version.sol";
12
-
13
- import {IVersionable} from "../../shared/IVersionable.sol";
14
- import {Versionable} from "../../shared/Versionable.sol";
15
-
16
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
17
- import {IDistributionService} from "./IDistributionService.sol";
18
-
19
- contract DistributionService is
20
- ComponentServiceBase,
21
- IDistributionService
22
- {
23
- string public constant NAME = "DistributionService";
24
-
25
- constructor(
26
- address registry,
27
- NftId registryNftId
28
- ) ComponentServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
29
- {
30
- _registerInterface(type(IDistributionService).interfaceId);
31
- }
32
-
33
- function getVersion()
34
- public
35
- pure
36
- virtual override (IVersionable, Versionable)
37
- returns(Version)
38
- {
39
- return VersionLib.toVersion(3,0,0);
40
- }
41
-
42
- function getName() external pure override returns(string memory name) {
43
- return NAME;
44
- }
45
-
46
- function setFees(
47
- Fee memory distributionFee
48
- )
49
- external
50
- override
51
- {
52
- (IRegistry.ObjectInfo memory distributionInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
53
-
54
- NftId productNftId = instance.getProductNftId(distributionInfo.nftId);
55
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
56
- treasuryInfo.distributionFee = distributionFee;
57
- instance.setTreasuryInfo(productNftId, treasuryInfo);
58
- }
59
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {ObjectType} from "../../types/ObjectType.sol";
6
- import {RoleId} from "../../types/RoleId.sol";
7
- import {IBaseComponent} from "../../components/IBaseComponent.sol";
8
- import {IService} from "../base/IService.sol";
9
-
10
- // TODO rename to registry service
11
- interface IComponentOwnerService is IService {
12
-
13
- function register(IBaseComponent component) external returns(NftId componentNftId);
14
-
15
- // TODO move to product/pool services
16
- function lock(IBaseComponent component) external;
17
-
18
- // TODO move to product/pool services
19
- function unlock(IBaseComponent component) external;
20
-
21
- function getRoleForType(ObjectType cType) external pure returns (RoleId role);
22
- }
@@ -1,12 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {IService} from "../base/IService.sol";
7
-
8
- interface IDistributionService is IService {
9
- function setFees(
10
- Fee memory distributionFee
11
- ) external;
12
- }
@@ -1,37 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {IService} from "../base/IService.sol";
7
-
8
- interface IPoolService is IService {
9
- function setFees(
10
- Fee memory poolFee,
11
- Fee memory stakingFee,
12
- Fee memory performanceFee
13
- ) external;
14
-
15
- function createBundle(
16
- address owner,
17
- Fee memory fee,
18
- uint256 amount,
19
- uint256 lifetime,
20
- bytes calldata filter
21
- ) external returns(NftId bundleNftId);
22
-
23
- function setBundleFee(
24
- NftId bundleNftId,
25
- Fee memory fee
26
- ) external;
27
-
28
- // function fundBundle(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
29
-
30
- // function defundBundle(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
31
-
32
- // function lockBundle(NftId bundleNftId) external;
33
-
34
- // function unlockBundle(NftId bundleNftId) external;
35
-
36
- // function closeBundle(NftId bundleNftId) external;
37
- }
@@ -1,107 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/risk/IRisk.sol";
5
- import {IService} from "../base/IService.sol";
6
-
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/ReferralId.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Timestamp} from "../../types/Timestamp.sol";
12
- import {UFixed} from "../../types/UFixed.sol";
13
- import {Fee} from "../../types/Fee.sol";
14
-
15
- interface IProductService is IService {
16
- function setFees(
17
- Fee memory productFee,
18
- Fee memory processingFee
19
- ) external;
20
-
21
- function createRisk(
22
- RiskId riskId,
23
- bytes memory data
24
- ) external;
25
-
26
-
27
- function setRiskInfo(
28
- RiskId riskId,
29
- IRisk.RiskInfo memory data
30
- ) external;
31
-
32
-
33
- function updateRiskState(
34
- RiskId riskId,
35
- StateId state
36
- ) external;
37
-
38
-
39
- function calculatePremium(
40
- RiskId riskId,
41
- uint256 sumInsuredAmount,
42
- uint256 lifetime,
43
- bytes memory applicationData,
44
- NftId bundleNftId,
45
- ReferralId referralId
46
- )
47
- external
48
- view
49
- returns (
50
- uint256 premiumAmount,
51
- uint256 productFeeAmount,
52
- uint256 poolFeeAmount,
53
- uint256 bundleFeeAmount,
54
- uint256 distributionFeeAmount
55
- );
56
-
57
-
58
- function createApplication(
59
- address applicationOwner,
60
- RiskId riskId,
61
- uint256 sumInsuredAmount,
62
- uint256 lifetime,
63
- bytes memory applicationData,
64
- NftId bundleNftId,
65
- ReferralId referralId
66
- ) external returns (NftId nftId);
67
-
68
- /**
69
- * @dev revokes the application represented by {policyNftId}.
70
- * an application can only be revoked in applied state.
71
- * only the application holder may revoke an application.
72
- */
73
- function revoke(NftId policyNftId) external;
74
-
75
- /**
76
- * @dev underwrites the policy represented by {policyNftId}.
77
- * optionally collects premiums and activates the policy.
78
- * - premium payment is only attempted if requirePremiumPayment is set to true
79
- * - activation is only done if activateAt is a non-zero timestamp
80
- */
81
- function underwrite(
82
- NftId policyNftId,
83
- bool requirePremiumPayment,
84
- Timestamp activateAt
85
- ) external;
86
-
87
- // function decline(uint256 nftId) external;
88
- // function expire(uint256 nftId) external;
89
-
90
- function collectPremium(NftId policyNftId, Timestamp activateAt) external;
91
-
92
- function activate(NftId policyNftId, Timestamp activateAt) external;
93
-
94
-
95
- function close(NftId nftId) external;
96
-
97
- // function createClaim(uint256 nftId, uint256 claimAmount) external;
98
- // function confirmClaim(uint256 nftId, uint256 claimId, uint256 claimAmount) external;
99
- // function declineClaim(uint256 nftId, uint256 claimId) external;
100
- // function closeClaim(uint256 nftId, uint256 claimId) external;
101
-
102
- function calculateRequiredCollateral(
103
- UFixed collateralizationLevel,
104
- uint256 sumInsuredAmount
105
- ) external pure returns(uint256 collateralAmount);
106
-
107
- }
@@ -1,149 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../instance/IInstance.sol";
6
- import {IBundle} from "../../instance/module/bundle/IBundle.sol";
7
- import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
8
-
9
- import {IVersionable} from "../../shared/IVersionable.sol";
10
- import {Versionable} from "../../shared/Versionable.sol";
11
-
12
- import {NftId, NftIdLib} from "../../types/NftId.sol";
13
- import {POOL, BUNDLE} from "../../types/ObjectType.sol";
14
- import {Fee} from "../../types/Fee.sol";
15
- import {Version, VersionLib} from "../../types/Version.sol";
16
-
17
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
18
- import {IPoolService} from "./IPoolService.sol";
19
-
20
-
21
- contract PoolService is ComponentServiceBase, IPoolService {
22
- using NftIdLib for NftId;
23
-
24
- string public constant NAME = "PoolService";
25
-
26
- constructor(
27
- address registry,
28
- NftId registryNftId
29
- ) ComponentServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
30
- {
31
- _registerInterface(type(IPoolService).interfaceId);
32
- }
33
-
34
- function getVersion()
35
- public
36
- pure
37
- virtual override (IVersionable, Versionable)
38
- returns(Version)
39
- {
40
- return VersionLib.toVersion(3,0,0);
41
- }
42
-
43
- function getName() external pure override returns(string memory name) {
44
- return NAME;
45
- }
46
-
47
- function setFees(
48
- Fee memory poolFee,
49
- Fee memory stakingFee,
50
- Fee memory performanceFee
51
- )
52
- external
53
- override
54
- {
55
- (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
56
-
57
- NftId productNftId = instance.getProductNftId(poolInfo.nftId);
58
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
59
- treasuryInfo.poolFee = poolFee;
60
- treasuryInfo.stakingFee = stakingFee;
61
- treasuryInfo.performanceFee = performanceFee;
62
- instance.setTreasuryInfo(productNftId, treasuryInfo);
63
- }
64
-
65
- function createBundle(
66
- address owner,
67
- Fee memory fee,
68
- uint256 stakingAmount,
69
- uint256 lifetime,
70
- bytes calldata filter
71
- )
72
- external
73
- override
74
- returns(NftId bundleNftId)
75
- {
76
- (IRegistry.ObjectInfo memory info, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
77
-
78
- // register bundle with registry
79
- NftId poolNftId = info.nftId;
80
- bundleNftId = _registry.registerObjectForInstance(
81
- poolNftId,
82
- BUNDLE(),
83
- owner,
84
- "");
85
-
86
- // create bundle info in instance
87
- instance.createBundleInfo(
88
- bundleNftId,
89
- poolNftId,
90
- fee,
91
- stakingAmount,
92
- lifetime,
93
- filter);
94
-
95
- // add bundle to pool in instance
96
- instance.addBundleToPool(
97
- bundleNftId,
98
- poolNftId,
99
- stakingAmount);
100
-
101
- // collect capital
102
- _processStakingByTreasury(
103
- instance,
104
- poolNftId,
105
- bundleNftId,
106
- stakingAmount);
107
-
108
- // TODO add logging
109
- }
110
-
111
- function setBundleFee(
112
- NftId bundleNftId,
113
- Fee memory fee
114
- )
115
- external
116
- override
117
- {
118
- (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
119
- IBundle.BundleInfo memory bundleInfo = instance.getBundleInfo(bundleNftId);
120
- require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
121
- require(poolInfo.nftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
122
- bundleInfo.fee = fee;
123
- instance.setBundleInfo(bundleNftId, bundleInfo);
124
- }
125
-
126
-
127
- function _processStakingByTreasury(
128
- IInstance instance,
129
- NftId poolNftId,
130
- NftId bundleNftId,
131
- uint256 stakingAmount
132
- )
133
- internal
134
- {
135
- // process token transfer(s)
136
- if(stakingAmount > 0) {
137
- NftId productNftId = instance.getProductNftId(poolNftId);
138
- TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
139
- address bundleOwner = _registry.getOwner(bundleNftId);
140
- address poolWallet = instance.getComponentWallet(poolNftId);
141
-
142
- tokenHandler.transfer(
143
- bundleOwner,
144
- poolWallet,
145
- stakingAmount
146
- );
147
- }
148
- }
149
- }