@etherisc/gif-next 0.0.2-a25e4b8-781 → 0.0.2-a2def05-550

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 (695) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1400 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +787 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +241 -1561
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +389 -202
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +362 -2504
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -407
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +486 -394
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +319 -96
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  83. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  91. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → oracle/IOracleComponent.sol/IOracleComponent.json} +250 -266
  92. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1362 -0
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +771 -0
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  109. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +457 -270
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  111. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +366 -405
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1469 -0
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +695 -0
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +732 -0
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +667 -0
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1325 -0
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +775 -0
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +216 -235
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +327 -313
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -220
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  141. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +374 -307
  142. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IRiskService.sol/IRiskService.json} +126 -172
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1104 -0
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +715 -0
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingService.sol/PricingService.json +860 -0
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +715 -0
  152. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  153. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +408 -22
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +223 -264
  164. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +808 -39
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  170. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +411 -258
  172. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +302 -83
  174. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  176. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  178. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  180. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -80
  182. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +323 -233
  184. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1568 -0
  186. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +753 -0
  188. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  189. package/artifacts/contracts/{components/IComponent.sol/IComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +147 -133
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  191. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IComponent.sol/IComponent.json} +209 -192
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +165 -0
  204. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  206. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  208. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IService.sol/IService.json +84 -159
  210. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  212. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  214. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  216. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  217. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  220. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  221. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  225. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +188 -0
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  229. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  230. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Service.sol/Service.json +98 -171
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  235. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +714 -0
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1231 -0
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  296. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  298. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  300. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  302. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  304. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  306. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  308. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  310. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  312. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  314. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  315. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  316. package/contracts/authorization/AccessAdmin.sol +589 -0
  317. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  318. package/contracts/authorization/Authorization.sol +217 -0
  319. package/contracts/authorization/IAccess.sol +48 -0
  320. package/contracts/authorization/IAccessAdmin.sol +136 -0
  321. package/contracts/authorization/IAuthorization.sol +54 -0
  322. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  323. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  324. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  326. package/contracts/distribution/BasicDistribution.sol +138 -0
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  328. package/contracts/distribution/Distribution.sol +295 -0
  329. package/contracts/distribution/DistributionService.sol +336 -0
  330. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  331. package/contracts/distribution/IDistributionComponent.sol +52 -0
  332. package/contracts/distribution/IDistributionService.sol +101 -0
  333. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  334. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  335. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  336. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  337. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  338. package/contracts/instance/IInstance.sol +44 -47
  339. package/contracts/instance/IInstanceService.sol +73 -21
  340. package/contracts/instance/Instance.sol +165 -189
  341. package/contracts/instance/InstanceAdmin.sol +285 -0
  342. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  343. package/contracts/instance/InstanceReader.sol +202 -65
  344. package/contracts/instance/InstanceService.sol +357 -252
  345. package/contracts/instance/InstanceServiceManager.sol +13 -27
  346. package/contracts/instance/InstanceStore.sol +287 -0
  347. package/contracts/instance/base/BalanceStore.sol +123 -0
  348. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  349. package/contracts/instance/base/ObjectCounter.sol +21 -0
  350. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  351. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  352. package/contracts/instance/module/IAccess.sol +19 -21
  353. package/contracts/instance/module/IBundle.sol +8 -8
  354. package/contracts/instance/module/IComponents.sol +46 -0
  355. package/contracts/instance/module/IDistribution.sol +6 -4
  356. package/contracts/instance/module/IPolicy.sol +58 -19
  357. package/contracts/instance/module/IRisk.sol +1 -1
  358. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  359. package/contracts/oracle/BasicOracle.sol +48 -0
  360. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  361. package/contracts/oracle/IOracle.sol +36 -0
  362. package/contracts/oracle/IOracleComponent.sol +33 -0
  363. package/contracts/oracle/IOracleService.sol +65 -0
  364. package/contracts/oracle/Oracle.sol +167 -0
  365. package/contracts/oracle/OracleService.sol +279 -0
  366. package/contracts/oracle/OracleServiceManager.sol +39 -0
  367. package/contracts/pool/BasicPool.sol +166 -0
  368. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  369. package/contracts/pool/BundleService.sol +438 -0
  370. package/contracts/pool/BundleServiceManager.sol +39 -0
  371. package/contracts/pool/IBundleService.sol +134 -0
  372. package/contracts/pool/IPoolComponent.sol +58 -0
  373. package/contracts/pool/IPoolService.sol +160 -0
  374. package/contracts/pool/Pool.sol +326 -0
  375. package/contracts/pool/PoolService.sol +509 -0
  376. package/contracts/pool/PoolServiceManager.sol +39 -0
  377. package/contracts/product/ApplicationService.sol +248 -0
  378. package/contracts/product/ApplicationServiceManager.sol +38 -0
  379. package/contracts/product/BasicProduct.sol +53 -0
  380. package/contracts/product/BasicProductAuthorization.sol +43 -0
  381. package/contracts/product/ClaimService.sol +487 -0
  382. package/contracts/product/ClaimServiceManager.sol +38 -0
  383. package/contracts/product/IApplicationService.sol +63 -0
  384. package/contracts/product/IClaimService.sol +122 -0
  385. package/contracts/product/IPolicyService.sol +73 -0
  386. package/contracts/product/IPricingService.sol +39 -0
  387. package/contracts/product/IProductComponent.sol +39 -0
  388. package/contracts/product/IRiskService.sol +33 -0
  389. package/contracts/product/PolicyService.sol +573 -0
  390. package/contracts/product/PolicyServiceManager.sol +39 -0
  391. package/contracts/product/PricingService.sol +301 -0
  392. package/contracts/product/PricingServiceManager.sol +39 -0
  393. package/contracts/product/Product.sol +425 -0
  394. package/contracts/product/RiskService.sol +97 -0
  395. package/contracts/product/RiskServiceManager.sol +39 -0
  396. package/contracts/registry/ChainNft.sol +80 -32
  397. package/contracts/registry/IRegistry.sol +95 -25
  398. package/contracts/registry/IRegistryService.sol +47 -35
  399. package/contracts/registry/ITransferInterceptor.sol +1 -0
  400. package/contracts/registry/Registry.sol +452 -202
  401. package/contracts/registry/RegistryAdmin.sol +464 -0
  402. package/contracts/registry/RegistryService.sol +111 -171
  403. package/contracts/registry/RegistryServiceManager.sol +24 -33
  404. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  405. package/contracts/registry/ReleaseRegistry.sol +491 -0
  406. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  407. package/contracts/registry/TokenRegistry.sol +263 -60
  408. package/contracts/shared/Component.sol +268 -0
  409. package/contracts/shared/ComponentService.sol +641 -0
  410. package/contracts/shared/ComponentServiceManager.sol +35 -0
  411. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  412. package/contracts/shared/IComponent.sol +70 -0
  413. package/contracts/shared/IComponentService.sol +108 -0
  414. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  415. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  416. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  417. package/contracts/shared/INftOwnable.sol +13 -12
  418. package/contracts/shared/IPolicyHolder.sol +36 -0
  419. package/contracts/shared/IRegisterable.sol +4 -4
  420. package/contracts/shared/IRegistryLinked.sol +11 -0
  421. package/contracts/shared/IService.sol +15 -6
  422. package/contracts/shared/InitializableCustom.sol +177 -0
  423. package/contracts/shared/InitializableERC165.sol +27 -0
  424. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  425. package/contracts/shared/KeyValueStore.sol +131 -0
  426. package/contracts/shared/Lifecycle.sol +77 -0
  427. package/contracts/shared/NftIdSet.sol +65 -0
  428. package/contracts/shared/NftOwnable.sol +59 -88
  429. package/contracts/shared/PolicyHolder.sol +56 -0
  430. package/contracts/shared/Registerable.sol +23 -38
  431. package/contracts/shared/RegistryLinked.sol +44 -0
  432. package/contracts/shared/Service.sol +53 -31
  433. package/contracts/shared/TokenHandler.sol +122 -10
  434. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  435. package/contracts/staking/IStaking.sol +168 -0
  436. package/contracts/staking/IStakingService.sol +160 -0
  437. package/contracts/staking/StakeManagerLib.sol +224 -0
  438. package/contracts/staking/Staking.sol +498 -0
  439. package/contracts/staking/StakingLifecycle.sol +23 -0
  440. package/contracts/staking/StakingManager.sol +50 -0
  441. package/contracts/staking/StakingReader.sol +183 -0
  442. package/contracts/staking/StakingService.sol +407 -0
  443. package/contracts/staking/StakingServiceManager.sol +44 -0
  444. package/contracts/staking/StakingStore.sol +605 -0
  445. package/contracts/staking/TargetManagerLib.sol +211 -0
  446. package/contracts/{types → type}/AddressSet.sol +1 -1
  447. package/contracts/type/Amount.sol +135 -0
  448. package/contracts/{types → type}/Blocknumber.sol +27 -3
  449. package/contracts/type/ClaimId.sol +75 -0
  450. package/contracts/{types → type}/DistributorType.sol +2 -2
  451. package/contracts/{types → type}/Fee.sol +33 -23
  452. package/contracts/{types → type}/NftId.sol +21 -15
  453. package/contracts/{types → type}/NftIdSet.sol +2 -2
  454. package/contracts/type/ObjectType.sol +275 -0
  455. package/contracts/type/PayoutId.sol +82 -0
  456. package/contracts/{types → type}/Referral.sol +6 -1
  457. package/contracts/type/RequestId.sol +75 -0
  458. package/contracts/{types → type}/RiskId.sol +1 -1
  459. package/contracts/type/RoleId.sol +174 -0
  460. package/contracts/type/Seconds.sol +101 -0
  461. package/contracts/type/Selector.sol +102 -0
  462. package/contracts/{types → type}/StateId.sol +35 -4
  463. package/contracts/type/String.sol +53 -0
  464. package/contracts/{types → type}/Timestamp.sol +34 -15
  465. package/contracts/{types → type}/UFixed.sol +35 -9
  466. package/contracts/{types → type}/Version.sol +5 -2
  467. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  468. package/contracts/upgradeability/ProxyManager.sol +198 -0
  469. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  470. package/contracts/upgradeability/Versionable.sol +59 -0
  471. package/package.json +10 -7
  472. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  473. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  474. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  475. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  477. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  478. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  479. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  480. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  481. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  482. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  485. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  487. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  489. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  491. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  493. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  495. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  497. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  499. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  501. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  503. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  506. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  508. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  510. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  513. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  515. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  517. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  519. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  523. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  524. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  526. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  528. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  531. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  535. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  537. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1094
  541. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  543. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -764
  545. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  547. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1219
  554. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  556. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -798
  558. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  560. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -848
  562. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  564. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  565. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  566. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  567. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  568. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  569. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  570. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  571. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  572. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  573. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  574. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  575. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  576. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  577. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  578. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  579. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  580. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  582. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  584. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  585. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  586. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  587. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  588. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  589. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  590. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  591. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  592. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  594. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  595. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  596. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  597. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  598. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  600. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  602. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  604. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  606. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  608. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  610. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  611. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  612. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  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/Referral.sol/ReferralLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  618. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  620. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  622. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  625. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  627. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  629. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  631. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  633. package/contracts/components/Component.sol +0 -179
  634. package/contracts/components/Distribution.sol +0 -154
  635. package/contracts/components/IComponent.sol +0 -37
  636. package/contracts/components/IDistributionComponent.sol +0 -44
  637. package/contracts/components/IPoolComponent.sol +0 -66
  638. package/contracts/components/IProductComponent.sol +0 -35
  639. package/contracts/components/Pool.sol +0 -258
  640. package/contracts/components/Product.sol +0 -297
  641. package/contracts/experiment/cloning/Cloner.sol +0 -47
  642. package/contracts/experiment/errors/Require.sol +0 -38
  643. package/contracts/experiment/errors/Revert.sol +0 -44
  644. package/contracts/experiment/inheritance/A.sol +0 -53
  645. package/contracts/experiment/inheritance/B.sol +0 -28
  646. package/contracts/experiment/inheritance/C.sol +0 -34
  647. package/contracts/experiment/inheritance/IA.sol +0 -13
  648. package/contracts/experiment/inheritance/IB.sol +0 -10
  649. package/contracts/experiment/inheritance/IC.sol +0 -12
  650. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  651. package/contracts/experiment/statemachine/ISM.sol +0 -25
  652. package/contracts/experiment/statemachine/SM.sol +0 -57
  653. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  654. package/contracts/experiment/types/TypeA.sol +0 -47
  655. package/contracts/experiment/types/TypeB.sol +0 -29
  656. package/contracts/instance/InstanceAccessManager.sol +0 -298
  657. package/contracts/instance/base/ComponentService.sol +0 -133
  658. package/contracts/instance/base/IInstanceBase.sol +0 -21
  659. package/contracts/instance/base/KeyValueStore.sol +0 -172
  660. package/contracts/instance/base/Lifecycle.sol +0 -100
  661. package/contracts/instance/module/ISetup.sol +0 -46
  662. package/contracts/instance/module/ITreasury.sol +0 -23
  663. package/contracts/instance/service/BundleService.sol +0 -293
  664. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  665. package/contracts/instance/service/DistributionService.sol +0 -115
  666. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  667. package/contracts/instance/service/IBundleService.sol +0 -44
  668. package/contracts/instance/service/IDistributionService.sol +0 -12
  669. package/contracts/instance/service/IPolicyService.sol +0 -94
  670. package/contracts/instance/service/IPoolService.sol +0 -20
  671. package/contracts/instance/service/IProductService.sol +0 -40
  672. package/contracts/instance/service/PolicyService.sol +0 -538
  673. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  674. package/contracts/instance/service/PoolService.sol +0 -142
  675. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  676. package/contracts/instance/service/ProductService.sol +0 -241
  677. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  678. package/contracts/registry/RegistryAccessManager.sol +0 -216
  679. package/contracts/registry/ReleaseManager.sol +0 -352
  680. package/contracts/shared/ContractDeployerLib.sol +0 -72
  681. package/contracts/shared/ERC165.sol +0 -25
  682. package/contracts/shared/ProxyManager.sol +0 -94
  683. package/contracts/shared/Versionable.sol +0 -147
  684. package/contracts/test/TestFee.sol +0 -25
  685. package/contracts/test/TestRegisterable.sol +0 -18
  686. package/contracts/test/TestRoleId.sol +0 -14
  687. package/contracts/test/TestService.sol +0 -25
  688. package/contracts/test/TestVersion.sol +0 -44
  689. package/contracts/test/TestVersionable.sol +0 -17
  690. package/contracts/test/Usdc.sol +0 -26
  691. package/contracts/types/ChainId.sol +0 -38
  692. package/contracts/types/NumberId.sol +0 -52
  693. package/contracts/types/ObjectType.sol +0 -152
  694. package/contracts/types/RoleId.sol +0 -90
  695. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,258 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {POOL} from "../types/ObjectType.sol";
5
- import {IPoolService} from "../instance/service/IPoolService.sol";
6
- import {IBundleService} from "../instance/service/IBundleService.sol";
7
- import {NftId, NftIdLib} 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 {Component} from "./Component.sol";
12
- import {TokenHandler} from "../shared/TokenHandler.sol";
13
- import {ISetup} from "../instance/module/ISetup.sol";
14
-
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
-
17
- import {ISetup} from "../instance/module/ISetup.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
19
-
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
- import {Registerable} from "../shared/Registerable.sol";
22
-
23
- abstract contract Pool is Component, IPoolComponent {
24
- using NftIdLib for NftId;
25
-
26
- bool internal _isConfirmingApplication;
27
- UFixed internal _collateralizationLevel;
28
-
29
- Fee internal _initialPoolFee;
30
- Fee internal _initialStakingFee;
31
- Fee internal _initialPerformanceFee;
32
-
33
- TokenHandler internal _tokenHandler;
34
-
35
- // may be used to interact with instance by derived contracts
36
- IPoolService internal _poolService;
37
- IBundleService private _bundleService;
38
-
39
- modifier onlyPoolService() {
40
- require(
41
- msg.sender == address(_poolService),
42
- "ERROR:POL-001:NOT_POOL_SERVICE");
43
- _;
44
- }
45
-
46
- function __initialize(
47
- address registry,
48
- NftId instanceNftId,
49
- // TODO refactor into tokenNftId
50
- address token,
51
- bool isInterceptor,
52
- bool isConfirmingApplication,
53
- UFixed collateralizationLevel,
54
- Fee memory poolFee,
55
- Fee memory stakingFee,
56
- Fee memory performanceFee,
57
- address initialOwner
58
- ) internal {
59
- __initialize_component(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner);
60
-
61
- _isConfirmingApplication = isConfirmingApplication;
62
- // TODO add validation
63
- _collateralizationLevel = collateralizationLevel;
64
- _initialPoolFee = poolFee;
65
- _initialStakingFee = stakingFee;
66
- _initialPerformanceFee = performanceFee;
67
-
68
- _tokenHandler = new TokenHandler(token);
69
-
70
- _poolService = _instance.getPoolService();
71
- // _productService = _instance.getProductService();
72
- _bundleService = _instance.getBundleService();
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 = _bundleService.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 isConfirmingApplication() external view override returns (bool isConfirmingApplication) {
134
- return _isConfirmingApplication;
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
- _bundleService.setBundleFee(bundleNftId, fee);
162
- }
163
-
164
- function lockBundle(
165
- NftId bundleNftId
166
- )
167
- external
168
- override
169
- // TODO add onlyBundleOwner
170
- {
171
- _bundleService.lockBundle(bundleNftId);
172
- }
173
-
174
- function unlockBundle(
175
- NftId bundleNftId
176
- )
177
- external
178
- override
179
- // TODO add onlyBundleOwner
180
- {
181
- _bundleService.unlockBundle(bundleNftId);
182
- }
183
-
184
- function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
185
- InstanceReader reader = _instance.getInstanceReader();
186
- return reader.getPoolSetupInfo(getNftId());
187
- }
188
-
189
- // from IRegisterable
190
-
191
- // TODO used only once, occupies space
192
- // TODO do not use super
193
- function getInitialInfo()
194
- public
195
- view
196
- override (IRegisterable, Registerable)
197
- returns (IRegistry.ObjectInfo memory, bytes memory)
198
- {
199
- (
200
- IRegistry.ObjectInfo memory info,
201
- ) = super.getInitialInfo();
202
-
203
- return (
204
- info,
205
- abi.encode(
206
- getName(),
207
- ISetup.PoolSetupInfo(
208
- _productNftId,
209
- _tokenHandler,
210
- _collateralizationLevel,
211
- _initialPoolFee,
212
- _initialStakingFee,
213
- _initialPerformanceFee,
214
- false,
215
- _isConfirmingApplication,
216
- _wallet
217
- )
218
- )
219
- );
220
- }
221
-
222
- // Internals
223
-
224
- function _underwrite(
225
- NftId policyNftId,
226
- bytes memory policyData,
227
- bytes memory bundleFilter,
228
- uint256 collateralizationAmount
229
- )
230
- internal
231
- {
232
- require(
233
- policyMatchesBundle(policyData, bundleFilter),
234
- "ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
235
- );
236
-
237
- emit LogUnderwrittenByPool(policyNftId, collateralizationAmount, address(this));
238
- }
239
-
240
- function _createBundle(
241
- address bundleOwner,
242
- Fee memory fee,
243
- uint256 amount,
244
- uint256 lifetime,
245
- bytes calldata filter
246
- )
247
- internal
248
- returns(NftId bundleNftId)
249
- {
250
- bundleNftId = _bundleService.createBundle(
251
- bundleOwner,
252
- fee,
253
- amount,
254
- lifetime,
255
- filter
256
- );
257
- }
258
- }
@@ -1,297 +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 {IRisk} from "../instance/module/IRisk.sol";
7
- import {IPolicyService} from "../instance/service/IPolicyService.sol";
8
- import {IProductComponent} from "./IProductComponent.sol";
9
- import {NftId, NftIdLib} from "../types/NftId.sol";
10
- import {PRODUCT} from "../types/ObjectType.sol";
11
- import {ReferralId} from "../types/Referral.sol";
12
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
13
- import {StateId} from "../types/StateId.sol";
14
- import {Timestamp} from "../types/Timestamp.sol";
15
- import {Fee} from "../types/Fee.sol";
16
- import {Component} from "./Component.sol";
17
-
18
- import {IRegistry} from "../registry/IRegistry.sol";
19
- import {IRegisterable} from "../shared/IRegisterable.sol";
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {TokenHandler} from "../shared/TokenHandler.sol";
22
-
23
- import {InstanceReader} from "../instance/InstanceReader.sol";
24
- import {ISetup} from "../instance/module/ISetup.sol";
25
- import {Pool} from "../components/Pool.sol";
26
- import {Distribution} from "../components/Distribution.sol";
27
-
28
- abstract contract Product is Component, IProductComponent {
29
- using NftIdLib for NftId;
30
-
31
- IPolicyService internal _policyService;
32
- Pool internal _pool;
33
- Distribution internal _distribution;
34
- Fee internal _initialProductFee;
35
- Fee internal _initialProcessingFee;
36
- TokenHandler internal _tokenHandler;
37
-
38
- NftId internal _poolNftId;
39
- NftId internal _distributionNftId;
40
-
41
- function __initialize(
42
- address registry,
43
- NftId instanceNftid,
44
- address token,
45
- bool isInterceptor,
46
- address pool,
47
- address distribution,
48
- Fee memory productFee,
49
- Fee memory processingFee,
50
- address initialOwner
51
- ) internal {
52
- __initialize_component(registry, instanceNftid, token, PRODUCT(), isInterceptor, initialOwner);
53
-
54
- // TODO add validation
55
- _policyService = _instance.getPolicyService();
56
- _pool = Pool(pool);
57
- _distribution = Distribution(distribution);
58
- _initialProductFee = productFee;
59
- _initialProcessingFee = processingFee;
60
-
61
- _tokenHandler = new TokenHandler(token);
62
-
63
- _poolNftId = getRegistry().getNftId(address(_pool));
64
- _distributionNftId = getRegistry().getNftId(address(_distribution));
65
-
66
- _registerInterface(type(IProductComponent).interfaceId);
67
- }
68
-
69
-
70
- function calculatePremium(
71
- uint256 sumInsuredAmount,
72
- RiskId riskId,
73
- uint256 lifetime,
74
- bytes memory applicationData,
75
- NftId bundleNftId,
76
- ReferralId referralId
77
- )
78
- external
79
- view
80
- override
81
- returns (uint256 premiumAmount)
82
- {
83
- (premiumAmount,,,,) = _policyService.calculatePremium(
84
- riskId,
85
- sumInsuredAmount,
86
- lifetime,
87
- applicationData,
88
- bundleNftId,
89
- referralId
90
- );
91
- }
92
-
93
-
94
- function calculateNetPremium(
95
- uint256 sumInsuredAmount,
96
- RiskId riskId,
97
- uint256 lifetime,
98
- bytes memory applicationData
99
- )
100
- external
101
- view
102
- virtual override
103
- returns (uint256 netPremiumAmount)
104
- {
105
- // default 10% of sum insured
106
- return sumInsuredAmount / 10;
107
- }
108
-
109
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
110
- return RiskIdLib.toRiskId(riskName);
111
- }
112
-
113
- function _createRisk(
114
- RiskId id,
115
- bytes memory data
116
- ) internal {
117
- _productService.createRisk(
118
- id,
119
- data
120
- );
121
- }
122
-
123
- function _updateRisk(
124
- RiskId id,
125
- bytes memory data
126
- ) internal {
127
- _productService.updateRisk(
128
- id,
129
- data
130
- );
131
- }
132
-
133
- function _updateRiskState(
134
- RiskId id,
135
- StateId state
136
- ) internal {
137
- _productService.updateRiskState(
138
- id,
139
- state
140
- );
141
- }
142
-
143
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
144
- return _instance.getInstanceReader().getRiskInfo(id);
145
- }
146
-
147
- function _createApplication(
148
- address applicationOwner,
149
- RiskId riskId,
150
- uint256 sumInsuredAmount,
151
- uint256 lifetime,
152
- bytes memory applicationData,
153
- NftId bundleNftId,
154
- ReferralId referralId
155
- ) internal returns (NftId nftId) {
156
- nftId = _policyService.createApplication(
157
- applicationOwner,
158
- riskId,
159
- sumInsuredAmount,
160
- lifetime,
161
- applicationData,
162
- bundleNftId,
163
- referralId
164
- );
165
- }
166
-
167
- function _underwrite(
168
- NftId policyNftId,
169
- bool requirePremiumPayment,
170
- Timestamp activateAt
171
- )
172
- internal
173
- {
174
- _policyService.underwrite(
175
- policyNftId,
176
- requirePremiumPayment,
177
- activateAt);
178
- }
179
-
180
- function _collectPremium(
181
- NftId policyNftId,
182
- Timestamp activateAt
183
- )
184
- internal
185
- {
186
- _policyService.collectPremium(
187
- policyNftId,
188
- activateAt);
189
- }
190
-
191
- function _activate(
192
- NftId policyNftId,
193
- Timestamp activateAt
194
- )
195
- internal
196
- {
197
- _policyService.activate(
198
- policyNftId,
199
- activateAt);
200
- }
201
-
202
- function _close(
203
- NftId policyNftId
204
- )
205
- internal
206
- {
207
- _policyService.close(policyNftId);
208
- }
209
-
210
- function getPoolNftId() external view override returns (NftId poolNftId) {
211
- return getRegistry().getNftId(address(_pool));
212
- }
213
-
214
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
215
- return getRegistry().getNftId(address(_distribution));
216
- }
217
-
218
- // from product component
219
- function setFees(
220
- Fee memory productFee,
221
- Fee memory processingFee
222
- )
223
- external
224
- onlyOwner
225
- override
226
- {
227
- _productService.setFees(productFee, processingFee);
228
- }
229
-
230
- function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
231
- InstanceReader reader = _instance.getInstanceReader();
232
- return reader.getProductSetupInfo(getNftId());
233
- }
234
-
235
- // from IRegisterable
236
-
237
- function getInitialInfo()
238
- public
239
- view
240
- override (IRegisterable, Registerable)
241
- returns (IRegistry.ObjectInfo memory, bytes memory)
242
- {
243
- // from Registerable
244
- (
245
- IRegistry.ObjectInfo memory productInfo,
246
- bytes memory data
247
- ) = super.getInitialInfo();
248
-
249
- // TODO read pool & distribution fees
250
- // 1) from pool -> the only option -> pool must be registered first?
251
- // 2) from instance -> all fees are set into instance at product registration which is ongoing here
252
- // checks are done in registryProduct() where THIS function is called
253
- //require(getRegistry().getObjectInfo(_poolNftId).objectType == POOL(), "POOL_NOT_REGISTERED");
254
- //require(getRegistry().getObjectInfo(_distributionNftId).objectType == DISTRIBUTION(), "DISTRIBUTION_NOT_REGISTERED");
255
-
256
- // from PoolComponent
257
- (
258
- ,
259
- bytes memory poolData
260
- ) = _pool.getInitialInfo();
261
-
262
- (
263
- , ISetup.PoolSetupInfo memory poolSetupInfo
264
- ) = abi.decode(poolData, (string, ISetup.PoolSetupInfo));
265
-
266
- // from DistributionComponent
267
- (
268
- ,
269
- bytes memory distributionData
270
- ) = _distribution.getInitialInfo();
271
-
272
- (
273
- , ISetup.DistributionSetupInfo memory distributionSetupInfo
274
- ) = abi.decode(distributionData, (string, ISetup.DistributionSetupInfo));
275
-
276
- return (
277
- productInfo,
278
- abi.encode(
279
- getName(),
280
- ISetup.ProductSetupInfo(
281
- _token,
282
- _tokenHandler,
283
- _distributionNftId,
284
- _poolNftId,
285
- distributionSetupInfo.distributionFee,
286
- _initialProductFee,
287
- _initialProcessingFee,
288
- poolSetupInfo.poolFee,
289
- poolSetupInfo.stakingFee,
290
- poolSetupInfo.performanceFee,
291
- false,
292
- _wallet
293
- )
294
- )
295
- );
296
- }
297
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
-
6
-
7
- contract Cloner {
8
-
9
- Mock1 public mock1;
10
- Mock2 public mock2;
11
-
12
- constructor() {
13
- mock1 = new Mock1();
14
- mock2 = new Mock2();
15
- }
16
-
17
- function createClone(address master)
18
- external
19
- returns (address cloned)
20
- {
21
- cloned = Clones.clone(master);
22
- }
23
- }
24
-
25
-
26
- contract Mock1 {
27
- function getValue() external virtual view returns (uint256) {
28
- return 42;
29
- }
30
- }
31
-
32
- contract Mock2 is Mock1 {
33
- uint256 internal _value;
34
-
35
- constructor() {
36
- _value = 42;
37
- }
38
-
39
- function setValue(uint256 value) external virtual {
40
- _value = value;
41
- }
42
-
43
- function getValue() external virtual override view returns (uint256) {
44
- return _value;
45
- }
46
- }
47
-
@@ -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
- }