@etherisc/gif-next 0.0.2-95f8cce-959 → 0.0.2-9628b30-648

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 (760) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +304 -324
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +293 -275
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2572 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +569 -1784
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +523 -74
  88. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/Instance.sol/Instance.json +644 -2621
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2068 -617
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +530 -381
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +202 -171
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  102. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  104. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  106. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  108. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  109. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  110. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  111. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  112. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  114. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  116. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  121. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  122. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  123. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  125. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  127. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +328 -225
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +272 -241
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +339 -473
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  154. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +384 -423
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  166. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +475 -483
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  180. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +185 -155
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  184. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +223 -164
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  195. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  196. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  201. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  208. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  209. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  211. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  213. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  215. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  217. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +390 -250
  219. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +213 -110
  221. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  223. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  225. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  227. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  229. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  231. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +284 -186
  233. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  235. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  246. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +156 -131
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  248. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +584 -738
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  251. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  255. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  257. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  259. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  261. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  263. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  265. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  267. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  269. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  270. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  271. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  272. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  274. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  278. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  282. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  283. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Service.sol/Service.json +95 -109
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  290. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  292. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  295. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  296. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  297. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  298. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  299. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  301. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  302. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  303. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  305. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  306. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  307. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  308. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  309. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  310. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  311. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  312. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  313. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  314. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  315. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  319. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  321. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  323. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  325. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  327. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  329. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  331. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  332. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  333. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  335. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  336. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  337. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  339. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  341. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  343. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  345. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  346. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  347. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  349. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  351. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  353. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  354. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  355. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  356. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  357. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  358. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  359. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  360. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  361. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  362. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  363. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  364. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  365. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  366. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  367. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  368. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  369. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  370. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  371. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  372. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  373. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  374. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  375. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  376. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  377. package/contracts/accounting/AccountingService.sol +274 -0
  378. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  379. package/contracts/accounting/IAccountingService.sol +47 -0
  380. package/contracts/authorization/AccessAdmin.sol +780 -0
  381. package/contracts/authorization/AccessAdminLib.sol +396 -0
  382. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  383. package/contracts/authorization/Authorization.sol +169 -0
  384. package/contracts/authorization/IAccess.sol +67 -0
  385. package/contracts/authorization/IAccessAdmin.sol +144 -0
  386. package/contracts/authorization/IAuthorization.sol +26 -0
  387. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  388. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  389. package/contracts/distribution/BasicDistribution.sol +141 -0
  390. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  391. package/contracts/distribution/Distribution.sol +247 -0
  392. package/contracts/distribution/DistributionService.sol +448 -0
  393. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  394. package/contracts/distribution/IDistributionComponent.sol +45 -0
  395. package/contracts/distribution/IDistributionService.sol +115 -0
  396. package/contracts/examples/fire/DamageLevel.sol +59 -0
  397. package/contracts/examples/fire/FirePool.sol +86 -0
  398. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  399. package/contracts/examples/fire/FireProduct.sol +433 -0
  400. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  401. package/contracts/examples/fire/FireUSD.sol +26 -0
  402. package/contracts/examples/flight/FlightOracle.sol +160 -0
  403. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  404. package/contracts/examples/flight/FlightPool.sol +89 -0
  405. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  406. package/contracts/examples/flight/FlightProduct.sol +661 -0
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +42 -0
  408. package/contracts/examples/flight/FlightUSD.sol +26 -0
  409. package/contracts/examples/flight/originalV1.sol +396 -0
  410. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  411. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  412. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  413. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  414. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  415. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  416. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  417. package/contracts/instance/BundleSet.sol +130 -0
  418. package/contracts/instance/IInstance.sol +120 -73
  419. package/contracts/instance/IInstanceService.sol +84 -39
  420. package/contracts/instance/Instance.sol +248 -230
  421. package/contracts/instance/InstanceAdmin.sol +383 -0
  422. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  423. package/contracts/instance/InstanceReader.sol +554 -191
  424. package/contracts/instance/InstanceService.sol +384 -379
  425. package/contracts/instance/InstanceServiceManager.sol +14 -29
  426. package/contracts/instance/InstanceStore.sol +298 -0
  427. package/contracts/instance/RiskSet.sol +126 -0
  428. package/contracts/instance/base/BalanceStore.sol +121 -0
  429. package/contracts/instance/base/Cloneable.sol +28 -0
  430. package/contracts/instance/base/ObjectCounter.sol +20 -0
  431. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  432. package/contracts/instance/base/ObjectSet.sol +77 -0
  433. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  434. package/contracts/instance/module/IBundle.sol +9 -11
  435. package/contracts/instance/module/IComponents.sol +44 -23
  436. package/contracts/instance/module/IDistribution.sol +25 -12
  437. package/contracts/instance/module/IPolicy.sol +71 -38
  438. package/contracts/instance/module/IRisk.sol +6 -1
  439. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  440. package/contracts/oracle/BasicOracle.sol +45 -0
  441. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  442. package/contracts/oracle/IOracle.sol +41 -0
  443. package/contracts/oracle/IOracleComponent.sol +33 -0
  444. package/contracts/oracle/IOracleService.sol +66 -0
  445. package/contracts/oracle/Oracle.sol +154 -0
  446. package/contracts/oracle/OracleService.sol +310 -0
  447. package/contracts/oracle/OracleServiceManager.sol +39 -0
  448. package/contracts/pool/BasicPool.sol +162 -0
  449. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  450. package/contracts/pool/BundleService.sol +386 -0
  451. package/contracts/pool/BundleServiceManager.sol +39 -0
  452. package/contracts/pool/IBundleService.sol +116 -0
  453. package/contracts/pool/IPoolComponent.sol +62 -0
  454. package/contracts/pool/IPoolService.sol +170 -0
  455. package/contracts/pool/Pool.sol +333 -0
  456. package/contracts/pool/PoolLib.sol +341 -0
  457. package/contracts/pool/PoolService.sol +614 -0
  458. package/contracts/pool/PoolServiceManager.sol +39 -0
  459. package/contracts/product/ApplicationService.sol +327 -0
  460. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  461. package/contracts/product/BasicProduct.sol +49 -0
  462. package/contracts/product/BasicProductAuthorization.sol +63 -0
  463. package/contracts/product/ClaimService.sol +630 -0
  464. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  465. package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
  466. package/contracts/product/IClaimService.sol +136 -0
  467. package/contracts/product/IPolicyService.sol +102 -0
  468. package/contracts/product/IPricingService.sol +40 -0
  469. package/contracts/product/IProductComponent.sol +62 -0
  470. package/contracts/product/IRiskService.sol +48 -0
  471. package/contracts/product/PolicyService.sol +645 -0
  472. package/contracts/product/PolicyServiceLib.sol +139 -0
  473. package/contracts/product/PolicyServiceManager.sol +39 -0
  474. package/contracts/product/PricingService.sol +306 -0
  475. package/contracts/product/PricingServiceManager.sol +39 -0
  476. package/contracts/product/Product.sol +493 -0
  477. package/contracts/product/RiskService.sol +190 -0
  478. package/contracts/product/RiskServiceManager.sol +39 -0
  479. package/contracts/registry/ChainNft.sol +79 -40
  480. package/contracts/registry/IRegistry.sol +104 -33
  481. package/contracts/registry/IRegistryService.sol +34 -40
  482. package/contracts/registry/IRelease.sol +29 -0
  483. package/contracts/registry/ITransferInterceptor.sol +1 -2
  484. package/contracts/registry/Registry.sol +469 -200
  485. package/contracts/registry/RegistryAdmin.sol +191 -0
  486. package/contracts/registry/RegistryAuthorization.sol +336 -0
  487. package/contracts/registry/RegistryService.sol +90 -131
  488. package/contracts/registry/RegistryServiceManager.sol +23 -32
  489. package/contracts/registry/ReleaseAdmin.sol +195 -0
  490. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  491. package/contracts/registry/ReleaseRegistry.sol +525 -0
  492. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  493. package/contracts/registry/TokenRegistry.sol +265 -64
  494. package/contracts/shared/Component.sol +214 -0
  495. package/contracts/shared/ComponentService.sol +687 -0
  496. package/contracts/shared/ComponentServiceManager.sol +38 -0
  497. package/contracts/shared/ContractLib.sol +312 -0
  498. package/contracts/shared/IComponent.sol +58 -0
  499. package/contracts/shared/IComponentService.sol +111 -0
  500. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  501. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  502. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  503. package/contracts/shared/INftOwnable.sol +6 -2
  504. package/contracts/shared/IPolicyHolder.sol +23 -14
  505. package/contracts/shared/IRegisterable.sol +22 -1
  506. package/contracts/shared/IRegistryLinked.sol +0 -1
  507. package/contracts/shared/IService.sol +12 -5
  508. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  509. package/contracts/shared/InstanceLinkedComponent.sol +234 -0
  510. package/contracts/shared/KeyValueStore.sol +131 -0
  511. package/contracts/shared/Lifecycle.sol +88 -0
  512. package/contracts/shared/NftIdSet.sol +65 -0
  513. package/contracts/shared/NftOwnable.sol +36 -27
  514. package/contracts/shared/PolicyHolder.sol +23 -41
  515. package/contracts/shared/Registerable.sol +52 -20
  516. package/contracts/shared/RegistryLinked.sol +9 -19
  517. package/contracts/shared/Service.sol +36 -41
  518. package/contracts/shared/TokenHandler.sol +322 -13
  519. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  520. package/contracts/staking/IStaking.sol +367 -0
  521. package/contracts/staking/IStakingService.sol +127 -0
  522. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  523. package/contracts/staking/Staking.sol +798 -0
  524. package/contracts/staking/StakingLib.sol +195 -0
  525. package/contracts/staking/StakingManager.sol +53 -0
  526. package/contracts/staking/StakingReader.sol +171 -0
  527. package/contracts/staking/StakingService.sol +321 -0
  528. package/contracts/staking/StakingServiceManager.sol +46 -0
  529. package/contracts/staking/StakingStore.sol +1368 -0
  530. package/contracts/staking/TargetHandler.sol +132 -0
  531. package/contracts/staking/TargetManagerLib.sol +234 -0
  532. package/contracts/{types → type}/AddressSet.sol +1 -1
  533. package/contracts/type/Amount.sol +154 -0
  534. package/contracts/{types → type}/Blocknumber.sol +36 -13
  535. package/contracts/type/ChainId.sol +101 -0
  536. package/contracts/{types → type}/ClaimId.sol +31 -3
  537. package/contracts/{types → type}/Fee.sol +28 -26
  538. package/contracts/{types → type}/Key32.sol +2 -2
  539. package/contracts/type/Key32Set.sol +62 -0
  540. package/contracts/{types → type}/NftId.sol +21 -16
  541. package/contracts/{types → type}/NftIdSet.sol +2 -2
  542. package/contracts/type/ObjectType.sol +307 -0
  543. package/contracts/type/PayoutId.sol +82 -0
  544. package/contracts/{types → type}/Referral.sol +8 -1
  545. package/contracts/type/RequestId.sol +75 -0
  546. package/contracts/type/RequestIdSet.sol +62 -0
  547. package/contracts/type/RiskId.sol +75 -0
  548. package/contracts/type/RoleId.sol +180 -0
  549. package/contracts/type/Seconds.sol +124 -0
  550. package/contracts/type/Selector.sol +107 -0
  551. package/contracts/{types → type}/StateId.sol +47 -4
  552. package/contracts/type/String.sol +65 -0
  553. package/contracts/{types → type}/Timestamp.sol +33 -8
  554. package/contracts/type/UFixed.sol +263 -0
  555. package/contracts/{types → type}/Version.sol +58 -7
  556. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  557. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  558. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  559. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  560. package/package.json +12 -8
  561. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  562. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  563. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  564. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  565. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  566. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  567. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  568. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  569. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  570. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  571. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  572. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  573. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  574. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  576. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  578. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  581. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  582. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  583. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  584. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  585. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  587. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  590. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  592. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  594. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  596. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  598. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  600. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  602. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  604. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  606. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  610. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  615. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  617. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  619. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  621. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  623. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  625. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  627. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  628. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  629. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  630. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  631. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  632. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  633. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  634. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  635. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  636. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  637. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  638. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  639. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  640. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  643. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  645. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  647. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  649. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  651. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  653. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  655. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  656. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  657. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  658. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  659. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  661. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  663. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  665. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  667. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  669. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  671. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  673. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  675. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  676. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  677. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  679. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  681. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  683. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  685. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  687. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  689. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  691. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  693. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  695. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  697. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  699. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  701. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  703. package/contracts/components/Component.sol +0 -253
  704. package/contracts/components/Distribution.sol +0 -280
  705. package/contracts/components/IComponent.sol +0 -76
  706. package/contracts/components/IDistributionComponent.sol +0 -71
  707. package/contracts/components/IPoolComponent.sol +0 -113
  708. package/contracts/components/IProductComponent.sol +0 -40
  709. package/contracts/components/Pool.sol +0 -303
  710. package/contracts/components/Product.sol +0 -293
  711. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  712. package/contracts/instance/BundleManager.sol +0 -127
  713. package/contracts/instance/Cloneable.sol +0 -51
  714. package/contracts/instance/InstanceAccessManager.sol +0 -527
  715. package/contracts/instance/ObjectManager.sol +0 -82
  716. package/contracts/instance/base/ComponentService.sol +0 -121
  717. package/contracts/instance/base/KeyValueStore.sol +0 -180
  718. package/contracts/instance/base/Lifecycle.sol +0 -109
  719. package/contracts/instance/module/IAccess.sol +0 -54
  720. package/contracts/instance/module/ISetup.sol +0 -33
  721. package/contracts/instance/module/ITreasury.sol +0 -23
  722. package/contracts/instance/service/ApplicationService.sol +0 -350
  723. package/contracts/instance/service/BundleService.sol +0 -431
  724. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  725. package/contracts/instance/service/ClaimService.sol +0 -151
  726. package/contracts/instance/service/DistributionService.sol +0 -435
  727. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  728. package/contracts/instance/service/IBundleService.sol +0 -93
  729. package/contracts/instance/service/IClaimService.sol +0 -61
  730. package/contracts/instance/service/IDistributionService.sol +0 -99
  731. package/contracts/instance/service/IPolicyService.sol +0 -72
  732. package/contracts/instance/service/IPoolService.sol +0 -99
  733. package/contracts/instance/service/IProductService.sol +0 -40
  734. package/contracts/instance/service/PolicyService.sol +0 -362
  735. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  736. package/contracts/instance/service/PoolService.sol +0 -303
  737. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  738. package/contracts/instance/service/ProductService.sol +0 -210
  739. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  740. package/contracts/registry/RegistryAccessManager.sol +0 -216
  741. package/contracts/registry/ReleaseManager.sol +0 -324
  742. package/contracts/shared/ContractDeployerLib.sol +0 -72
  743. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  744. package/contracts/test/TestFee.sol +0 -25
  745. package/contracts/test/TestRegisterable.sol +0 -18
  746. package/contracts/test/TestRoleId.sol +0 -14
  747. package/contracts/test/TestService.sol +0 -25
  748. package/contracts/test/TestToken.sol +0 -26
  749. package/contracts/test/TestVersion.sol +0 -44
  750. package/contracts/test/TestVersionable.sol +0 -17
  751. package/contracts/types/Amount.sol +0 -60
  752. package/contracts/types/ChainId.sol +0 -38
  753. package/contracts/types/NumberId.sol +0 -52
  754. package/contracts/types/ObjectType.sol +0 -157
  755. package/contracts/types/PayoutId.sol +0 -54
  756. package/contracts/types/RiskId.sol +0 -43
  757. package/contracts/types/RoleId.sol +0 -97
  758. package/contracts/types/Seconds.sol +0 -54
  759. package/contracts/types/UFixed.sol +0 -326
  760. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,687 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {IComponentService} from "./IComponentService.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
11
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
12
+ import {InstanceReader} from "../instance/InstanceReader.sol";
13
+ import {InstanceStore} from "../instance/InstanceStore.sol";
14
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
15
+ import {IProductComponent} from "../product/IProductComponent.sol";
16
+ import {IRegistry} from "../registry/IRegistry.sol";
17
+ import {IRegistryService} from "../registry/IRegistryService.sol";
18
+ import {IStaking} from "../staking/IStaking.sol";
19
+ import {IStakingService} from "../staking/IStakingService.sol";
20
+
21
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
22
+ import {Amount, AmountLib} from "../type/Amount.sol";
23
+ import {ChainIdLib} from "../type/ChainId.sol";
24
+ import {ContractLib} from "../shared/ContractLib.sol";
25
+ import {Fee, FeeLib} from "../type/Fee.sol";
26
+ import {KEEP_STATE} from "../type/StateId.sol";
27
+ import {NftId, NftIdLib} from "../type/NftId.sol";
28
+ import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT, STAKING} from "../type/ObjectType.sol";
29
+ import {Service} from "../shared/Service.sol";
30
+ import {TokenHandler} from "../shared/TokenHandler.sol";
31
+ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
32
+
33
+
34
+ contract ComponentService is
35
+ Service,
36
+ IComponentService
37
+ {
38
+ bool private constant INCREASE = true;
39
+ bool private constant DECREASE = false;
40
+
41
+ IAccountingService private _accountingService;
42
+ IRegistryService private _registryService;
43
+ IStaking private _staking;
44
+
45
+ function _initialize(
46
+ address owner,
47
+ bytes memory data
48
+ )
49
+ internal
50
+ virtual override
51
+ initializer()
52
+ {
53
+ (
54
+ address authority,
55
+ address registry
56
+ ) = abi.decode(data, (address, address));
57
+
58
+ __Service_init(authority, registry, owner);
59
+
60
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
61
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
62
+ _staking = IStakingService(_getServiceAddress(STAKING())).getStaking();
63
+
64
+ _registerInterface(type(IComponentService).interfaceId);
65
+ }
66
+
67
+ //-------- component ----------------------------------------------------//
68
+
69
+ /// @inheritdoc IComponentService
70
+ function registerComponent(address componentAddress)
71
+ external
72
+ virtual
73
+ restricted()
74
+ returns (NftId componentNftId)
75
+ {
76
+ // checks
77
+ // check sender is registered product
78
+ IRegistry registry = getRegistry();
79
+ if (!registry.isObjectType(msg.sender, PRODUCT())) {
80
+ revert ErrorComponentServiceCallerNotProduct(msg.sender);
81
+ }
82
+
83
+ // check provided address is product contract
84
+ if (!_isInstanceLinkedComponent(componentAddress)) {
85
+ revert ErrorComponentServiceNotComponent(componentAddress);
86
+ }
87
+
88
+ NftId productNftId = registry.getNftIdForAddress(msg.sender);
89
+ IInstance instance = IInstance(
90
+ registry.getObjectAddress(
91
+ registry.getParentNftId(productNftId)));
92
+
93
+ componentNftId = _verifyAndRegister(
94
+ instance,
95
+ componentAddress,
96
+ productNftId, // product is parent of component to be registered
97
+ address(0)); // token will be inhereited from product
98
+ }
99
+
100
+
101
+ /// @inheritdoc IComponentService
102
+ function approveTokenHandler(
103
+ IERC20Metadata token,
104
+ Amount amount
105
+ )
106
+ external
107
+ virtual
108
+ restricted()
109
+ {
110
+ // checks
111
+ (NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
112
+ TokenHandler tokenHandler = instance.getInstanceReader().getTokenHandler(
113
+ componentNftId);
114
+
115
+ // effects
116
+ tokenHandler.approve(token, amount);
117
+ }
118
+
119
+
120
+ /// @inheritdoc IComponentService
121
+ function setWallet(address newWallet)
122
+ external
123
+ virtual
124
+ restricted()
125
+ {
126
+ // checks
127
+ (NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
128
+ TokenHandler tokenHandler = instance.getInstanceReader().getTokenHandler(
129
+ componentNftId);
130
+
131
+ // effects
132
+ tokenHandler.setWallet(newWallet);
133
+ }
134
+
135
+ /// @inheritdoc IComponentService
136
+ function setLocked(bool locked)
137
+ external
138
+ virtual
139
+ restricted()
140
+ {
141
+ (, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
142
+
143
+ address component = msg.sender;
144
+ instance.getInstanceAdmin().setComponentLocked(
145
+ component,
146
+ locked);
147
+ emit LogComponentServiceComponentLocked(component, locked);
148
+ }
149
+
150
+
151
+ /// @inheritdoc IComponentService
152
+ function withdrawFees(Amount amount)
153
+ external
154
+ virtual
155
+ restricted()
156
+ returns (Amount withdrawnAmount)
157
+ {
158
+ // checks
159
+ (NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
160
+ InstanceReader instanceReader = instance.getInstanceReader();
161
+
162
+ // determine withdrawn amount
163
+ Amount maxAvailableAmount = instanceReader.getFeeAmount(componentNftId);
164
+ withdrawnAmount = amount;
165
+
166
+ // max amount -> withraw all available fees
167
+ if (amount == AmountLib.max()) {
168
+ withdrawnAmount = maxAvailableAmount;
169
+ }
170
+
171
+ // check modified withdrawn amount
172
+ if (withdrawnAmount.eqz()) {
173
+ revert ErrorComponentServiceWithdrawAmountIsZero();
174
+ } else if (withdrawnAmount > maxAvailableAmount) {
175
+ revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, maxAvailableAmount);
176
+ }
177
+
178
+ // effects
179
+ // decrease fee counters by withdrawnAmount
180
+ _accountingService.decreaseComponentFees(
181
+ instance.getInstanceStore(),
182
+ componentNftId,
183
+ withdrawnAmount);
184
+
185
+ // transfer amount to component owner
186
+ address componentOwner = getRegistry().ownerOf(componentNftId);
187
+ TokenHandler tokenHandler = instanceReader.getTokenHandler(componentNftId);
188
+ emit LogComponentServiceComponentFeesWithdrawn(
189
+ componentNftId,
190
+ componentOwner,
191
+ address(tokenHandler.TOKEN()),
192
+ withdrawnAmount);
193
+
194
+ // interactions
195
+ // transfer amount to component owner
196
+ tokenHandler.pushFeeToken(
197
+ componentOwner,
198
+ withdrawnAmount);
199
+ }
200
+
201
+
202
+ //-------- product ------------------------------------------------------//
203
+
204
+ /// @inheritdoc IComponentService
205
+ function registerProduct(address productAddress, address token)
206
+ external
207
+ virtual
208
+ restricted()
209
+ nonReentrant()
210
+ returns (NftId productNftId)
211
+ {
212
+ // checks
213
+ // check sender is registered instance
214
+ IRegistry registry = getRegistry();
215
+ if (!registry.isObjectType(msg.sender, INSTANCE())) {
216
+ revert ErrorComponentServiceCallerNotInstance(msg.sender);
217
+ }
218
+
219
+ // check provided address is product contract
220
+ if (!_isProduct(productAddress)) {
221
+ revert ErrorComponentServiceNotProduct(productAddress);
222
+ }
223
+
224
+ IInstance instance = IInstance(msg.sender);
225
+ NftId instanceNftId = registry.getNftIdForAddress(msg.sender);
226
+ productNftId = _verifyAndRegister(
227
+ instance,
228
+ productAddress,
229
+ instanceNftId, // instance is parent of product to be registered
230
+ token);
231
+
232
+ // add product specific token for product to staking
233
+ _staking.addTargetToken(
234
+ instanceNftId,
235
+ token);
236
+ }
237
+
238
+
239
+ function _isProduct(address target) internal view virtual returns (bool) {
240
+ if (!_isInstanceLinkedComponent(target)) {
241
+ return false;
242
+ }
243
+
244
+ return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
245
+ }
246
+
247
+
248
+ function _isInstanceLinkedComponent(address target) internal view virtual returns (bool) {
249
+ if (!ContractLib.isContract(target)) {
250
+ return false;
251
+ }
252
+
253
+ return ContractLib.supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
254
+ }
255
+
256
+
257
+ /// @inheritdoc IComponentService
258
+ function setProductFees(
259
+ Fee memory productFee, // product fee on net premium
260
+ Fee memory processingFee // product fee on payout amounts
261
+ )
262
+ external
263
+ virtual
264
+ restricted()
265
+ nonReentrant()
266
+ {
267
+ (NftId productNftId, IInstance instance) = _getAndVerifyComponent(PRODUCT(), true);
268
+ IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
269
+ bool feesChanged = false;
270
+
271
+ // update product fee if required
272
+ if(!FeeLib.eq(feeInfo.productFee, productFee)) {
273
+ _logUpdateFee(productNftId, "ProductFee", feeInfo.productFee, productFee);
274
+ feeInfo.productFee = productFee;
275
+ feesChanged = true;
276
+ }
277
+
278
+ // update processing fee if required
279
+ if(!FeeLib.eq(feeInfo.processingFee, processingFee)) {
280
+ _logUpdateFee(productNftId, "ProcessingFee", feeInfo.processingFee, processingFee);
281
+ feeInfo.processingFee = processingFee;
282
+ feesChanged = true;
283
+ }
284
+
285
+ if(feesChanged) {
286
+ instance.getInstanceStore().updateFee(productNftId, feeInfo);
287
+ emit LogComponentServiceProductFeesUpdated(productNftId);
288
+ }
289
+ }
290
+
291
+
292
+ function _createProduct(
293
+ InstanceStore instanceStore,
294
+ NftId productNftId,
295
+ address productAddress
296
+ )
297
+ internal
298
+ virtual
299
+ {
300
+ // create product in instance instanceStore
301
+ IProductComponent product = IProductComponent(productAddress);
302
+ IComponents.ProductInfo memory initialProductInfo = product.getInitialProductInfo();
303
+ // force initialization of linked components with empty values to
304
+ // ensure no components are linked upon initialization of the product
305
+ initialProductInfo.poolNftId = NftIdLib.zero();
306
+ initialProductInfo.distributionNftId = NftIdLib.zero();
307
+ initialProductInfo.oracleNftId = new NftId[](initialProductInfo.expectedNumberOfOracles);
308
+
309
+ // create info
310
+ instanceStore.createProduct(
311
+ productNftId,
312
+ initialProductInfo);
313
+
314
+ instanceStore.createFee(
315
+ productNftId,
316
+ product.getInitialFeeInfo());
317
+ }
318
+
319
+ //-------- distribution -------------------------------------------------//
320
+
321
+ /// @dev registers the sending component as a distribution component
322
+ function _createDistribution(
323
+ InstanceStore instanceStore,
324
+ NftId productNftId,
325
+ NftId distributionNftId,
326
+ IComponents.ProductInfo memory productInfo
327
+ )
328
+ internal
329
+ virtual
330
+ nonReentrant()
331
+ {
332
+ // check product is still expecting a distribution registration
333
+ if (!productInfo.hasDistribution) {
334
+ revert ErrorProductServiceNoDistributionExpected(productNftId);
335
+ }
336
+ if (productInfo.distributionNftId.gtz()) {
337
+ revert ErrorProductServiceDistributionAlreadyRegistered(productNftId, productInfo.distributionNftId);
338
+ }
339
+
340
+ // set distribution in product info
341
+ productInfo.distributionNftId = distributionNftId;
342
+ instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
343
+ }
344
+
345
+
346
+ function setDistributionFees(
347
+ Fee memory distributionFee, // distribution fee for sales that do not include commissions
348
+ Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
349
+ )
350
+ external
351
+ virtual
352
+ restricted()
353
+ {
354
+ (NftId distributionNftId, IInstance instance) = _getAndVerifyComponent(DISTRIBUTION(), true);
355
+ (NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
356
+ instance.getInstanceReader(), distributionNftId);
357
+ bool feesChanged = false;
358
+
359
+ // update distributino fee if required
360
+ if(!FeeLib.eq(feeInfo.distributionFee, distributionFee)) {
361
+ _logUpdateFee(productNftId, "DistributionFee", feeInfo.distributionFee, distributionFee);
362
+ feeInfo.distributionFee = distributionFee;
363
+ feesChanged = true;
364
+ }
365
+
366
+ // update min distribution owner fee if required
367
+ if(!FeeLib.eq(feeInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
368
+ _logUpdateFee(productNftId, "MinDistributionOwnerFee", feeInfo.minDistributionOwnerFee, minDistributionOwnerFee);
369
+ feeInfo.minDistributionOwnerFee = minDistributionOwnerFee;
370
+ feesChanged = true;
371
+ }
372
+
373
+ if(feesChanged) {
374
+ instance.getInstanceStore().updateFee(productNftId, feeInfo);
375
+ emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
376
+ }
377
+ }
378
+
379
+ //-------- oracle -------------------------------------------------------//
380
+
381
+ function _createOracle(
382
+ InstanceStore instanceStore,
383
+ NftId productNftId,
384
+ NftId oracleNftId,
385
+ IComponents.ProductInfo memory productInfo
386
+ )
387
+ internal
388
+ virtual
389
+ {
390
+ // check product is still expecting an oracle registration
391
+ if (productInfo.expectedNumberOfOracles == 0) {
392
+ revert ErrorProductServiceNoOraclesExpected(productNftId);
393
+ }
394
+ if (productInfo.numberOfOracles == productInfo.expectedNumberOfOracles) {
395
+ revert ErrorProductServiceOraclesAlreadyRegistered(productNftId, productInfo.expectedNumberOfOracles);
396
+ }
397
+
398
+ // update/add oracle to product info
399
+ productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
400
+ productInfo.numberOfOracles++;
401
+ instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
402
+ }
403
+
404
+ //-------- pool ---------------------------------------------------------//
405
+
406
+ function _createPool(
407
+ InstanceStore instanceStore,
408
+ NftId productNftId,
409
+ NftId poolNftId,
410
+ address componentAddress,
411
+ IComponents.ProductInfo memory productInfo
412
+ )
413
+ internal
414
+ virtual
415
+ {
416
+ // check product is still expecting a pool registration
417
+ //IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
418
+ if (productInfo.poolNftId.gtz()) {
419
+ revert ErrorProductServicePoolAlreadyRegistered(productNftId, productInfo.poolNftId);
420
+ }
421
+
422
+ // create info
423
+ IPoolComponent pool = IPoolComponent(componentAddress);
424
+ instanceStore.createPool(
425
+ poolNftId,
426
+ pool.getInitialPoolInfo());
427
+
428
+ // update pool in product info
429
+ productInfo.poolNftId = poolNftId;
430
+ instanceStore.updateProduct(productNftId, productInfo, KEEP_STATE());
431
+ }
432
+
433
+
434
+ function setPoolFees(
435
+ Fee memory poolFee, // pool fee on net premium
436
+ Fee memory stakingFee, // pool fee on staked capital from investor
437
+ Fee memory performanceFee // pool fee on profits from capital investors
438
+ )
439
+ external
440
+ virtual
441
+ restricted()
442
+ {
443
+ (NftId poolNftId, IInstance instance) = _getAndVerifyComponent(POOL(), true);
444
+
445
+ (NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
446
+ instance.getInstanceReader(), poolNftId);
447
+ bool feesChanged = false;
448
+
449
+ // update pool fee if required
450
+ if(!FeeLib.eq(feeInfo.poolFee, poolFee)) {
451
+ _logUpdateFee(productNftId, "PoolFee", feeInfo.poolFee, poolFee);
452
+ feeInfo.poolFee = poolFee;
453
+ feesChanged = true;
454
+ }
455
+
456
+ // update staking fee if required
457
+ if(!FeeLib.eq(feeInfo.stakingFee, stakingFee)) {
458
+ _logUpdateFee(productNftId, "StakingFee", feeInfo.stakingFee, stakingFee);
459
+ feeInfo.stakingFee = stakingFee;
460
+ feesChanged = true;
461
+ }
462
+
463
+ // update performance fee if required
464
+ if(!FeeLib.eq(feeInfo.performanceFee, performanceFee)) {
465
+ _logUpdateFee(productNftId, "PerformanceFee", feeInfo.performanceFee, performanceFee);
466
+ feeInfo.performanceFee = performanceFee;
467
+ feesChanged = true;
468
+ }
469
+
470
+ if(feesChanged) {
471
+ instance.getInstanceStore().updateFee(productNftId, feeInfo);
472
+ emit LogComponentServicePoolFeesUpdated(poolNftId);
473
+ }
474
+ }
475
+
476
+
477
+ /// @dev Registers the component represented by the provided address.
478
+ /// The caller must ensure componentAddress is IInstanceLinkedComponent.
479
+ function _verifyAndRegister(
480
+ IInstance instance,
481
+ address componentAddress,
482
+ NftId parentNftId,
483
+ address token
484
+ )
485
+ internal
486
+ virtual
487
+ returns (NftId componentNftId)
488
+ {
489
+ (
490
+ IInstanceLinkedComponent component,
491
+ IRegistry.ObjectInfo memory objectInfo // initial component info
492
+ ) = _getAndVerifyRegisterableComponent(
493
+ componentAddress,
494
+ parentNftId);
495
+
496
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
497
+ InstanceStore instanceStore = instance.getInstanceStore();
498
+ InstanceReader instanceReader = instance.getInstanceReader();
499
+ ObjectType componentType = objectInfo.objectType;
500
+
501
+ if(componentType == PRODUCT()) {
502
+ // register product with registry
503
+ componentNftId = _registryService.registerProduct(
504
+ component,
505
+ objectInfo.initialOwner).nftId;
506
+
507
+ // create product info in instance store
508
+ _createProduct(instanceStore, componentNftId, componentAddress);
509
+ } else {
510
+ // register non product component with registry
511
+ componentNftId = _registryService.registerProductLinkedComponent(
512
+ component,
513
+ objectInfo.objectType,
514
+ objectInfo.initialOwner).nftId;
515
+
516
+ // create non product component info in instance store
517
+ NftId productNftId = parentNftId;
518
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
519
+ if(componentType == POOL()) {
520
+ _createPool(instanceStore, productNftId, componentNftId, componentAddress, productInfo);
521
+ } else if(componentType == DISTRIBUTION()) {
522
+ _createDistribution(instanceStore, productNftId, componentNftId, productInfo);
523
+ } else if(componentType == ORACLE()) {
524
+ _createOracle(instanceStore, productNftId, componentNftId, productInfo);
525
+ } else {
526
+ revert ErrorComponentServiceComponentTypeNotSupported(componentAddress, componentType);
527
+ }
528
+
529
+ // get product's token
530
+ token = address(instanceReader.getTokenHandler(productNftId).TOKEN());
531
+ }
532
+
533
+ _checkToken(instance, token);
534
+
535
+ // deploy and wire token handler
536
+ IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
537
+ componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
538
+ address(getRegistry()),
539
+ address(component), // initially, component is its own wallet
540
+ token,
541
+ instanceAdmin.authority());
542
+
543
+ // register component with instance
544
+ instanceStore.createComponent(
545
+ componentNftId,
546
+ componentInfo);
547
+
548
+ // link component contract to nft id
549
+ component.linkToRegisteredNftId();
550
+
551
+ // authorize
552
+ instanceAdmin.initializeComponentAuthorization(componentAddress, componentType);
553
+
554
+ emit LogComponentServiceRegistered(
555
+ instance.getNftId(),
556
+ componentNftId,
557
+ componentType,
558
+ address(component),
559
+ token,
560
+ objectInfo.initialOwner);
561
+ }
562
+
563
+
564
+ function _checkToken(IInstance instance, address token)
565
+ internal
566
+ view
567
+ {
568
+ if (! instance.isTokenRegistryDisabled()) {
569
+ // check if provided token is whitelisted and active
570
+ if (!ContractLib.isActiveToken(
571
+ getRegistry().getTokenRegistryAddress(),
572
+ ChainIdLib.current(),
573
+ token,
574
+ AccessManagerCloneable(authority()).getRelease())
575
+ ) {
576
+ revert ErrorComponentServiceTokenInvalid(token);
577
+ }
578
+ }
579
+ }
580
+
581
+
582
+ function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
583
+ internal
584
+ virtual
585
+ {
586
+ emit LogComponentServiceUpdateFee(
587
+ productNftId,
588
+ name,
589
+ feeBefore.fractionalFee,
590
+ feeBefore.fixedFee,
591
+ feeAfter.fractionalFee,
592
+ feeAfter.fixedFee
593
+ );
594
+ }
595
+
596
+
597
+ function _getLinkedFeeInfo(
598
+ InstanceReader instanceReader,
599
+ NftId componentNftId
600
+ )
601
+ internal
602
+ view
603
+ returns(
604
+ NftId productNftId,
605
+ IComponents.FeeInfo memory info
606
+ )
607
+ {
608
+ productNftId = getRegistry().getParentNftId(componentNftId);
609
+ info = instanceReader.getFeeInfo(productNftId);
610
+ }
611
+
612
+
613
+ /// @dev Based on the provided component address required type the component
614
+ /// and related instance contract this function reverts iff:
615
+ /// - the component parent does not match with the required parent
616
+ /// - the component release does not match with the service release
617
+ /// - the component has already been registered
618
+ function _getAndVerifyRegisterableComponent(
619
+ address componentAddress,
620
+ NftId requiredParent
621
+ )
622
+ internal
623
+ view
624
+ returns (
625
+ IInstanceLinkedComponent component,
626
+ IRegistry.ObjectInfo memory info
627
+ )
628
+ {
629
+ component = IInstanceLinkedComponent(componentAddress);
630
+ info = component.getInitialInfo();
631
+
632
+ // check component parent
633
+ if(info.parentNftId != requiredParent) {
634
+ revert ErrorComponentServiceComponentParentInvalid(componentAddress, requiredParent, info.parentNftId);
635
+ }
636
+
637
+ // check component release (must match with service release)
638
+ if(component.getRelease() != getRelease()) {
639
+ revert ErrorComponentServiceComponentReleaseMismatch(componentAddress, getRelease(), component.getRelease());
640
+ }
641
+
642
+ // check component has not already been registered
643
+ if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
644
+ revert ErrorComponentServiceComponentAlreadyRegistered(componentAddress);
645
+ }
646
+ }
647
+
648
+
649
+ function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
650
+ instanceAdmin.setTargetLocked(componentAddress, locked);
651
+ }
652
+
653
+
654
+ function _getAndVerifyComponent(ObjectType expectedType, bool isActive)
655
+ internal
656
+ view
657
+ returns (
658
+ NftId componentNftId,
659
+ IInstance instance
660
+ )
661
+ {
662
+ IRegistry.ObjectInfo memory info;
663
+ address instanceAddress;
664
+
665
+ if (expectedType != COMPONENT()) {
666
+ (info, instanceAddress) = ContractLib.getAndVerifyComponent(
667
+ getRegistry(),
668
+ msg.sender, // caller
669
+ expectedType,
670
+ isActive);
671
+ } else {
672
+ (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
673
+ getRegistry(),
674
+ msg.sender,
675
+ isActive);
676
+ }
677
+
678
+ // get component nft id and instance
679
+ componentNftId = info.nftId;
680
+ instance = IInstance(instanceAddress);
681
+ }
682
+
683
+
684
+ function _getDomain() internal pure virtual override returns(ObjectType) {
685
+ return COMPONENT();
686
+ }
687
+ }