@etherisc/gif-next 0.0.2-e875d61-189 → 0.0.2-e8b06c8-540

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 (719) hide show
  1. package/README.md +267 -40
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -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 +171 -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/BundleManager.sol/BundleManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +240 -1457
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +752 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +386 -1697
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  46. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
  48. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  50. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  52. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  54. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1155 -0
  56. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  58. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -0
  60. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  62. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  64. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  66. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  68. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  70. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  72. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  76. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  78. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  80. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  81. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  82. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  84. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  86. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  140. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  151. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  152. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  154. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  172. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1237 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  179. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  180. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  181. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  182. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  184. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  185. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  186. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  188. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  189. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  190. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  192. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  194. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  196. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  198. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  200. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  213. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +154 -152
  222. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  224. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  232. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  238. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  248. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  249. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  250. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  252. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  254. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  256. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  258. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  259. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  322. package/contracts/authorization/AccessAdmin.sol +622 -0
  323. package/contracts/authorization/Authorization.sol +218 -0
  324. package/contracts/authorization/IAccess.sol +48 -0
  325. package/contracts/authorization/IAccessAdmin.sol +136 -0
  326. package/contracts/authorization/IAuthorization.sol +54 -0
  327. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  328. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  329. package/contracts/authorization/InstanceAdmin.sol +108 -0
  330. package/contracts/authorization/ModuleAuthorization.sol +203 -0
  331. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  332. package/contracts/distribution/BasicDistribution.sol +149 -0
  333. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  334. package/contracts/distribution/Distribution.sol +283 -0
  335. package/contracts/distribution/DistributionService.sol +303 -0
  336. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  337. package/contracts/distribution/IDistributionComponent.sol +78 -0
  338. package/contracts/distribution/IDistributionService.sol +85 -0
  339. package/contracts/instance/BundleManager.sol +126 -0
  340. package/contracts/instance/IInstance.sol +79 -43
  341. package/contracts/instance/IInstanceService.sol +91 -0
  342. package/contracts/instance/Instance.sol +278 -56
  343. package/contracts/instance/InstanceAdmin.sol +334 -0
  344. package/contracts/instance/InstanceAdminNew.sol +261 -0
  345. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  346. package/contracts/instance/InstanceAuthorizationsLib.sol +422 -0
  347. package/contracts/instance/InstanceReader.sol +410 -0
  348. package/contracts/instance/InstanceService.sol +516 -0
  349. package/contracts/instance/InstanceServiceManager.sol +44 -0
  350. package/contracts/instance/InstanceStore.sol +273 -0
  351. package/contracts/instance/base/BalanceStore.sol +123 -0
  352. package/contracts/instance/base/Cloneable.sol +28 -0
  353. package/contracts/instance/base/ObjectCounter.sol +21 -0
  354. package/contracts/instance/base/ObjectManager.sol +79 -0
  355. package/contracts/instance/module/IAccess.sol +46 -0
  356. package/contracts/instance/module/IBundle.sol +20 -0
  357. package/contracts/instance/module/IComponents.sol +52 -0
  358. package/contracts/instance/module/IDistribution.sol +42 -0
  359. package/contracts/instance/module/IPolicy.sol +84 -0
  360. package/contracts/instance/module/IRisk.sol +11 -0
  361. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  362. package/contracts/oracle/BasicOracle.sol +48 -0
  363. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  364. package/contracts/oracle/IOracle.sol +36 -0
  365. package/contracts/oracle/IOracleComponent.sol +32 -0
  366. package/contracts/oracle/IOracleService.sol +65 -0
  367. package/contracts/oracle/Oracle.sol +157 -0
  368. package/contracts/oracle/OracleService.sol +278 -0
  369. package/contracts/oracle/OracleServiceManager.sol +42 -0
  370. package/contracts/pool/BasicPool.sol +164 -0
  371. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  372. package/contracts/pool/BundleService.sol +296 -0
  373. package/contracts/pool/BundleServiceManager.sol +42 -0
  374. package/contracts/pool/IBundleService.sol +106 -0
  375. package/contracts/pool/IPoolComponent.sol +52 -0
  376. package/contracts/pool/IPoolService.sol +150 -0
  377. package/contracts/pool/Pool.sol +311 -0
  378. package/contracts/pool/PoolService.sol +452 -0
  379. package/contracts/pool/PoolServiceManager.sol +42 -0
  380. package/contracts/product/ApplicationService.sol +254 -0
  381. package/contracts/product/ApplicationServiceManager.sol +38 -0
  382. package/contracts/product/BasicProduct.sol +82 -0
  383. package/contracts/product/BasicProductAuthorization.sol +40 -0
  384. package/contracts/product/ClaimService.sol +442 -0
  385. package/contracts/product/ClaimServiceManager.sol +38 -0
  386. package/contracts/product/IApplicationService.sol +62 -0
  387. package/contracts/product/IClaimService.sol +99 -0
  388. package/contracts/product/IPolicyService.sol +78 -0
  389. package/contracts/product/IPricingService.sol +39 -0
  390. package/contracts/product/IProductComponent.sol +39 -0
  391. package/contracts/product/IProductService.sol +33 -0
  392. package/contracts/product/PolicyService.sol +475 -0
  393. package/contracts/product/PolicyServiceManager.sol +42 -0
  394. package/contracts/product/PricingService.sol +300 -0
  395. package/contracts/product/PricingServiceManager.sol +42 -0
  396. package/contracts/product/Product.sol +392 -0
  397. package/contracts/product/ProductService.sol +124 -0
  398. package/contracts/product/ProductServiceManager.sol +42 -0
  399. package/contracts/registry/ChainNft.sol +95 -37
  400. package/contracts/registry/IRegistry.sol +95 -28
  401. package/contracts/registry/IRegistryService.sol +69 -0
  402. package/contracts/registry/ITransferInterceptor.sol +7 -0
  403. package/contracts/registry/Registry.sol +482 -281
  404. package/contracts/registry/RegistryAdmin.sol +363 -0
  405. package/contracts/registry/RegistryService.sol +266 -0
  406. package/contracts/registry/RegistryServiceManager.sol +53 -0
  407. package/contracts/registry/ReleaseManager.sol +530 -0
  408. package/contracts/registry/ServiceAuthorizationV3.sol +202 -0
  409. package/contracts/registry/TokenRegistry.sol +315 -0
  410. package/contracts/shared/AccessManagerCustom.sol +741 -0
  411. package/contracts/shared/AccessManagerExtended.sol +481 -0
  412. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  413. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  414. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  415. package/contracts/shared/Component.sol +281 -0
  416. package/contracts/shared/ComponentService.sol +626 -0
  417. package/contracts/shared/ComponentServiceManager.sol +35 -0
  418. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  419. package/contracts/shared/ERC165.sol +15 -9
  420. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  421. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  422. package/contracts/shared/IComponent.sol +70 -0
  423. package/contracts/shared/IComponentService.sol +102 -0
  424. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  425. package/contracts/shared/IKeyValueStore.sol +53 -0
  426. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  427. package/contracts/shared/INftOwnable.sol +23 -0
  428. package/contracts/shared/IPolicyHolder.sol +45 -0
  429. package/contracts/shared/IRegisterable.sol +10 -19
  430. package/contracts/shared/IRegistryLinked.sol +11 -0
  431. package/contracts/shared/IService.sol +25 -0
  432. package/contracts/shared/IVersionable.sol +38 -37
  433. package/contracts/shared/InitializableCustom.sol +177 -0
  434. package/contracts/shared/InstanceLinkedComponent.sol +152 -0
  435. package/contracts/shared/KeyValueStore.sol +127 -0
  436. package/contracts/{instance/base → shared}/Lifecycle.sol +47 -9
  437. package/contracts/shared/NftIdSetManager.sol +65 -0
  438. package/contracts/shared/NftOwnable.sol +107 -0
  439. package/contracts/shared/PolicyHolder.sol +102 -0
  440. package/contracts/shared/ProxyManager.sol +199 -0
  441. package/contracts/shared/Registerable.sol +54 -65
  442. package/contracts/shared/RegistryLinked.sol +43 -0
  443. package/contracts/shared/Service.sol +83 -0
  444. package/contracts/shared/TokenHandler.sol +58 -0
  445. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  446. package/contracts/shared/Versionable.sol +38 -68
  447. package/contracts/staking/IStaking.sol +168 -0
  448. package/contracts/staking/IStakingService.sol +153 -0
  449. package/contracts/staking/StakeManagerLib.sol +231 -0
  450. package/contracts/staking/Staking.sol +513 -0
  451. package/contracts/staking/StakingManager.sol +54 -0
  452. package/contracts/staking/StakingReader.sol +187 -0
  453. package/contracts/staking/StakingService.sol +411 -0
  454. package/contracts/staking/StakingServiceManager.sol +44 -0
  455. package/contracts/staking/StakingStore.sol +613 -0
  456. package/contracts/staking/TargetManagerLib.sol +207 -0
  457. package/contracts/{types → type}/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +128 -0
  459. package/contracts/{types → type}/Blocknumber.sol +21 -3
  460. package/contracts/type/ClaimId.sol +75 -0
  461. package/contracts/type/DistributorType.sol +55 -0
  462. package/contracts/type/Fee.sol +66 -0
  463. package/contracts/{types → type}/Key32.sol +8 -3
  464. package/contracts/{types → type}/NftId.sol +21 -15
  465. package/contracts/type/NftIdSet.sol +62 -0
  466. package/contracts/type/ObjectType.sol +275 -0
  467. package/contracts/type/PayoutId.sol +82 -0
  468. package/contracts/type/Referral.sol +89 -0
  469. package/contracts/type/RequestId.sol +75 -0
  470. package/contracts/type/RiskId.sol +43 -0
  471. package/contracts/type/RoleId.sol +202 -0
  472. package/contracts/type/Seconds.sol +81 -0
  473. package/contracts/type/Selector.sol +102 -0
  474. package/contracts/{types → type}/StateId.sol +39 -5
  475. package/contracts/type/String.sol +53 -0
  476. package/contracts/{types → type}/Timestamp.sol +27 -14
  477. package/contracts/type/UFixed.sol +332 -0
  478. package/contracts/{types → type}/Version.sol +15 -2
  479. package/package.json +11 -7
  480. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  481. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  482. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  483. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  484. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  485. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  486. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  487. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  488. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  489. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  490. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  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/IA.sol/ISharedA.json +0 -37
  507. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  509. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  511. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  513. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  515. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  517. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  519. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  521. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  523. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  525. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  526. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  527. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  529. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  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/IService.sol/IService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  535. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  538. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  540. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  543. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  545. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  548. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  550. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  553. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  555. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  557. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  559. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  561. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  563. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  565. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -273
  568. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -273
  570. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  572. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  574. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  576. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  578. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  579. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  580. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  581. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  583. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  585. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  587. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  589. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  591. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  594. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  599. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  601. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  602. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  604. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  606. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  608. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -436
  610. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  612. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  614. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  616. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  618. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  620. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  622. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  623. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  624. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  627. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  638. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  643. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  645. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  647. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  649. package/contracts/components/BaseComponent.sol +0 -94
  650. package/contracts/components/IBaseComponent.sol +0 -19
  651. package/contracts/components/IPoolComponent.sol +0 -57
  652. package/contracts/components/IProductComponent.sol +0 -19
  653. package/contracts/components/Pool.sol +0 -191
  654. package/contracts/components/Product.sol +0 -134
  655. package/contracts/experiment/errors/Require.sol +0 -38
  656. package/contracts/experiment/errors/Revert.sol +0 -44
  657. package/contracts/experiment/inheritance/A.sol +0 -53
  658. package/contracts/experiment/inheritance/B.sol +0 -28
  659. package/contracts/experiment/inheritance/C.sol +0 -34
  660. package/contracts/experiment/inheritance/IA.sol +0 -13
  661. package/contracts/experiment/inheritance/IB.sol +0 -10
  662. package/contracts/experiment/inheritance/IC.sol +0 -12
  663. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  664. package/contracts/experiment/statemachine/ISM.sol +0 -25
  665. package/contracts/experiment/statemachine/README.md +0 -112
  666. package/contracts/experiment/statemachine/SM.sol +0 -57
  667. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  668. package/contracts/experiment/types/TypeA.sol +0 -47
  669. package/contracts/experiment/types/TypeB.sol +0 -29
  670. package/contracts/instance/IInstanceLinked.sol +0 -8
  671. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  672. package/contracts/instance/base/IInstanceBase.sol +0 -19
  673. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  674. package/contracts/instance/base/IService.sol +0 -15
  675. package/contracts/instance/base/InstanceBase.sol +0 -84
  676. package/contracts/instance/base/KeyValueStore.sol +0 -161
  677. package/contracts/instance/base/ModuleBase.sol +0 -46
  678. package/contracts/instance/base/ServiceBase.sol +0 -37
  679. package/contracts/instance/module/access/Access.sol +0 -149
  680. package/contracts/instance/module/access/IAccess.sol +0 -53
  681. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  682. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  683. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  684. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  685. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  686. package/contracts/instance/module/component/IComponent.sol +0 -29
  687. package/contracts/instance/module/policy/IPolicy.sol +0 -59
  688. package/contracts/instance/module/policy/PolicyModule.sol +0 -89
  689. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  690. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  691. package/contracts/instance/module/risk/IRisk.sol +0 -10
  692. package/contracts/instance/module/risk/RiskModule.sol +0 -17
  693. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  694. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  695. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  696. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  697. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  698. package/contracts/instance/service/IPoolService.sol +0 -30
  699. package/contracts/instance/service/IProductService.sol +0 -58
  700. package/contracts/instance/service/PoolService.sol +0 -129
  701. package/contracts/instance/service/ProductService.sol +0 -366
  702. package/contracts/registry/IChainNft.sol +0 -21
  703. package/contracts/registry/IRegistryLinked.sol +0 -8
  704. package/contracts/shared/IOwnable.sol +0 -6
  705. package/contracts/test/TestFee.sol +0 -25
  706. package/contracts/test/TestPool.sol +0 -24
  707. package/contracts/test/TestProduct.sol +0 -51
  708. package/contracts/test/TestRegisterable.sol +0 -19
  709. package/contracts/test/TestRoleId.sol +0 -14
  710. package/contracts/test/TestService.sol +0 -32
  711. package/contracts/test/TestToken.sol +0 -26
  712. package/contracts/test/TestVersion.sol +0 -44
  713. package/contracts/test/TestVersionable.sol +0 -17
  714. package/contracts/types/ChainId.sol +0 -38
  715. package/contracts/types/Fee.sol +0 -51
  716. package/contracts/types/NftIdSet.sol +0 -60
  717. package/contracts/types/ObjectType.sol +0 -123
  718. package/contracts/types/RoleId.sol +0 -38
  719. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,626 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../type/Amount.sol";
5
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
6
+ import {Fee, FeeLib} from "../type/Fee.sol";
7
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IInstance} from "../instance/IInstance.sol";
11
+ import {IAccess} from "../instance/module/IAccess.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
14
+ import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
15
+ import {KEEP_STATE} from "../type/StateId.sol";
16
+ import {IComponents} from "../instance/module/IComponents.sol";
17
+ import {IComponentService} from "./IComponentService.sol";
18
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
19
+ import {IInstanceService} from "../instance/IInstanceService.sol";
20
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
21
+ import {IProductComponent} from "../product/IProductComponent.sol";
22
+ import {InstanceReader} from "../instance/InstanceReader.sol";
23
+ import {InstanceStore} from "../instance/InstanceStore.sol";
24
+ import {TokenHandler} from "./TokenHandler.sol";
25
+
26
+ contract ComponentService is
27
+ ComponentVerifyingService,
28
+ IComponentService
29
+ {
30
+
31
+ error ErrorComponentServiceAlreadyRegistered(address component);
32
+ error ErrorComponentServiceNotComponent(address component);
33
+ error ErrorComponentServiceInvalidType(address component, ObjectType requiredType, ObjectType componentType);
34
+ error ErrorComponentServiceSenderNotOwner(address component, address initialOwner, address sender);
35
+ error ErrorComponentServiceExpectedRoleMissing(NftId instanceNftId, RoleId requiredRole, address sender);
36
+ error ErrorComponentServiceComponentLocked(address component);
37
+ error ErrorComponentServiceSenderNotService(address sender);
38
+ error ErrorComponentServiceComponentTypeInvalid(address component, ObjectType expectedType, ObjectType foundType);
39
+
40
+ bool private constant INCREASE = true;
41
+ bool private constant DECREASE = false;
42
+
43
+ IRegistryService private _registryService;
44
+ IInstanceService private _instanceService;
45
+
46
+ function _initialize(
47
+ address owner,
48
+ bytes memory data
49
+ )
50
+ internal
51
+ virtual override
52
+ initializer()
53
+ {
54
+ // TODO check this, might no longer be the way, refactor if necessary
55
+ address registryAddress;
56
+ address initialOwner;
57
+ (registryAddress, initialOwner) = abi.decode(data, (address, address));
58
+
59
+ initializeService(registryAddress, address(0), owner);
60
+
61
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
62
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
63
+
64
+ registerInterface(type(IComponentService).interfaceId);
65
+ }
66
+
67
+ //-------- component ----------------------------------------------------//
68
+
69
+ function setWallet(address newWallet) external virtual {
70
+ (NftId componentNftId,, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
71
+ IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
72
+ address currentWallet = info.wallet;
73
+
74
+ if (newWallet == address(0)) {
75
+ revert ErrorComponentServiceNewWalletAddressZero();
76
+ }
77
+
78
+ if (currentWallet == address(0)) {
79
+ revert ErrorComponentServiceWalletAddressZero();
80
+ }
81
+
82
+ if (newWallet == currentWallet) {
83
+ revert ErrorComponentServiceWalletAddressIsSameAsCurrent();
84
+ }
85
+
86
+ info.wallet = newWallet;
87
+ instance.getInstanceStore().updateComponent(componentNftId, info, KEEP_STATE());
88
+ emit LogComponentServiceWalletAddressChanged(componentNftId, currentWallet, newWallet);
89
+ }
90
+
91
+ // TODO implement
92
+ function lock() external virtual {}
93
+
94
+ // TODO implement
95
+ function unlock() external virtual {}
96
+
97
+
98
+ //-------- product ------------------------------------------------------//
99
+
100
+ function registerProduct()
101
+ external
102
+ virtual
103
+ {
104
+ address contractAddress = msg.sender;
105
+
106
+ // register/create component setup
107
+ (
108
+ InstanceReader instanceReader,
109
+ InstanceStore instanceStore,
110
+ NftId productNftId
111
+ ) = _register(
112
+ contractAddress,
113
+ PRODUCT(),
114
+ PRODUCT_OWNER_ROLE());
115
+
116
+ // create product info
117
+ IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
118
+ instanceStore.createProduct(productNftId, productInfo);
119
+
120
+ // link distribution and pool to product
121
+ _linkToProduct(instanceReader, instanceStore, productInfo.distributionNftId, productNftId);
122
+ _linkToProduct(instanceReader, instanceStore, productInfo.poolNftId, productNftId);
123
+ }
124
+
125
+
126
+ function setProductFees(
127
+ Fee memory productFee, // product fee on net premium
128
+ Fee memory processingFee // product fee on payout amounts
129
+ )
130
+ external
131
+ virtual
132
+ {
133
+ (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
134
+ IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
135
+ bool feesChanged = false;
136
+
137
+ // update product fee if required
138
+ if(!FeeLib.eq(productInfo.productFee, productFee)) {
139
+ _logUpdateFee(productNftId, "ProductFee", productInfo.productFee, productFee);
140
+ productInfo.productFee = productFee;
141
+ feesChanged = true;
142
+ }
143
+
144
+ // update processing fee if required
145
+ if(!FeeLib.eq(productInfo.processingFee, processingFee)) {
146
+ _logUpdateFee(productNftId, "ProcessingFee", productInfo.processingFee, processingFee);
147
+ productInfo.processingFee = processingFee;
148
+ feesChanged = true;
149
+ }
150
+
151
+ if(feesChanged) {
152
+ instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
153
+ emit LogComponentServiceProductFeesUpdated(productNftId);
154
+ }
155
+ }
156
+
157
+ function increaseProductFees(
158
+ InstanceStore instanceStore,
159
+ NftId productNftId,
160
+ Amount feeAmount
161
+ )
162
+ external
163
+ virtual
164
+ // TODO re-enable once role granting is stable and fixed
165
+ // restricted()
166
+ {
167
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
168
+ }
169
+
170
+
171
+ function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
172
+ external
173
+ virtual
174
+ // TODO re-enable once role granting is stable and fixed
175
+ // restricted()
176
+ {
177
+ _changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
178
+ }
179
+
180
+ //-------- distribution -------------------------------------------------//
181
+
182
+ /// @dev registers the sending component as a distribution component
183
+ function registerDistribution()
184
+ external
185
+ virtual
186
+ {
187
+ address contractAddress = msg.sender;
188
+
189
+ // register/create component info
190
+ _register(
191
+ contractAddress,
192
+ DISTRIBUTION(),
193
+ DISTRIBUTION_OWNER_ROLE());
194
+ }
195
+
196
+
197
+ function setDistributionFees(
198
+ Fee memory distributionFee, // distribution fee for sales that do not include commissions
199
+ Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
200
+ )
201
+ external
202
+ virtual
203
+ {
204
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
205
+ (NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
206
+ instance.getInstanceReader(), distributionNftId);
207
+ bool feesChanged = false;
208
+
209
+ // update distributino fee if required
210
+ if(!FeeLib.eq(productInfo.distributionFee, distributionFee)) {
211
+ _logUpdateFee(productNftId, "DistributionFee", productInfo.distributionFee, distributionFee);
212
+ productInfo.distributionFee = distributionFee;
213
+ feesChanged = true;
214
+ }
215
+
216
+ // update min distribution owner fee if required
217
+ if(!FeeLib.eq(productInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
218
+ _logUpdateFee(productNftId, "MinDistributionOwnerFee", productInfo.minDistributionOwnerFee, minDistributionOwnerFee);
219
+ productInfo.minDistributionOwnerFee = minDistributionOwnerFee;
220
+ feesChanged = true;
221
+ }
222
+
223
+ if(feesChanged) {
224
+ instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
225
+ emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
226
+ }
227
+ }
228
+
229
+ function increaseDistributionBalance(
230
+ InstanceStore instanceStore,
231
+ NftId distributionNftId,
232
+ Amount amount,
233
+ Amount feeAmount
234
+ )
235
+ external
236
+ virtual
237
+ // TODO re-enable once role granting is stable and fixed
238
+ // restricted()
239
+ {
240
+ _changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
241
+ }
242
+
243
+
244
+ function decreaseDistributionBalance(
245
+ InstanceStore instanceStore,
246
+ NftId distributionNftId,
247
+ Amount amount,
248
+ Amount feeAmount
249
+ )
250
+ external
251
+ virtual
252
+ // TODO re-enable once role granting is stable and fixed
253
+ // restricted()
254
+ {
255
+ _changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
256
+ }
257
+
258
+ //-------- oracle -------------------------------------------------------//
259
+
260
+ function registerOracle()
261
+ external
262
+ virtual
263
+ {
264
+ address contractAddress = msg.sender;
265
+
266
+ // register/create component setup
267
+ (
268
+ , // instance reader
269
+ InstanceStore instanceStore,
270
+ NftId componentNftId
271
+ ) = _register(
272
+ contractAddress,
273
+ ORACLE(),
274
+ ORACLE_OWNER_ROLE());
275
+ }
276
+
277
+ //-------- pool ---------------------------------------------------------//
278
+
279
+ function registerPool()
280
+ external
281
+ virtual
282
+ {
283
+ address contractAddress = msg.sender;
284
+
285
+ // TODO cleanup
286
+ // RoleId[] memory roles = new RoleId[](2);
287
+ // bytes4[][] memory selectors = new bytes4[][](2);
288
+
289
+ // // authorizaion for pool owner
290
+ // roles[0] = POOL_OWNER_ROLE();
291
+ // selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
292
+
293
+ // // authorizaion for product service
294
+ // roles[1] = POLICY_SERVICE_ROLE();
295
+ // selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
296
+
297
+ // register/create component setup
298
+ (
299
+ , // instance reader
300
+ InstanceStore instanceStore,
301
+ NftId componentNftId
302
+ ) = _register(
303
+ contractAddress,
304
+ POOL(),
305
+ POOL_OWNER_ROLE());
306
+
307
+ // create info
308
+ instanceStore.createPool(
309
+ componentNftId,
310
+ IPoolComponent(
311
+ contractAddress).getInitialPoolInfo());
312
+ }
313
+
314
+
315
+ function setPoolFees(
316
+ Fee memory poolFee, // pool fee on net premium
317
+ Fee memory stakingFee, // pool fee on staked capital from investor
318
+ Fee memory performanceFee // pool fee on profits from capital investors
319
+ )
320
+ external
321
+ virtual
322
+ {
323
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
324
+ (NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
325
+ instance.getInstanceReader(), poolNftId);
326
+ bool feesChanged = false;
327
+
328
+ // update pool fee if required
329
+ if(!FeeLib.eq(productInfo.poolFee, poolFee)) {
330
+ _logUpdateFee(productNftId, "PoolFee", productInfo.poolFee, poolFee);
331
+ productInfo.poolFee = poolFee;
332
+ feesChanged = true;
333
+ }
334
+
335
+ // update staking fee if required
336
+ if(!FeeLib.eq(productInfo.stakingFee, stakingFee)) {
337
+ _logUpdateFee(productNftId, "StakingFee", productInfo.stakingFee, stakingFee);
338
+ productInfo.stakingFee = stakingFee;
339
+ feesChanged = true;
340
+ }
341
+
342
+ // update performance fee if required
343
+ if(!FeeLib.eq(productInfo.performanceFee, performanceFee)) {
344
+ _logUpdateFee(productNftId, "PerformanceFee", productInfo.performanceFee, performanceFee);
345
+ productInfo.performanceFee = performanceFee;
346
+ feesChanged = true;
347
+ }
348
+
349
+ if(feesChanged) {
350
+ instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
351
+ emit LogComponentServicePoolFeesUpdated(poolNftId);
352
+ }
353
+ }
354
+
355
+ function increasePoolBalance(
356
+ InstanceStore instanceStore,
357
+ NftId poolNftId,
358
+ Amount amount,
359
+ Amount feeAmount
360
+ )
361
+ public
362
+ virtual
363
+ // TODO re-enable once role granting is stable and fixed
364
+ // restricted()
365
+ {
366
+ _changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
367
+ }
368
+
369
+ function decreasePoolBalance(
370
+ InstanceStore instanceStore,
371
+ NftId poolNftId,
372
+ Amount amount,
373
+ Amount feeAmount
374
+ )
375
+ public
376
+ virtual
377
+ // TODO re-enable once role granting is stable and fixed
378
+ // restricted()
379
+ {
380
+ _changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
381
+ }
382
+
383
+ //-------- bundle -------------------------------------------------------//
384
+
385
+ function increaseBundleBalance(
386
+ InstanceStore instanceStore,
387
+ NftId bundleNftId,
388
+ Amount amount,
389
+ Amount feeAmount
390
+ )
391
+ external
392
+ virtual
393
+ // TODO re-enable once role granting is stable and fixed
394
+ // restricted()
395
+ {
396
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
397
+ }
398
+
399
+ function decreaseBundleBalance(
400
+ InstanceStore instanceStore,
401
+ NftId bundleNftId,
402
+ Amount amount,
403
+ Amount feeAmount
404
+ )
405
+ external
406
+ virtual
407
+ // TODO re-enable once role granting is stable and fixed
408
+ // restricted()
409
+ {
410
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
411
+ }
412
+
413
+
414
+ //-------- internal functions ------------------------------------------//
415
+
416
+ function _changeTargetBalance(
417
+ bool increase,
418
+ InstanceStore instanceStore,
419
+ NftId targetNftId,
420
+ Amount amount,
421
+ Amount feeAmount
422
+ )
423
+ internal
424
+ virtual
425
+ {
426
+ Amount totalAmount = amount + feeAmount;
427
+
428
+ if(increase) {
429
+ if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
430
+ if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
431
+ } else {
432
+ if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
433
+ if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
434
+ }
435
+ }
436
+
437
+ /// @dev registers the component represented by the provided address
438
+ function _register(
439
+ address componentAddress, // address of component to register
440
+ ObjectType requiredType, // required type for component for registration
441
+ RoleId requiredRole // role required for comonent owner for registration
442
+ )
443
+ internal
444
+ virtual
445
+ returns (
446
+ InstanceReader instanceReader,
447
+ InstanceStore instanceStore,
448
+ NftId componentNftId
449
+ )
450
+ {
451
+ (
452
+ IInstance instance,
453
+ IInstanceLinkedComponent component,
454
+ address owner
455
+ ) = _getAndVerifyRegisterableComponent(
456
+ componentAddress,
457
+ requiredType,
458
+ requiredRole);
459
+
460
+ // register component with registry
461
+ componentNftId = _registryService.registerComponent(
462
+ component,
463
+ requiredType,
464
+ owner).nftId;
465
+
466
+ component.linkToRegisteredNftId();
467
+
468
+ // setup initial component authorization
469
+ _instanceService.initializeAuthorization(
470
+ instance.getNftId(),
471
+ component);
472
+
473
+ // save amended component info with instance
474
+ instanceReader = instance.getInstanceReader();
475
+ instanceStore = instance.getInstanceStore();
476
+
477
+ IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
478
+ componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
479
+ instanceStore.createComponent(
480
+ component.getNftId(),
481
+ componentInfo);
482
+
483
+ }
484
+
485
+ // TODO cleanup
486
+ // /// @dev registers the component represented by the provided address
487
+ // function _registerOld(
488
+ // address componentAddress, // address of component to register
489
+ // ObjectType requiredType, // required type for component for registration
490
+ // RoleId requiredRole, // role required for comonent owner for registration
491
+ // RoleId[] memory roles, // roles with write access to component
492
+ // bytes4[][] memory selectors // authorized functions per role with write access
493
+ // )
494
+ // internal
495
+ // virtual
496
+ // returns (
497
+ // InstanceReader instanceReader,
498
+ // InstanceStore instanceStore,
499
+ // NftId componentNftId
500
+ // )
501
+ // {
502
+ // (
503
+ // instanceReader,
504
+ // instanceStore,
505
+ // componentNftId
506
+ // ) = _register(
507
+ // componentAddress,
508
+ // requiredType,
509
+ // requiredRole);
510
+
511
+ // // configure instance authorization
512
+ // _instanceService.createComponentTarget(
513
+ // instance.getNftId(),
514
+ // componentAddress,
515
+ // component.getName(),
516
+ // selectors,
517
+ // roles);
518
+ // }
519
+
520
+
521
+ /// @dev link the component info corresponding to the componentNftId to the provided productNftId
522
+ function _linkToProduct(
523
+ InstanceReader instanceReader,
524
+ InstanceStore instanceStore,
525
+ NftId componentNftId,
526
+ NftId productNftId
527
+ )
528
+ internal
529
+ {
530
+ // only link components that are registered
531
+ if(componentNftId.eqz()) {
532
+ return;
533
+ }
534
+
535
+ IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(componentNftId);
536
+ componentInfo.productNftId = productNftId;
537
+ instanceStore.updateComponent(componentNftId, componentInfo, KEEP_STATE());
538
+ }
539
+
540
+
541
+ function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
542
+ internal
543
+ virtual
544
+ {
545
+ emit LogComponentServiceUpdateFee(
546
+ productNftId,
547
+ name,
548
+ feeBefore.fractionalFee,
549
+ feeBefore.fixedFee,
550
+ feeAfter.fractionalFee,
551
+ feeAfter.fixedFee
552
+ );
553
+ }
554
+
555
+
556
+ function _createSelectors(bytes4 selector) internal pure returns (bytes4[] memory selectors) {
557
+ selectors = new bytes4[](1);
558
+ selectors[0] = selector;
559
+ }
560
+
561
+
562
+ function _getLinkedProductInfo(
563
+ InstanceReader instanceReader,
564
+ NftId componentNftId
565
+ )
566
+ internal
567
+ view
568
+ returns(
569
+ NftId productNftId,
570
+ IComponents.ProductInfo memory info
571
+ )
572
+ {
573
+ productNftId = instanceReader.getComponentInfo(componentNftId).productNftId;
574
+ info = instanceReader.getProductInfo(productNftId);
575
+ }
576
+
577
+
578
+ /// @dev based on the provided component address required type and role returns the component and related instance contract
579
+ /// the function reverts iff:
580
+ /// - the component has already been registered
581
+ /// - the component contract does not support IInstanceLinkedComponent
582
+ /// - the component type does not match with the required type
583
+ /// - the initial component owner misses the required role (with the instance access manager)
584
+ function _getAndVerifyRegisterableComponent(
585
+ address componentAddress,
586
+ ObjectType requiredType,
587
+ RoleId requiredRole
588
+ )
589
+ internal
590
+ view
591
+ returns (
592
+ IInstance instance,
593
+ IInstanceLinkedComponent component,
594
+ address owner
595
+ )
596
+ {
597
+ // check this is a component
598
+ component = IInstanceLinkedComponent(componentAddress);
599
+ if(!component.supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
600
+ revert ErrorComponentServiceNotComponent(componentAddress);
601
+ }
602
+
603
+ // check component is of required type
604
+ IRegistry.ObjectInfo memory info = component.getInitialInfo();
605
+ if(info.objectType != requiredType) {
606
+ revert ErrorComponentServiceInvalidType(componentAddress, requiredType, info.objectType);
607
+ }
608
+
609
+ // check component has not already been registered
610
+ if (getRegistry().getNftId(componentAddress).gtz()) {
611
+ revert ErrorComponentServiceAlreadyRegistered(componentAddress);
612
+ }
613
+
614
+ // check instance has assigned required role to inital owner
615
+ instance = _getInstance(info.parentNftId);
616
+ owner = info.initialOwner;
617
+
618
+ if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
619
+ revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
620
+ }
621
+ }
622
+
623
+ function _getDomain() internal pure virtual override returns(ObjectType) {
624
+ return COMPONENT();
625
+ }
626
+ }
@@ -0,0 +1,35 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "./IVersionable.sol";
5
+ import {ProxyManager} from "./ProxyManager.sol";
6
+ import {ComponentService} from "./ComponentService.sol";
7
+
8
+ contract ComponentServiceManager is ProxyManager {
9
+
10
+ ComponentService private _componentService;
11
+
12
+ /// @dev initializes proxy manager with service implementation
13
+ constructor(
14
+ address registryAddress
15
+ )
16
+ ProxyManager(registryAddress)
17
+ {
18
+ ComponentService svc = new ComponentService();
19
+ bytes memory data = abi.encode(registryAddress, address(this));
20
+ IVersionable versionable = deploy(
21
+ address(svc),
22
+ data);
23
+
24
+ _componentService = ComponentService(address(versionable));
25
+ }
26
+
27
+ //--- view functions ----------------------------------------------------//
28
+ function getComponentService()
29
+ external
30
+ view
31
+ returns (ComponentService)
32
+ {
33
+ return _componentService;
34
+ }
35
+ }