@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd41099-706

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