@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8d9d4d6-542

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 (703) hide show
  1. package/README.md +179 -14
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1502 -0
  4. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  5. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  6. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1168 -0
  8. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +110 -0
  10. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  12. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1639 -0
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +134 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  18. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  19. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  20. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  22. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  24. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  26. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  28. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  30. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  31. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +358 -1865
  32. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  33. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  34. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -2059
  36. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  38. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1676 -0
  40. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  41. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -0
  42. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  43. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  44. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  46. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  48. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  50. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  52. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  53. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  54. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  55. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  56. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  58. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  60. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  61. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  62. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  64. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  65. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  66. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  68. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  74. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  75. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  76. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  78. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  80. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  82. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  84. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  86. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  87. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  88. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  90. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +342 -313
  92. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  93. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  94. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  95. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  96. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  98. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  100. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  102. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  104. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  106. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  107. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  108. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  110. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  111. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  112. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  113. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  114. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  115. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  116. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  117. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +320 -255
  118. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  120. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +187 -176
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  123. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  127. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  130. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  131. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  138. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +396 -61
  140. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  141. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +621 -166
  142. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  143. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  144. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  145. package/artifacts/contracts/registry/Registry.sol/Registry.json +630 -235
  146. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  147. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1932 -0
  148. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +863 -272
  150. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  152. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  153. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1237 -0
  154. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  155. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  156. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  157. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  158. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  159. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  160. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  161. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  162. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  164. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  166. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  168. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  170. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  171. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  172. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  174. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +298 -152
  176. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  178. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  180. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +65 -8
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +155 -153
  202. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  212. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  218. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +369 -62
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +205 -12
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  223. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  224. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +242 -191
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  227. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  228. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  229. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  230. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +215 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  302. package/contracts/authorization/AccessAdmin.sol +749 -0
  303. package/contracts/authorization/IAccess.sol +43 -0
  304. package/contracts/authorization/IAccessAdmin.sol +130 -0
  305. package/contracts/authorization/IModuleAuthorization.sol +27 -0
  306. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  307. package/contracts/authorization/InstanceAdmin.sol +108 -0
  308. package/contracts/authorization/ModuleAuthorization.sol +116 -0
  309. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  310. package/contracts/distribution/Distribution.sol +261 -0
  311. package/contracts/distribution/DistributionService.sol +297 -0
  312. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  313. package/contracts/distribution/IDistributionComponent.sol +66 -0
  314. package/contracts/distribution/IDistributionService.sol +81 -0
  315. package/contracts/instance/BundleManager.sol +126 -0
  316. package/contracts/instance/IInstance.sol +79 -46
  317. package/contracts/instance/IInstanceService.sol +97 -0
  318. package/contracts/instance/Instance.sol +243 -69
  319. package/contracts/instance/InstanceAdmin.sol +331 -0
  320. package/contracts/instance/InstanceAdminNew.sol +74 -0
  321. package/contracts/instance/InstanceAuthorizationV3.sol +176 -0
  322. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  323. package/contracts/instance/InstanceReader.sol +392 -0
  324. package/contracts/instance/InstanceService.sol +439 -0
  325. package/contracts/instance/InstanceServiceManager.sol +44 -0
  326. package/contracts/instance/InstanceStore.sol +269 -0
  327. package/contracts/instance/base/BalanceStore.sol +123 -0
  328. package/contracts/instance/base/Cloneable.sol +28 -0
  329. package/contracts/instance/base/ObjectCounter.sol +21 -0
  330. package/contracts/instance/base/ObjectManager.sol +80 -0
  331. package/contracts/instance/module/IAccess.sol +46 -0
  332. package/contracts/instance/module/IBundle.sol +20 -0
  333. package/contracts/instance/module/IComponents.sol +52 -0
  334. package/contracts/instance/module/IDistribution.sol +42 -0
  335. package/contracts/instance/module/IPolicy.sol +84 -0
  336. package/contracts/instance/module/IRisk.sol +11 -0
  337. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  338. package/contracts/oracle/IOracle.sol +20 -0
  339. package/contracts/oracle/IOracleComponent.sol +32 -0
  340. package/contracts/oracle/IOracleService.sol +65 -0
  341. package/contracts/oracle/Oracle.sol +145 -0
  342. package/contracts/oracle/OracleService.sol +278 -0
  343. package/contracts/oracle/OracleServiceManager.sol +42 -0
  344. package/contracts/pool/BundleService.sol +296 -0
  345. package/contracts/pool/BundleServiceManager.sol +42 -0
  346. package/contracts/pool/IBundleService.sol +106 -0
  347. package/contracts/pool/IPoolComponent.sol +112 -0
  348. package/contracts/pool/IPoolService.sol +150 -0
  349. package/contracts/pool/Pool.sol +299 -0
  350. package/contracts/pool/PoolService.sol +452 -0
  351. package/contracts/pool/PoolServiceManager.sol +42 -0
  352. package/contracts/product/ApplicationService.sol +254 -0
  353. package/contracts/product/ApplicationServiceManager.sol +38 -0
  354. package/contracts/product/ClaimService.sol +442 -0
  355. package/contracts/product/ClaimServiceManager.sol +38 -0
  356. package/contracts/product/IApplicationService.sol +62 -0
  357. package/contracts/product/IClaimService.sol +99 -0
  358. package/contracts/product/IPolicyService.sol +78 -0
  359. package/contracts/product/IPricingService.sol +39 -0
  360. package/contracts/product/IProductComponent.sol +42 -0
  361. package/contracts/product/IProductService.sol +33 -0
  362. package/contracts/product/PolicyService.sol +475 -0
  363. package/contracts/product/PolicyServiceManager.sol +42 -0
  364. package/contracts/product/PricingService.sol +300 -0
  365. package/contracts/product/PricingServiceManager.sol +42 -0
  366. package/contracts/product/Product.sol +377 -0
  367. package/contracts/product/ProductService.sol +124 -0
  368. package/contracts/product/ProductServiceManager.sol +42 -0
  369. package/contracts/registry/ChainNft.sol +55 -25
  370. package/contracts/registry/IRegistry.sol +84 -35
  371. package/contracts/registry/IRegistryService.sol +56 -16
  372. package/contracts/registry/ITransferInterceptor.sol +1 -0
  373. package/contracts/registry/Registry.sol +411 -334
  374. package/contracts/registry/RegistryAdmin.sol +325 -0
  375. package/contracts/registry/RegistryService.sol +157 -274
  376. package/contracts/registry/RegistryServiceManager.sol +53 -0
  377. package/contracts/registry/ReleaseManager.sol +529 -0
  378. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  379. package/contracts/registry/TokenRegistry.sol +315 -0
  380. package/contracts/shared/AccessManagerCustom.sol +741 -0
  381. package/contracts/shared/AccessManagerExtended.sol +481 -0
  382. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  383. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  384. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  385. package/contracts/shared/Component.sol +281 -0
  386. package/contracts/shared/ComponentService.sol +617 -0
  387. package/contracts/shared/ComponentServiceManager.sol +35 -0
  388. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  389. package/contracts/shared/ERC165.sol +16 -10
  390. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  391. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  392. package/contracts/shared/IComponent.sol +70 -0
  393. package/contracts/shared/IComponentService.sol +102 -0
  394. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  395. package/contracts/shared/IKeyValueStore.sol +53 -0
  396. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  397. package/contracts/shared/INftOwnable.sol +23 -0
  398. package/contracts/shared/IPolicyHolder.sol +45 -0
  399. package/contracts/shared/IRegisterable.sol +5 -12
  400. package/contracts/shared/IRegistryLinked.sol +11 -0
  401. package/contracts/shared/IService.sol +25 -0
  402. package/contracts/shared/IVersionable.sol +5 -48
  403. package/contracts/shared/InitializableCustom.sol +177 -0
  404. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  405. package/contracts/shared/KeyValueStore.sol +127 -0
  406. package/contracts/{instance/base → shared}/Lifecycle.sol +38 -8
  407. package/contracts/shared/NftIdSetManager.sol +65 -0
  408. package/contracts/shared/NftOwnable.sol +107 -0
  409. package/contracts/shared/PolicyHolder.sol +102 -0
  410. package/contracts/shared/ProxyManager.sol +127 -43
  411. package/contracts/shared/Registerable.sol +33 -75
  412. package/contracts/shared/RegistryLinked.sol +43 -0
  413. package/contracts/shared/Service.sol +83 -0
  414. package/contracts/shared/TokenHandler.sol +58 -0
  415. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  416. package/contracts/shared/Versionable.sol +5 -93
  417. package/contracts/staking/IStaking.sol +168 -0
  418. package/contracts/staking/IStakingService.sol +153 -0
  419. package/contracts/staking/StakeManagerLib.sol +231 -0
  420. package/contracts/staking/Staking.sol +513 -0
  421. package/contracts/staking/StakingManager.sol +54 -0
  422. package/contracts/staking/StakingReader.sol +187 -0
  423. package/contracts/staking/StakingService.sol +411 -0
  424. package/contracts/staking/StakingServiceManager.sol +44 -0
  425. package/contracts/staking/StakingStore.sol +613 -0
  426. package/contracts/staking/TargetManagerLib.sol +207 -0
  427. package/contracts/{types → type}/AddressSet.sol +1 -1
  428. package/contracts/type/Amount.sol +128 -0
  429. package/contracts/{types → type}/Blocknumber.sol +21 -3
  430. package/contracts/type/ClaimId.sol +75 -0
  431. package/contracts/type/DistributorType.sol +55 -0
  432. package/contracts/type/Fee.sol +66 -0
  433. package/contracts/{types → type}/Key32.sol +8 -3
  434. package/contracts/{types → type}/NftId.sol +21 -15
  435. package/contracts/type/NftIdSet.sol +62 -0
  436. package/contracts/type/ObjectType.sol +264 -0
  437. package/contracts/type/PayoutId.sol +82 -0
  438. package/contracts/type/Referral.sol +89 -0
  439. package/contracts/type/RequestId.sol +75 -0
  440. package/contracts/{types → type}/RiskId.sol +1 -1
  441. package/contracts/type/RoleId.sol +201 -0
  442. package/contracts/type/Seconds.sol +81 -0
  443. package/contracts/type/Selector.sol +102 -0
  444. package/contracts/{types → type}/StateId.sol +39 -5
  445. package/contracts/type/String.sol +53 -0
  446. package/contracts/{types → type}/Timestamp.sol +27 -14
  447. package/contracts/{types → type}/UFixed.sol +129 -12
  448. package/contracts/{types → type}/Version.sol +6 -2
  449. package/package.json +8 -7
  450. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  451. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  452. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  453. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  454. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  456. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  457. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  458. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  460. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  462. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  463. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  464. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  465. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  466. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  468. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  470. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  472. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  474. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  476. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  478. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  480. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  482. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  484. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  486. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  488. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  490. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  492. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  494. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  496. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  498. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  500. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  501. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  502. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  503. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  505. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  513. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
  516. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  517. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  518. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  519. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  521. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  522. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  523. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  526. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  528. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  530. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  533. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  536. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  539. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  541. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  543. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  545. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  547. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  550. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  552. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  554. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  556. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  558. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  560. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  564. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  567. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  571. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  573. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  574. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  575. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  576. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  577. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  578. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  579. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  580. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  582. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  584. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  585. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  586. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  587. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  588. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  589. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  590. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  591. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  592. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  594. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  596. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  598. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  600. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  601. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  602. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  603. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  605. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  608. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  609. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  610. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  612. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  613. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  614. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  616. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  618. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  621. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  624. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  628. package/contracts/components/BaseComponent.sol +0 -79
  629. package/contracts/components/Distribution.sol +0 -155
  630. package/contracts/components/IBaseComponent.sol +0 -19
  631. package/contracts/components/IDistributionComponent.sol +0 -47
  632. package/contracts/components/IPoolComponent.sol +0 -65
  633. package/contracts/components/IProductComponent.sol +0 -39
  634. package/contracts/components/Pool.sol +0 -246
  635. package/contracts/components/Product.sol +0 -299
  636. package/contracts/experiment/errors/Require.sol +0 -38
  637. package/contracts/experiment/errors/Revert.sol +0 -44
  638. package/contracts/experiment/inheritance/A.sol +0 -53
  639. package/contracts/experiment/inheritance/B.sol +0 -28
  640. package/contracts/experiment/inheritance/C.sol +0 -34
  641. package/contracts/experiment/inheritance/IA.sol +0 -13
  642. package/contracts/experiment/inheritance/IB.sol +0 -10
  643. package/contracts/experiment/inheritance/IC.sol +0 -12
  644. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  645. package/contracts/experiment/statemachine/ISM.sol +0 -25
  646. package/contracts/experiment/statemachine/SM.sol +0 -57
  647. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  648. package/contracts/experiment/types/TypeA.sol +0 -47
  649. package/contracts/experiment/types/TypeB.sol +0 -29
  650. package/contracts/instance/IInstanceLinked.sol +0 -8
  651. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  652. package/contracts/instance/base/IInstanceBase.sol +0 -23
  653. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  654. package/contracts/instance/base/IService.sol +0 -15
  655. package/contracts/instance/base/InstanceBase.sol +0 -89
  656. package/contracts/instance/base/KeyValueStore.sol +0 -161
  657. package/contracts/instance/base/ModuleBase.sol +0 -57
  658. package/contracts/instance/base/ServiceBase.sol +0 -43
  659. package/contracts/instance/module/access/Access.sol +0 -149
  660. package/contracts/instance/module/access/IAccess.sol +0 -53
  661. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  662. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  663. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  664. package/contracts/instance/module/component/IComponent.sol +0 -28
  665. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  666. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  667. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  668. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  669. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  670. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  671. package/contracts/instance/module/risk/IRisk.sol +0 -26
  672. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  673. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  674. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  675. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  676. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  677. package/contracts/instance/service/DistributionService.sol +0 -54
  678. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  679. package/contracts/instance/service/IDistributionService.sol +0 -12
  680. package/contracts/instance/service/IPoolService.sol +0 -37
  681. package/contracts/instance/service/IProductService.sol +0 -107
  682. package/contracts/instance/service/PoolService.sol +0 -149
  683. package/contracts/instance/service/ProductService.sol +0 -509
  684. package/contracts/registry/IChainNft.sol +0 -22
  685. package/contracts/registry/IRegistryLinked.sol +0 -8
  686. package/contracts/registry/RegistryInstaller.sol +0 -100
  687. package/contracts/shared/IOwnable.sol +0 -6
  688. package/contracts/test/TestDistribution.sol +0 -22
  689. package/contracts/test/TestFee.sol +0 -25
  690. package/contracts/test/TestPool.sol +0 -27
  691. package/contracts/test/TestProduct.sol +0 -74
  692. package/contracts/test/TestRegisterable.sol +0 -18
  693. package/contracts/test/TestRoleId.sol +0 -14
  694. package/contracts/test/TestService.sol +0 -26
  695. package/contracts/test/TestToken.sol +0 -26
  696. package/contracts/test/TestVersion.sol +0 -44
  697. package/contracts/test/TestVersionable.sol +0 -17
  698. package/contracts/types/ChainId.sol +0 -38
  699. package/contracts/types/Fee.sol +0 -56
  700. package/contracts/types/NftIdSet.sol +0 -60
  701. package/contracts/types/ObjectType.sol +0 -131
  702. package/contracts/types/ReferralId.sol +0 -48
  703. package/contracts/types/RoleId.sol +0 -38
@@ -1,246 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {ObjectType, POOL} from "../types/ObjectType.sol";
5
- import {IProductService} from "../instance/service/IProductService.sol";
6
- import {IPoolService} from "../instance/service/IPoolService.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {Fee} from "../types/Fee.sol";
9
- import {UFixed} from "../types/UFixed.sol";
10
- import {IPoolComponent} from "./IPoolComponent.sol";
11
- import {BaseComponent} from "./BaseComponent.sol";
12
-
13
- import {IRegistry} from "../registry/IRegistry.sol";
14
- import {IPool} from "../instance/module/pool/IPoolModule.sol";
15
- import {ITreasury} from "../instance/module/treasury/ITreasury.sol";
16
-
17
- import {IRegisterable} from "../shared/IRegisterable.sol";
18
- import {Registerable} from "../shared/Registerable.sol";
19
-
20
- contract Pool is BaseComponent, IPoolComponent {
21
-
22
- bool internal _isVerifying;
23
- UFixed internal _collateralizationLevel;
24
-
25
- Fee internal _initialPoolFee;
26
- Fee internal _initialStakingFee;
27
- Fee internal _initialPerformanceFee;
28
-
29
- // may be used to interact with instance by derived contracts
30
- IPoolService internal _poolService;
31
-
32
- // only relevant to protect callback functions for "active" pools
33
- IProductService private _productService;
34
-
35
- modifier onlyPoolService() {
36
- require(
37
- msg.sender == address(_poolService),
38
- "ERROR:POL-001:NOT_POOL_SERVICE");
39
- _;
40
- }
41
-
42
- modifier onlyProductService() {
43
- require(
44
- msg.sender == address(_productService),
45
- "ERROR:POL-002:NOT_PRODUCT_SERVICE");
46
- _;
47
- }
48
-
49
- constructor(
50
- address registry,
51
- NftId instanceNftId,
52
- // TODO refactor into tokenNftId
53
- address token,
54
- bool isInterceptor,
55
- bool verifying,
56
- UFixed collateralizationLevel,
57
- Fee memory poolFee,
58
- Fee memory stakingFee,
59
- Fee memory performanceFee,
60
- address initialOwner
61
- )
62
- BaseComponent(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner)
63
- {
64
- _isVerifying = verifying;
65
- // TODO add validation
66
- _collateralizationLevel = collateralizationLevel;
67
- _initialPoolFee = poolFee;
68
- _initialStakingFee = stakingFee;
69
- _initialPerformanceFee = performanceFee;
70
-
71
- _poolService = _instance.getPoolService();
72
- _productService = _instance.getProductService();
73
-
74
- _registerInterface(type(IPoolComponent).interfaceId);
75
- }
76
-
77
- function createBundle(
78
- Fee memory fee,
79
- uint256 initialAmount,
80
- uint256 lifetime,
81
- bytes memory filter
82
- )
83
- external
84
- virtual override
85
- returns(NftId bundleNftId)
86
- {
87
- address owner = msg.sender;
88
- bundleNftId = _poolService.createBundle(
89
- owner,
90
- fee,
91
- initialAmount,
92
- lifetime,
93
- filter
94
- );
95
-
96
- // TODO add logging
97
- }
98
-
99
- /**
100
- * @dev see {IPool.underwrite}.
101
- * Default implementation that only writes a {LogUnderwrittenByPool} entry.
102
- */
103
- function underwrite(
104
- NftId policyNftId,
105
- bytes memory policyData,
106
- bytes memory bundleFilter,
107
- uint256 collateralizationAmount
108
- )
109
- external
110
- onlyProductService
111
- virtual override
112
- {
113
- _underwrite(policyNftId, policyData, bundleFilter, collateralizationAmount);
114
- }
115
-
116
- /**
117
- * @dev see {IPoolComponent.policyMatchesBundle}.
118
- * Default implementation always returns true
119
- */
120
- function policyMatchesBundle(
121
- bytes memory, // policyData
122
- bytes memory // bundleFilter
123
- )
124
- public
125
- view
126
- virtual override
127
- returns (bool isMatching)
128
- {
129
- return true;
130
- }
131
-
132
-
133
- function isVerifying() external view override returns (bool verifying) {
134
- return _isVerifying;
135
- }
136
-
137
- function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
138
- return _collateralizationLevel;
139
- }
140
-
141
- function setFees(
142
- Fee memory poolFee,
143
- Fee memory stakingFee,
144
- Fee memory performanceFee
145
- )
146
- external
147
- onlyOwner
148
- override
149
- {
150
- _poolService.setFees(poolFee, stakingFee, performanceFee);
151
- }
152
-
153
- function setBundleFee(
154
- NftId bundleNftId,
155
- Fee memory fee
156
- )
157
- external
158
- override
159
- // TODO add onlyBundleOwner
160
- {
161
- _poolService.setBundleFee(bundleNftId, fee);
162
- }
163
- // TODO delete, call instance instead
164
- function getFees()
165
- external
166
- view
167
- override
168
- returns (Fee memory, Fee memory, Fee memory)
169
- {
170
- NftId productNftId = _instance.getProductNftId(getNftId());
171
- //if (_instance.hasTreasuryInfo(productNftId)) {
172
- ITreasury.TreasuryInfo memory info = _instance.getTreasuryInfo(productNftId);
173
- return (info.poolFee, info.stakingFee, info.performanceFee);
174
- //} else {
175
- // return (_initialPoolFee, _initialStakingFee, _initialPerformanceFee);
176
- //}
177
- }
178
-
179
- // from IRegisterable
180
-
181
- // TODO used only once, occupies space
182
- // TODO do not use super
183
- function getInitialInfo()
184
- public
185
- view
186
- override (IRegisterable, Registerable)
187
- returns (IRegistry.ObjectInfo memory, bytes memory)
188
- {
189
- (
190
- IRegistry.ObjectInfo memory info,
191
- bytes memory data
192
- ) = super.getInitialInfo();
193
-
194
- return (
195
- info,
196
- abi.encode(
197
- IPool.PoolInfo(
198
- _isVerifying,
199
- _collateralizationLevel
200
- ),
201
- _wallet,
202
- _token,
203
- _initialPoolFee,
204
- _initialStakingFee,
205
- _initialPerformanceFee
206
- )
207
- );
208
- }
209
-
210
- // Internals
211
-
212
- function _underwrite(
213
- NftId policyNftId,
214
- bytes memory policyData,
215
- bytes memory bundleFilter,
216
- uint256 collateralizationAmount
217
- )
218
- internal
219
- {
220
- require(
221
- policyMatchesBundle(policyData, bundleFilter),
222
- "ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
223
- );
224
-
225
- emit LogUnderwrittenByPool(policyNftId, collateralizationAmount, address(this));
226
- }
227
-
228
- function _createBundle(
229
- address bundleOwner,
230
- Fee memory fee,
231
- uint256 amount,
232
- uint256 lifetime,
233
- bytes calldata filter
234
- )
235
- internal
236
- returns(NftId bundleNftId)
237
- {
238
- bundleNftId = _poolService.createBundle(
239
- bundleOwner,
240
- fee,
241
- amount,
242
- lifetime,
243
- filter
244
- );
245
- }
246
- }
@@ -1,299 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRisk} from "../instance/module/risk/IRisk.sol";
7
- import {ITreasury} from "../instance/module/treasury/ITreasury.sol";
8
- import {IProductService} from "../instance/service/IProductService.sol";
9
- import {IProductComponent} from "./IProductComponent.sol";
10
- import {NftId, zeroNftId} from "../types/NftId.sol";
11
- import {ObjectType, PRODUCT} from "../types/ObjectType.sol";
12
- import {ReferralId} from "../types/ReferralId.sol";
13
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
14
- import {StateId} from "../types/StateId.sol";
15
- import {Timestamp} from "../types/Timestamp.sol";
16
- import {Fee, FeeLib} from "../types/Fee.sol";
17
- import {BaseComponent} from "./BaseComponent.sol";
18
-
19
- import {IRegistry} from "../registry/IRegistry.sol";
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
- import {Registerable} from "../shared/Registerable.sol";
22
-
23
- import {IPool} from "../instance/module/pool/IPoolModule.sol";
24
- import {IPoolComponent} from "../components/IPoolComponent.sol";
25
-
26
- contract Product is BaseComponent, IProductComponent {
27
- IProductService internal _productService;
28
- IPoolComponent internal _pool;
29
- address internal _distribution;
30
- Fee internal _initialProductFee;
31
- Fee internal _initialProcessingFee;
32
-
33
- NftId internal _poolNftId;
34
- NftId internal _distributionNftId;
35
-
36
- constructor(
37
- address registry,
38
- NftId instanceNftid,
39
- address token,
40
- bool isInterceptor,
41
- address pool,
42
- address distribution,
43
- Fee memory productFee,
44
- Fee memory processingFee,
45
- address initialOwner
46
- ) BaseComponent(registry, instanceNftid, token, PRODUCT(), isInterceptor, initialOwner) {
47
- // TODO add validation
48
- _productService = _instance.getProductService();
49
- _pool = IPoolComponent(pool);
50
- _distribution = distribution;
51
- _initialProductFee = productFee;
52
- _initialProcessingFee = processingFee;
53
-
54
- _poolNftId = getRegistry().getNftId(address(_pool));
55
- _distributionNftId = getRegistry().getNftId(_distribution);
56
-
57
- _registerInterface(type(IProductComponent).interfaceId);
58
- }
59
-
60
-
61
- function calculatePremium(
62
- uint256 sumInsuredAmount,
63
- RiskId riskId,
64
- uint256 lifetime,
65
- bytes memory applicationData,
66
- ReferralId referralId,
67
- NftId bundleNftId
68
- )
69
- external
70
- view
71
- override
72
- returns (uint256 premiumAmount)
73
- {
74
- (premiumAmount,,,,) = _productService.calculatePremium(
75
- riskId,
76
- sumInsuredAmount,
77
- lifetime,
78
- applicationData,
79
- bundleNftId,
80
- referralId
81
- );
82
- }
83
-
84
-
85
- function calculateNetPremium(
86
- uint256 sumInsuredAmount,
87
- RiskId riskId,
88
- uint256 lifetime,
89
- bytes memory applicationData
90
- )
91
- external
92
- view
93
- virtual override
94
- returns (uint256 netPremiumAmount)
95
- {
96
- // default 10% of sum insured
97
- return sumInsuredAmount / 10;
98
- }
99
-
100
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
101
- return RiskIdLib.toRiskId(riskName);
102
- }
103
-
104
- function _createRisk(
105
- RiskId id,
106
- bytes memory data
107
- ) internal {
108
- _productService.createRisk(
109
- id,
110
- data
111
- );
112
- }
113
-
114
- function _setRiskInfo(
115
- RiskId id,
116
- IRisk.RiskInfo memory info
117
- ) internal {
118
- _productService.setRiskInfo(
119
- id,
120
- info
121
- );
122
- }
123
-
124
- function _updateRiskState(
125
- RiskId id,
126
- StateId state
127
- ) internal {
128
- _productService.updateRiskState(
129
- id,
130
- state
131
- );
132
- }
133
-
134
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
135
- return _instance.getRiskInfo(id);
136
- }
137
-
138
- function _createApplication(
139
- address applicationOwner,
140
- RiskId riskId,
141
- uint256 sumInsuredAmount,
142
- uint256 lifetime,
143
- bytes memory applicationData,
144
- NftId bundleNftId,
145
- ReferralId referralId
146
- ) internal returns (NftId nftId) {
147
- nftId = _productService.createApplication(
148
- applicationOwner,
149
- riskId,
150
- sumInsuredAmount,
151
- lifetime,
152
- applicationData,
153
- bundleNftId,
154
- referralId
155
- );
156
- }
157
-
158
- function _underwrite(
159
- NftId policyNftId,
160
- bool requirePremiumPayment,
161
- Timestamp activateAt
162
- )
163
- internal
164
- {
165
- _productService.underwrite(
166
- policyNftId,
167
- requirePremiumPayment,
168
- activateAt);
169
- }
170
-
171
- function _collectPremium(
172
- NftId policyNftId,
173
- Timestamp activateAt
174
- )
175
- internal
176
- {
177
- _productService.collectPremium(
178
- policyNftId,
179
- activateAt);
180
- }
181
-
182
- function _activate(
183
- NftId policyNftId,
184
- Timestamp activateAt
185
- )
186
- internal
187
- {
188
- _productService.activate(
189
- policyNftId,
190
- activateAt);
191
- }
192
-
193
- function getPoolNftId() external view override returns (NftId poolNftId) {
194
- return getRegistry().getNftId(address(_pool));
195
- }
196
-
197
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
198
- return getRegistry().getNftId(_distribution);
199
- }
200
-
201
- // from product component
202
- function setFees(
203
- Fee memory productFee,
204
- Fee memory processingFee
205
- )
206
- external
207
- onlyOwner
208
- override
209
- {
210
- _productService.setFees(productFee, processingFee);
211
- }
212
-
213
- // TODO delete, call instance intead
214
- function getProductFee()
215
- external
216
- view
217
- override
218
- returns (Fee memory productFee)
219
- {
220
- NftId productNftId = getNftId();
221
- if (_instance.hasTreasuryInfo(productNftId)) {
222
- return _instance.getTreasuryInfo(productNftId).productFee;
223
- } else {
224
- return _initialProductFee;
225
- }
226
- }
227
-
228
- function getProcessingFee()
229
- external
230
- view
231
- override
232
- returns (Fee memory processingFee)
233
- {
234
- NftId productNftId = getNftId();
235
- if (_instance.hasTreasuryInfo(productNftId)) {
236
- return _instance.getTreasuryInfo(productNftId).processingFee;
237
- } else {
238
- return _initialProcessingFee;
239
- }
240
- }
241
-
242
- // from IRegisterable
243
-
244
- // TODO used only once, occupies space
245
- function getInitialInfo()
246
- public
247
- view
248
- override (IRegisterable, Registerable)
249
- returns (IRegistry.ObjectInfo memory, bytes memory)
250
- {
251
- // from Registerable
252
- (
253
- IRegistry.ObjectInfo memory productInfo,
254
- bytes memory data
255
- ) = super.getInitialInfo();
256
-
257
- // TODO read pool & distribution fees
258
- // 1) from pool -> the only option -> pool must be registered first?
259
- // 2) from instance -> all fees are set into instance at product registration which is ongoing here
260
- // checks are done in registryProduct() where THIS function is called
261
- //require(getRegistry().getObjectInfo(_poolNftId).objectType == POOL(), "POOL_NOT_REGISTERED");
262
- //require(getRegistry().getObjectInfo(_distributionNftId).objectType == DISTRIBUTION(), "DISTRIBUTION_NOT_REGISTERED");
263
-
264
- // from PoolComponent
265
- (
266
- IRegistry.ObjectInfo memory poolInfo,
267
- bytes memory poolData
268
- ) = _pool.getInitialInfo();
269
-
270
- (
271
- /*IPool.PoolInfo memory info*/,
272
- /*address wallet*/,
273
- /*IERC20Metadata token*/,
274
- Fee memory initialPoolFee,
275
- Fee memory initialStakingFee,
276
- Fee memory initialPerformanceFee
277
- ) = abi.decode(poolData, (IPool.PoolInfo, address, IERC20Metadata, Fee, Fee, Fee));
278
-
279
- // TODO from DistributionComponent
280
-
281
- return (
282
- productInfo,
283
- abi.encode(
284
- ITreasury.TreasuryInfo(
285
- _poolNftId,
286
- _distributionNftId,
287
- _token,
288
- _initialProductFee,
289
- _initialProcessingFee,
290
- initialPoolFee,
291
- initialStakingFee,
292
- initialPerformanceFee,
293
- FeeLib.zeroFee()//_instance.getDistributionFee(_distributionNftId)
294
- ),
295
- _wallet
296
- )
297
- );
298
- }
299
- }
@@ -1,38 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- contract Require {
5
- error AsmallerThanB_S();
6
- error AsmallerThanB_M(uint a);
7
- error AsmallerThanB_L(uint a, uint b);
8
-
9
- uint256 private _b;
10
-
11
- constructor() {
12
- _b = 42;
13
- }
14
-
15
- function isAlargerThanBRequire_S(
16
- uint a
17
- ) external view returns (bool isLarger) {
18
- require(a > _b, "ERROR:ABC-001");
19
-
20
- return true;
21
- }
22
-
23
- function isAlargerThanBRequire_M(
24
- uint a
25
- ) external view returns (bool isLarger) {
26
- require(a > _b, "ERROR:ABC-002:A_IS_SMALLER");
27
-
28
- return true;
29
- }
30
-
31
- function isAlargerThanBRequire_L(
32
- uint a
33
- ) external view returns (bool isLarger) {
34
- require(a > _b, "ERROR:ABC-003:A_IS_SMALLER_THAN_B");
35
-
36
- return true;
37
- }
38
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- contract Revert {
5
- error AsmallerThanB_S();
6
- error AsmallerThanB_M(uint a);
7
- error AsmallerThanB_L(uint a, uint b);
8
-
9
- uint256 private _b;
10
-
11
- constructor() {
12
- _b = 42;
13
- }
14
-
15
- function isAlargerThanBRevert_S(
16
- uint a
17
- ) external view returns (bool isLarger) {
18
- if (a <= _b) {
19
- revert AsmallerThanB_S();
20
- }
21
-
22
- return true;
23
- }
24
-
25
- function isAlargerThanBRevert_M(
26
- uint a
27
- ) external view returns (bool isLarger) {
28
- if (a <= _b) {
29
- revert AsmallerThanB_M(a);
30
- }
31
-
32
- return true;
33
- }
34
-
35
- function isAlargerThanBRevert_L(
36
- uint a
37
- ) external view returns (bool isLarger) {
38
- if (a <= _b) {
39
- revert AsmallerThanB_L(a, _b);
40
- }
41
-
42
- return true;
43
- }
44
- }
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IA, ISharedA} from "./IA.sol";
5
- import {B} from "./B.sol";
6
- import {C} from "./C.sol";
7
-
8
- /*
9
-
10
- # dependency graph
11
-
12
- B <...+
13
- ^ |
14
- | |
15
- A --> C
16
-
17
- - A is the main contract
18
- - A provides functionality implemented by modules B and C
19
- - B and C rely on functionality shared by A
20
- - C accesses functionality of module B
21
-
22
- # chisel session
23
-
24
- import {A} from "./contracts/experiment/A.sol";
25
- A a = new A();
26
- uint(a.getA())
27
- uint(a.getB()))
28
- uint(a.getC())
29
- uint(a.getAfromB())
30
- uint(a.getAfromC())
31
- uint(a.getBfromC())
32
- a.setA(100);
33
- a.setB(10);
34
- a.setC(20);
35
- */
36
-
37
- contract AShared is ISharedA {
38
- uint256 private _x;
39
-
40
- constructor() {
41
- _x = 42;
42
- }
43
-
44
- function getA() external view override returns (uint256) {
45
- return _x;
46
- }
47
-
48
- function setA(uint256 newA) external override {
49
- _x = newA;
50
- }
51
- }
52
-
53
- contract A is AShared, B, C, IA {}
@@ -1,28 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ISharedA} from "./IA.sol";
5
- import {IB} from "./IB.sol";
6
-
7
- abstract contract B is ISharedA, IB {
8
- // names of private variables can be re-used in inheritance
9
- uint256 private _x;
10
-
11
- constructor() {
12
- _x = 1;
13
- }
14
-
15
- // access own state
16
- function getB() external view override returns (uint256) {
17
- return _x;
18
- }
19
-
20
- function setB(uint256 newB) external override {
21
- _x = newB;
22
- }
23
-
24
- // access state from parent contract A
25
- function getAfromB() external view override returns (uint256) {
26
- return this.getA();
27
- }
28
- }