@etherisc/gif-next 0.0.2-80a82e6 → 0.0.2-8112a1f-745

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 (650) hide show
  1. package/README.md +483 -9
  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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  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/distribution/Distribution.sol/Distribution.json +949 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  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/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +715 -455
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1082 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +793 -548
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2646 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1328 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  221. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +630 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  249. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2360 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +2820 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +858 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +544 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2637 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +657 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  362. package/contracts/accounting/AccountingService.sol +274 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +47 -0
  365. package/contracts/authorization/AccessAdmin.sol +780 -0
  366. package/contracts/authorization/AccessAdminLib.sol +396 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  368. package/contracts/authorization/Authorization.sol +169 -0
  369. package/contracts/authorization/IAccess.sol +67 -0
  370. package/contracts/authorization/IAccessAdmin.sol +144 -0
  371. package/contracts/authorization/IAuthorization.sol +26 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  374. package/contracts/distribution/BasicDistribution.sol +141 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +247 -0
  377. package/contracts/distribution/DistributionService.sol +448 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +115 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IInstance.sol +140 -15
  396. package/contracts/instance/IInstanceService.sol +117 -0
  397. package/contracts/instance/Instance.sol +328 -45
  398. package/contracts/instance/InstanceAdmin.sol +383 -0
  399. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  400. package/contracts/instance/InstanceReader.sol +632 -0
  401. package/contracts/instance/InstanceService.sol +500 -0
  402. package/contracts/instance/InstanceServiceManager.sol +39 -0
  403. package/contracts/instance/InstanceStore.sol +298 -0
  404. package/contracts/instance/RiskSet.sol +126 -0
  405. package/contracts/instance/base/BalanceStore.sol +121 -0
  406. package/contracts/instance/base/Cloneable.sol +28 -0
  407. package/contracts/instance/base/ObjectCounter.sol +20 -0
  408. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  409. package/contracts/instance/base/ObjectSet.sol +77 -0
  410. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  411. package/contracts/instance/module/IBundle.sol +21 -0
  412. package/contracts/instance/module/IComponents.sol +62 -0
  413. package/contracts/instance/module/IDistribution.sol +54 -0
  414. package/contracts/instance/module/IPolicy.sol +105 -0
  415. package/contracts/instance/module/IRisk.sol +16 -0
  416. package/contracts/mock/Dip.sol +26 -0
  417. package/contracts/oracle/BasicOracle.sol +45 -0
  418. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  419. package/contracts/oracle/IOracle.sol +41 -0
  420. package/contracts/oracle/IOracleComponent.sol +33 -0
  421. package/contracts/oracle/IOracleService.sol +66 -0
  422. package/contracts/oracle/Oracle.sol +154 -0
  423. package/contracts/oracle/OracleService.sol +310 -0
  424. package/contracts/oracle/OracleServiceManager.sol +39 -0
  425. package/contracts/pool/BasicPool.sol +162 -0
  426. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  427. package/contracts/pool/BundleService.sol +386 -0
  428. package/contracts/pool/BundleServiceManager.sol +39 -0
  429. package/contracts/pool/IBundleService.sol +116 -0
  430. package/contracts/pool/IPoolComponent.sol +62 -0
  431. package/contracts/pool/IPoolService.sol +170 -0
  432. package/contracts/pool/Pool.sol +333 -0
  433. package/contracts/pool/PoolLib.sol +341 -0
  434. package/contracts/pool/PoolService.sol +614 -0
  435. package/contracts/pool/PoolServiceManager.sol +39 -0
  436. package/contracts/product/ApplicationService.sol +327 -0
  437. package/contracts/product/ApplicationServiceManager.sol +38 -0
  438. package/contracts/product/BasicProduct.sol +49 -0
  439. package/contracts/product/BasicProductAuthorization.sol +63 -0
  440. package/contracts/product/ClaimService.sol +630 -0
  441. package/contracts/product/ClaimServiceManager.sol +38 -0
  442. package/contracts/product/IApplicationService.sol +88 -0
  443. package/contracts/product/IClaimService.sol +136 -0
  444. package/contracts/product/IPolicyService.sol +102 -0
  445. package/contracts/product/IPricingService.sol +40 -0
  446. package/contracts/product/IProductComponent.sol +62 -0
  447. package/contracts/product/IRiskService.sol +48 -0
  448. package/contracts/product/PolicyService.sol +645 -0
  449. package/contracts/product/PolicyServiceLib.sol +139 -0
  450. package/contracts/product/PolicyServiceManager.sol +39 -0
  451. package/contracts/product/PricingService.sol +306 -0
  452. package/contracts/product/PricingServiceManager.sol +39 -0
  453. package/contracts/product/Product.sol +493 -0
  454. package/contracts/product/RiskService.sol +190 -0
  455. package/contracts/product/RiskServiceManager.sol +39 -0
  456. package/contracts/registry/ChainNft.sol +176 -100
  457. package/contracts/registry/IRegistry.sol +149 -47
  458. package/contracts/registry/IRegistryService.sol +62 -0
  459. package/contracts/registry/IRelease.sol +29 -0
  460. package/contracts/registry/ITransferInterceptor.sol +6 -0
  461. package/contracts/registry/Registry.sol +671 -117
  462. package/contracts/registry/RegistryAdmin.sol +188 -0
  463. package/contracts/registry/RegistryAuthorization.sol +309 -0
  464. package/contracts/registry/RegistryService.sol +241 -0
  465. package/contracts/registry/RegistryServiceManager.sol +53 -0
  466. package/contracts/registry/ReleaseAdmin.sol +195 -0
  467. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  468. package/contracts/registry/ReleaseRegistry.sol +525 -0
  469. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  470. package/contracts/registry/TokenRegistry.sol +317 -0
  471. package/contracts/shared/Component.sol +214 -0
  472. package/contracts/shared/ComponentService.sol +687 -0
  473. package/contracts/shared/ComponentServiceManager.sol +38 -0
  474. package/contracts/shared/ContractLib.sol +312 -0
  475. package/contracts/shared/IComponent.sol +58 -0
  476. package/contracts/shared/IComponentService.sol +111 -0
  477. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  478. package/contracts/shared/IKeyValueStore.sol +54 -0
  479. package/contracts/shared/ILifecycle.sol +31 -0
  480. package/contracts/shared/INftOwnable.sol +27 -0
  481. package/contracts/shared/IPolicyHolder.sol +35 -0
  482. package/contracts/shared/IRegisterable.sol +36 -0
  483. package/contracts/shared/IRegistryLinked.sol +11 -0
  484. package/contracts/shared/IService.sol +23 -0
  485. package/contracts/shared/InitializableERC165.sol +35 -0
  486. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  487. package/contracts/shared/KeyValueStore.sol +131 -0
  488. package/contracts/shared/Lifecycle.sol +88 -0
  489. package/contracts/shared/NftIdSet.sol +65 -0
  490. package/contracts/shared/NftOwnable.sol +129 -0
  491. package/contracts/shared/PolicyHolder.sol +63 -0
  492. package/contracts/shared/Registerable.sol +106 -0
  493. package/contracts/shared/RegistryLinked.sol +38 -0
  494. package/contracts/shared/Service.sol +67 -0
  495. package/contracts/shared/TokenHandler.sol +342 -0
  496. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  497. package/contracts/staking/IStaking.sol +264 -0
  498. package/contracts/staking/IStakingService.sol +127 -0
  499. package/contracts/staking/Staking.sol +746 -0
  500. package/contracts/staking/StakingLib.sol +195 -0
  501. package/contracts/staking/StakingLifecycle.sol +23 -0
  502. package/contracts/staking/StakingManager.sol +51 -0
  503. package/contracts/staking/StakingReader.sol +151 -0
  504. package/contracts/staking/StakingService.sol +321 -0
  505. package/contracts/staking/StakingServiceManager.sol +46 -0
  506. package/contracts/staking/StakingStore.sol +973 -0
  507. package/contracts/staking/TargetManagerLib.sol +211 -0
  508. package/contracts/type/AddressSet.sol +58 -0
  509. package/contracts/type/Amount.sol +154 -0
  510. package/contracts/type/Blocknumber.sol +142 -0
  511. package/contracts/type/ChainId.sol +101 -0
  512. package/contracts/type/ClaimId.sol +80 -0
  513. package/contracts/type/DistributorType.sol +55 -0
  514. package/contracts/type/Fee.sol +66 -0
  515. package/contracts/type/Key32.sol +50 -0
  516. package/contracts/type/Key32Set.sol +62 -0
  517. package/contracts/type/NftId.sol +85 -0
  518. package/contracts/type/NftIdSet.sol +62 -0
  519. package/contracts/type/ObjectType.sol +307 -0
  520. package/contracts/type/PayoutId.sol +82 -0
  521. package/contracts/type/Referral.sol +90 -0
  522. package/contracts/type/RequestId.sol +75 -0
  523. package/contracts/type/RiskId.sol +75 -0
  524. package/contracts/type/RoleId.sol +180 -0
  525. package/contracts/type/Seconds.sol +115 -0
  526. package/contracts/type/Selector.sol +107 -0
  527. package/contracts/type/StateId.sol +149 -0
  528. package/contracts/type/String.sol +65 -0
  529. package/contracts/type/Timestamp.sol +143 -0
  530. package/contracts/type/UFixed.sol +263 -0
  531. package/contracts/type/Version.sol +159 -0
  532. package/contracts/upgradeability/IVersionable.sol +56 -0
  533. package/contracts/upgradeability/ProxyManager.sol +246 -0
  534. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  535. package/contracts/upgradeability/Versionable.sol +62 -0
  536. package/package.json +26 -7
  537. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  538. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  539. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  540. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  541. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  543. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  545. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  546. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  547. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  548. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  563. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  565. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  567. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  569. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  571. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  573. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  574. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  575. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  576. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  577. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  578. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  579. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  580. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  581. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  584. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  585. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  586. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  587. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  589. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  591. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  592. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  593. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  594. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  595. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  597. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  598. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  599. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  600. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  602. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  604. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  605. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  606. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  607. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  608. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  610. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  611. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  612. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  613. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  615. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  616. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  617. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  618. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  619. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  621. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  623. package/contracts/components/Component.sol +0 -62
  624. package/contracts/components/IPool.sol +0 -9
  625. package/contracts/components/IProduct.sol +0 -12
  626. package/contracts/components/Pool.sol +0 -29
  627. package/contracts/components/Product.sol +0 -66
  628. package/contracts/experiment/errors/Require.sol +0 -33
  629. package/contracts/experiment/errors/Revert.sol +0 -39
  630. package/contracts/experiment/inheritance/A.sol +0 -56
  631. package/contracts/experiment/inheritance/B.sol +0 -23
  632. package/contracts/experiment/inheritance/C.sol +0 -28
  633. package/contracts/experiment/inheritance/IA.sol +0 -18
  634. package/contracts/experiment/inheritance/IB.sol +0 -9
  635. package/contracts/experiment/inheritance/IC.sol +0 -11
  636. package/contracts/experiment/types/TypeA.sol +0 -42
  637. package/contracts/experiment/types/TypeB.sol +0 -24
  638. package/contracts/instance/access/Access.sol +0 -218
  639. package/contracts/instance/access/IAccess.sol +0 -83
  640. package/contracts/instance/component/ComponentModule.sol +0 -248
  641. package/contracts/instance/component/IComponent.sol +0 -95
  642. package/contracts/instance/policy/IPolicy.sol +0 -66
  643. package/contracts/instance/policy/PolicyModule.sol +0 -107
  644. package/contracts/instance/pool/IPoolModule.sol +0 -41
  645. package/contracts/instance/pool/PoolModule.sol +0 -86
  646. package/contracts/instance/product/IProductService.sol +0 -46
  647. package/contracts/instance/product/ProductService.sol +0 -108
  648. package/contracts/registry/IChainNft.sol +0 -18
  649. package/contracts/types/ChainId.sol +0 -24
  650. package/contracts/types/NftId.sol +0 -32
@@ -0,0 +1,500 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
+ import {IComponentService} from "../shared/IComponentService.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IInstanceService} from "./IInstanceService.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {IRegistryService} from "../registry/IRegistryService.sol";
13
+ import {IStakingService} from "../staking/IStakingService.sol";
14
+
15
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
16
+ import {Amount} from "../type/Amount.sol";
17
+ import {BundleSet} from "./BundleSet.sol";
18
+ import {Instance} from "./Instance.sol";
19
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
20
+ import {InstanceReader} from "./InstanceReader.sol";
21
+ import {InstanceStore} from "./InstanceStore.sol";
22
+ import {NftId} from "../type/NftId.sol";
23
+ import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
24
+ import {RiskSet} from "./RiskSet.sol";
25
+ import {RoleId} from "../type/RoleId.sol";
26
+ import {Seconds} from "../type/Seconds.sol";
27
+ import {Service} from "../shared/Service.sol";
28
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
29
+ import {UFixed} from "../type/UFixed.sol";
30
+ import {VersionPart} from "../type/Version.sol";
31
+
32
+
33
+ contract InstanceService is
34
+ Service,
35
+ IInstanceService
36
+ {
37
+
38
+ // TODO update to real hash when instance is stable
39
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
40
+
41
+ IRegistryService internal _registryService;
42
+ IStakingService internal _stakingService;
43
+ IComponentService internal _componentService;
44
+
45
+ address internal _masterAccessManager;
46
+ address internal _masterInstanceAdmin;
47
+ address internal _masterInstance;
48
+ address internal _masterInstanceReader;
49
+ address internal _masterInstanceBundleSet;
50
+ address internal _masterInstanceRiskSet;
51
+ address internal _masterInstanceStore;
52
+
53
+
54
+ modifier onlyInstance() {
55
+ _checkInstance(msg.sender, getRelease());
56
+ _;
57
+ }
58
+
59
+
60
+ /// @inheritdoc IInstanceService
61
+ function createRole(
62
+ string memory roleName,
63
+ RoleId adminRoleId,
64
+ uint32 maxMemberCount
65
+ )
66
+ external
67
+ restricted()
68
+ onlyInstance()
69
+ returns (RoleId roleId)
70
+ {
71
+ IInstance instance = IInstance(msg.sender);
72
+ roleId = instance.getInstanceAdmin().createRole(
73
+ roleName,
74
+ adminRoleId,
75
+ maxMemberCount);
76
+ }
77
+
78
+
79
+ /// @inheritdoc IInstanceService
80
+ function setRoleActive(RoleId roleId, bool active)
81
+ external
82
+ restricted()
83
+ onlyInstance()
84
+ {
85
+ IInstance instance = IInstance(msg.sender);
86
+ instance.getInstanceAdmin().setRoleActive(roleId, active);
87
+ }
88
+
89
+
90
+ /// @inheritdoc IInstanceService
91
+ function grantRole(RoleId roleId, address account)
92
+ external
93
+ restricted()
94
+ onlyInstance()
95
+ {
96
+ IInstance instance = IInstance(msg.sender);
97
+ instance.getInstanceAdmin().grantRole(roleId, account);
98
+ }
99
+
100
+
101
+ /// @inheritdoc IInstanceService
102
+ function revokeRole(RoleId roleId, address account)
103
+ external
104
+ restricted()
105
+ onlyInstance()
106
+ {
107
+ IInstance instance = IInstance(msg.sender);
108
+ instance.getInstanceAdmin().revokeRole(roleId, account);
109
+ }
110
+
111
+
112
+ /// @inheritdoc IInstanceService
113
+ function createTarget(address target, string memory name)
114
+ external
115
+ restricted()
116
+ onlyInstance()
117
+ returns (RoleId contractRoleId)
118
+ {
119
+ IInstance instance = IInstance(msg.sender);
120
+ return instance.getInstanceAdmin().createTarget(target, name);
121
+ }
122
+
123
+
124
+ /// @inheritdoc IInstanceService
125
+ function authorizeFunctions(
126
+ address target,
127
+ RoleId roleId,
128
+ IAccess.FunctionInfo[] memory functions
129
+ )
130
+ external
131
+ restricted()
132
+ onlyInstance()
133
+ {
134
+ IInstance instance = IInstance(msg.sender);
135
+ return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
136
+ }
137
+
138
+
139
+ /// @inheritdoc IInstanceService
140
+ function unauthorizeFunctions(
141
+ address target,
142
+ IAccess.FunctionInfo[] memory functions
143
+ )
144
+ external
145
+ restricted()
146
+ onlyInstance()
147
+ {
148
+ IInstance instance = IInstance(msg.sender);
149
+ return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
150
+ }
151
+
152
+
153
+ /// @inheritdoc IInstanceService
154
+ function setTargetLocked(address target, bool locked)
155
+ external
156
+ virtual
157
+ restricted()
158
+ onlyInstance()
159
+ {
160
+ address instanceAddress = msg.sender;
161
+ IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
162
+ }
163
+
164
+
165
+ /// @inheritdoc IInstanceService
166
+ function setInstanceLocked(bool locked)
167
+ external
168
+ virtual
169
+ restricted()
170
+ onlyInstance()
171
+ {
172
+ address instanceAddress = msg.sender;
173
+ IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
174
+
175
+ emit LogInstanceServiceInstanceLocked(
176
+ getRegistry().getNftIdForAddress(instanceAddress),
177
+ locked);
178
+ }
179
+
180
+
181
+ /// @inheritdoc IInstanceService
182
+ function createInstance(bool allowAnyToken)
183
+ external
184
+ virtual
185
+ restricted()
186
+ returns (
187
+ IInstance instance,
188
+ NftId instanceNftId
189
+ )
190
+ {
191
+ // tx sender will become instance owner
192
+ address instanceOwner = msg.sender;
193
+
194
+ // create instance admin and instance
195
+ InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
196
+ instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
197
+
198
+ // register cloned instance with registry
199
+ instanceNftId = _registryService.registerInstance(
200
+ instance, instanceOwner).nftId;
201
+
202
+ // MUST be set after instance is set up and registered
203
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
204
+ instanceAdmin.completeSetup(
205
+ address(getRegistry()),
206
+ address(instanceAuthorization),
207
+ getRelease(),
208
+ address(instance));
209
+
210
+ // hard checks for newly cloned instance
211
+ assert(address(instance.getRegistry()) == address(getRegistry()));
212
+ assert(instance.getRelease() == getRelease());
213
+
214
+ // register cloned instance as staking target
215
+ _stakingService.createInstanceTarget(
216
+ instanceNftId,
217
+ TargetManagerLib.getDefaultLockingPeriod(),
218
+ TargetManagerLib.getDefaultRewardRate());
219
+
220
+ emit LogInstanceServiceInstanceCreated(
221
+ instanceNftId,
222
+ address(instance));
223
+ }
224
+
225
+
226
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
227
+ external
228
+ virtual
229
+ restricted()
230
+ onlyInstance()
231
+ {
232
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
233
+ _stakingService.setInstanceLockingPeriod(
234
+ instanceNftId,
235
+ stakeLockingPeriod);
236
+ }
237
+
238
+
239
+ function setStakingRewardRate(UFixed rewardRate)
240
+ external
241
+ virtual
242
+ restricted()
243
+ onlyInstance()
244
+ {
245
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
246
+ _stakingService.setInstanceRewardRate(
247
+ instanceNftId,
248
+ rewardRate);
249
+ }
250
+
251
+ function setStakingMaxAmount(Amount maxStakedAmount)
252
+ external
253
+ virtual
254
+ restricted()
255
+ onlyInstance()
256
+ {
257
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
258
+ _stakingService.setInstanceMaxStakedAmount(
259
+ instanceNftId,
260
+ maxStakedAmount);
261
+ }
262
+
263
+
264
+ function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount)
265
+ external
266
+ virtual
267
+ restricted()
268
+ onlyInstance()
269
+ returns (Amount newBalance)
270
+ {
271
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
272
+ newBalance = _stakingService.refillInstanceRewardReserves(
273
+ instanceNftId,
274
+ rewardProvider,
275
+ dipAmount);
276
+ }
277
+
278
+
279
+ function withdrawInstanceRewardReserves(Amount dipAmount)
280
+ external
281
+ virtual
282
+ restricted()
283
+ onlyInstance()
284
+ returns (Amount newBalance)
285
+ {
286
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
287
+ newBalance = _stakingService.withdrawInstanceRewardReserves(
288
+ instanceNftId,
289
+ dipAmount);
290
+ }
291
+
292
+
293
+ function upgradeInstanceReader()
294
+ external
295
+ virtual
296
+ restricted()
297
+ onlyInstance()
298
+ {
299
+ address instanceAddress = msg.sender;
300
+ IInstance instance = IInstance(msg.sender);
301
+
302
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(
303
+ Clones.clone(address(_masterInstanceReader)));
304
+
305
+ upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
306
+ instance.setInstanceReader(upgradedInstanceReaderClone);
307
+
308
+ emit LogInstanceServiceInstanceReaderUpgraded(
309
+ getRegistry().getNftIdForAddress(instanceAddress),
310
+ address(upgradedInstanceReaderClone));
311
+ }
312
+
313
+
314
+ function setAndRegisterMasterInstance(address instanceAddress)
315
+ external
316
+ virtual
317
+ onlyOwner()
318
+ returns(NftId masterInstanceNftId)
319
+ {
320
+ if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
321
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
322
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
323
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
324
+ if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
325
+
326
+ IInstance instance = IInstance(instanceAddress);
327
+ address accessManagerAddress = instance.authority();
328
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
329
+ address instanceAdminAddress = address(instanceAdmin);
330
+ InstanceReader instanceReader = instance.getInstanceReader();
331
+ address instanceReaderAddress = address(instanceReader);
332
+ BundleSet bundleSet = instance.getBundleSet();
333
+ address bundleSetAddress = address(bundleSet);
334
+ RiskSet riskSet = instance.getRiskSet();
335
+ address riskSetAddress = address(riskSet);
336
+ InstanceStore instanceStore = instance.getInstanceStore();
337
+ address instanceStoreAddress = address(instanceStore);
338
+
339
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
340
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
341
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
342
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
343
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
344
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
345
+
346
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
347
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
348
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
349
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
350
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
351
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
352
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
353
+
354
+ _masterAccessManager = accessManagerAddress;
355
+ _masterInstanceAdmin = instanceAdminAddress;
356
+ _masterInstance = instanceAddress;
357
+ _masterInstanceReader = instanceReaderAddress;
358
+ _masterInstanceBundleSet = bundleSetAddress;
359
+ _masterInstanceRiskSet = riskSetAddress;
360
+ _masterInstanceStore = instanceStoreAddress;
361
+
362
+ IInstance masterInstance = IInstance(_masterInstance);
363
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
364
+ masterInstanceNftId = info.nftId;
365
+ }
366
+
367
+
368
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
369
+ external
370
+ virtual
371
+ onlyOwner
372
+ {
373
+ if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
374
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
375
+ if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
376
+
377
+ InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
378
+ if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
379
+
380
+ _masterInstanceReader = instanceReaderAddress;
381
+
382
+ emit LogInstanceServiceMasterInstanceReaderUpgraded(
383
+ getRegistry().getNftIdForAddress(_masterInstance),
384
+ instanceReaderAddress);
385
+ }
386
+
387
+ function getMasterInstanceReader() external virtual view returns (address) {
388
+ return _masterInstanceReader;
389
+ }
390
+
391
+ //--- internal functions --------------------------------------------------------//
392
+
393
+ /// @dev create new cloned instance admin
394
+ /// function used to setup a new instance
395
+ function _cloneNewInstanceAdmin()
396
+ internal
397
+ virtual
398
+ returns (InstanceAdmin clonedAdmin)
399
+ {
400
+ // clone instance specific access manager
401
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
402
+ Clones.clone(
403
+ InstanceAdmin(_masterInstanceAdmin).authority()));
404
+
405
+ // set up the instance admin
406
+ clonedAdmin = InstanceAdmin(
407
+ Clones.clone(_masterInstanceAdmin));
408
+
409
+ clonedAdmin.initialize(
410
+ address(clonedAccessManager),
411
+ "InstanceAdmin");
412
+ }
413
+
414
+
415
+ /// @dev create new cloned instance
416
+ /// function used to setup a new instance
417
+ function _createInstance(
418
+ InstanceAdmin instanceAdmin,
419
+ address instanceOwner,
420
+ bool allowAnyToken
421
+ )
422
+ internal
423
+ virtual
424
+ returns (IInstance)
425
+ {
426
+ // clone instance
427
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
428
+ clonedInstance.initialize(
429
+ instanceAdmin,
430
+ InstanceStore(Clones.clone(address(_masterInstanceStore))),
431
+ BundleSet(Clones.clone(_masterInstanceBundleSet)),
432
+ RiskSet(Clones.clone(_masterInstanceRiskSet)),
433
+ InstanceReader(Clones.clone(address(_masterInstanceReader))),
434
+ getRegistry(),
435
+ getRelease(),
436
+ instanceOwner,
437
+ allowAnyToken);
438
+
439
+ return clonedInstance;
440
+ }
441
+
442
+
443
+ /// @dev top level initializer (upgradable contract)
444
+ function _initialize(
445
+ address owner,
446
+ bytes memory data
447
+ )
448
+ internal
449
+ virtual override
450
+ initializer()
451
+ {
452
+ (
453
+ address authority,
454
+ address registry
455
+ ) = abi.decode(data, (address, address));
456
+
457
+ __Service_init(authority, registry, owner);
458
+
459
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
460
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
461
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
462
+
463
+ _registerInterface(type(IInstanceService).interfaceId);
464
+ }
465
+
466
+
467
+ function _checkInstance(
468
+ address instanceAddress,
469
+ VersionPart expectedRelease
470
+ )
471
+ internal
472
+ virtual
473
+ view
474
+ {
475
+ IRegistry registry = getRegistry();
476
+
477
+ NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
478
+ if (instanceNftId.eqz()) {
479
+ revert ErrorInstanceServiceNotRegistered(instanceAddress);
480
+ }
481
+
482
+ ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
483
+ if (objectType != INSTANCE()) {
484
+ revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
485
+ }
486
+
487
+ if (expectedRelease.gtz()) {
488
+ VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
489
+ if (instanceRelease != expectedRelease) {
490
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
491
+ }
492
+ }
493
+ }
494
+
495
+
496
+ // From IService
497
+ function _getDomain() internal pure override returns(ObjectType) {
498
+ return INSTANCE();
499
+ }
500
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {InstanceService} from "./InstanceService.sol";
7
+
8
+ contract InstanceServiceManager is ProxyManager {
9
+
10
+ InstanceService private _instanceService;
11
+
12
+ /// @dev initializes proxy manager with instance service implementation
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _instanceService = InstanceService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getInstanceService()
32
+ external
33
+ view
34
+ returns (InstanceService instanceService)
35
+ {
36
+ return _instanceService;
37
+ }
38
+
39
+ }