@etherisc/gif-next 0.0.2-a6ce659-551 → 0.0.2-a6d7b34-014

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 (594) hide show
  1. package/README.md +116 -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/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +525 -342
  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 +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -606
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +754 -323
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -123
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +145 -272
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +535 -78
  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 +1472 -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 +2045 -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 +1423 -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 +1639 -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 +2471 -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 +566 -85
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +380 -73
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +556 -215
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1954 -313
  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 +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1704 -759
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +373 -271
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +140 -126
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +922 -735
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +48 -7
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +142 -129
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +140 -413
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +569 -265
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +215 -103
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +147 -396
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +154 -694
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +923 -543
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +229 -105
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +158 -98
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +472 -235
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +348 -16
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +282 -261
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  167. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +196 -163
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +195 -107
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +284 -564
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +381 -66
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +614 -130
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -545
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +504 -27
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +602 -578
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  228. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +131 -129
  234. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  236. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +125 -366
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +46 -55
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +341 -133
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +468 -419
  279. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +180 -99
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -171
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +213 -153
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +59 -4
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -91
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  353. package/contracts/accounting/AccountingService.sol +274 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +47 -0
  356. package/contracts/authorization/AccessAdmin.sol +780 -0
  357. package/contracts/authorization/AccessAdminLib.sol +396 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  359. package/contracts/authorization/Authorization.sol +169 -0
  360. package/contracts/authorization/IAccess.sol +67 -0
  361. package/contracts/authorization/IAccessAdmin.sol +144 -0
  362. package/contracts/authorization/IAuthorization.sol +27 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  365. package/contracts/distribution/BasicDistribution.sol +141 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  367. package/contracts/distribution/Distribution.sol +125 -139
  368. package/contracts/distribution/DistributionService.sol +283 -132
  369. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  370. package/contracts/distribution/IDistributionComponent.sol +21 -42
  371. package/contracts/distribution/IDistributionService.sol +60 -26
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +86 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +433 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +130 -0
  386. package/contracts/instance/IInstance.sol +106 -48
  387. package/contracts/instance/IInstanceService.sol +62 -43
  388. package/contracts/instance/Instance.sol +214 -131
  389. package/contracts/instance/InstanceAdmin.sol +301 -249
  390. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  391. package/contracts/instance/InstanceReader.sol +492 -252
  392. package/contracts/instance/InstanceService.sol +298 -238
  393. package/contracts/instance/InstanceServiceManager.sol +8 -13
  394. package/contracts/instance/InstanceStore.sol +29 -3
  395. package/contracts/instance/RiskSet.sol +118 -0
  396. package/contracts/instance/base/BalanceStore.sol +3 -5
  397. package/contracts/instance/base/ObjectCounter.sol +1 -2
  398. package/contracts/instance/base/ObjectLifecycle.sol +54 -43
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IBundle.sol +6 -5
  402. package/contracts/instance/module/IComponents.sol +30 -20
  403. package/contracts/instance/module/IDistribution.sol +21 -9
  404. package/contracts/instance/module/IPolicy.sol +50 -29
  405. package/contracts/instance/module/IRisk.sol +5 -0
  406. package/contracts/mock/Dip.sol +1 -1
  407. package/contracts/oracle/BasicOracle.sol +45 -0
  408. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  409. package/contracts/oracle/IOracle.sol +25 -4
  410. package/contracts/oracle/IOracleComponent.sol +2 -1
  411. package/contracts/oracle/IOracleService.sol +2 -1
  412. package/contracts/oracle/Oracle.sol +62 -53
  413. package/contracts/oracle/OracleService.sol +117 -85
  414. package/contracts/oracle/OracleServiceManager.sol +8 -11
  415. package/contracts/pool/BasicPool.sol +162 -0
  416. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  417. package/contracts/pool/BundleService.sol +222 -132
  418. package/contracts/pool/BundleServiceManager.sol +8 -11
  419. package/contracts/pool/IBundleService.sol +43 -33
  420. package/contracts/pool/IPoolComponent.sol +20 -70
  421. package/contracts/pool/IPoolService.sol +97 -77
  422. package/contracts/pool/Pool.sol +198 -164
  423. package/contracts/pool/PoolLib.sol +341 -0
  424. package/contracts/pool/PoolService.sol +419 -257
  425. package/contracts/pool/PoolServiceManager.sol +6 -9
  426. package/contracts/product/ApplicationService.sol +153 -80
  427. package/contracts/product/ApplicationServiceManager.sol +6 -6
  428. package/contracts/product/BasicProduct.sol +49 -0
  429. package/contracts/product/BasicProductAuthorization.sol +63 -0
  430. package/contracts/product/ClaimService.sol +382 -183
  431. package/contracts/product/ClaimServiceManager.sol +6 -6
  432. package/contracts/product/IApplicationService.sol +29 -3
  433. package/contracts/product/IClaimService.sol +44 -8
  434. package/contracts/product/IPolicyService.sol +61 -37
  435. package/contracts/product/IPricingService.sol +11 -10
  436. package/contracts/product/IProductComponent.sol +29 -9
  437. package/contracts/product/IRiskService.sol +37 -0
  438. package/contracts/product/PolicyService.sol +443 -273
  439. package/contracts/product/PolicyServiceLib.sol +139 -0
  440. package/contracts/product/PolicyServiceManager.sol +6 -9
  441. package/contracts/product/PricingService.sol +90 -84
  442. package/contracts/product/PricingServiceManager.sol +6 -9
  443. package/contracts/product/Product.sol +237 -142
  444. package/contracts/product/RiskService.sol +163 -0
  445. package/contracts/product/RiskServiceManager.sol +39 -0
  446. package/contracts/registry/ChainNft.sol +72 -40
  447. package/contracts/registry/IRegistry.sol +84 -33
  448. package/contracts/registry/IRegistryService.sol +3 -10
  449. package/contracts/registry/IRelease.sol +29 -0
  450. package/contracts/registry/ITransferInterceptor.sol +1 -2
  451. package/contracts/registry/Registry.sol +375 -221
  452. package/contracts/registry/RegistryAdmin.sol +115 -260
  453. package/contracts/registry/RegistryAuthorization.sol +284 -0
  454. package/contracts/registry/RegistryService.sol +42 -67
  455. package/contracts/registry/RegistryServiceManager.sol +5 -5
  456. package/contracts/registry/ReleaseAdmin.sol +195 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +14 -10
  458. package/contracts/registry/ReleaseRegistry.sol +520 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +209 -65
  460. package/contracts/registry/TokenRegistry.sol +14 -15
  461. package/contracts/shared/Component.sol +65 -136
  462. package/contracts/shared/ComponentService.sol +442 -383
  463. package/contracts/shared/ComponentServiceManager.sol +10 -7
  464. package/contracts/shared/ContractLib.sol +311 -0
  465. package/contracts/shared/IComponent.sol +6 -18
  466. package/contracts/shared/IComponentService.sol +50 -41
  467. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  468. package/contracts/shared/ILifecycle.sol +3 -1
  469. package/contracts/shared/INftOwnable.sol +4 -0
  470. package/contracts/shared/IPolicyHolder.sol +12 -22
  471. package/contracts/shared/IRegisterable.sol +22 -1
  472. package/contracts/shared/IService.sol +4 -6
  473. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  474. package/contracts/shared/InstanceLinkedComponent.sol +95 -45
  475. package/contracts/shared/KeyValueStore.sol +2 -2
  476. package/contracts/shared/Lifecycle.sol +30 -9
  477. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  478. package/contracts/shared/NftOwnable.sol +33 -11
  479. package/contracts/shared/PolicyHolder.sol +20 -59
  480. package/contracts/shared/Registerable.sol +52 -21
  481. package/contracts/shared/RegistryLinked.sol +9 -14
  482. package/contracts/shared/Service.sol +22 -38
  483. package/contracts/shared/TokenHandler.sol +310 -26
  484. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  485. package/contracts/staking/IStaking.sol +49 -22
  486. package/contracts/staking/IStakingService.sol +27 -10
  487. package/contracts/staking/Staking.sol +213 -121
  488. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  489. package/contracts/staking/StakingLifecycle.sol +5 -6
  490. package/contracts/staking/StakingManager.sol +10 -12
  491. package/contracts/staking/StakingReader.sol +46 -34
  492. package/contracts/staking/StakingService.sol +96 -39
  493. package/contracts/staking/StakingServiceManager.sol +8 -7
  494. package/contracts/staking/StakingStore.sol +15 -24
  495. package/contracts/staking/TargetManagerLib.sol +8 -4
  496. package/contracts/type/Amount.sol +27 -5
  497. package/contracts/type/Blocknumber.sol +7 -1
  498. package/contracts/type/ClaimId.sol +6 -1
  499. package/contracts/type/Fee.sol +8 -8
  500. package/contracts/type/Key32.sol +2 -2
  501. package/contracts/type/Key32Set.sol +62 -0
  502. package/contracts/type/NftId.sol +7 -0
  503. package/contracts/type/ObjectType.sol +94 -28
  504. package/contracts/type/PayoutId.sol +10 -10
  505. package/contracts/type/Referral.sol +1 -0
  506. package/contracts/type/RiskId.sol +38 -6
  507. package/contracts/type/RoleId.sol +93 -114
  508. package/contracts/type/Seconds.sol +25 -1
  509. package/contracts/type/Selector.sol +5 -0
  510. package/contracts/type/StateId.sol +15 -1
  511. package/contracts/type/String.sol +12 -0
  512. package/contracts/type/Timestamp.sol +10 -5
  513. package/contracts/type/UFixed.sol +61 -125
  514. package/contracts/type/Version.sol +57 -6
  515. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  516. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  517. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  518. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  519. package/package.json +7 -6
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  522. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  524. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  526. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  528. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  529. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  531. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  533. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  534. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  535. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +0 -148
  536. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  537. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1211
  538. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  539. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  540. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  541. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  542. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  544. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  546. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  547. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  548. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  549. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  550. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  552. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  553. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  555. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  556. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  557. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  558. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  562. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  563. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  564. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  569. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  570. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  571. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  572. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  573. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  574. package/contracts/instance/BundleManager.sol +0 -126
  575. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  576. package/contracts/instance/base/ObjectManager.sol +0 -80
  577. package/contracts/instance/module/IAccess.sol +0 -46
  578. package/contracts/product/IProductService.sol +0 -33
  579. package/contracts/product/ProductService.sol +0 -124
  580. package/contracts/product/ProductServiceManager.sol +0 -42
  581. package/contracts/registry/IServiceAuthorization.sol +0 -38
  582. package/contracts/registry/ReleaseManager.sol +0 -523
  583. package/contracts/registry/ServiceAuthorization.sol +0 -90
  584. package/contracts/shared/AccessAdmin.sol +0 -759
  585. package/contracts/shared/AccessManagerCustom.sol +0 -741
  586. package/contracts/shared/AccessManagerExtended.sol +0 -481
  587. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  588. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  589. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  590. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  591. package/contracts/shared/IAccessAdmin.sol +0 -168
  592. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  593. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  594. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -2,41 +2,32 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
-
7
- import {Amount} from "../type/Amount.sol";
8
- import {BundleManager} from "./BundleManager.sol";
9
- import {ChainNft} from "../registry/ChainNft.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {RoleId} from "../type/RoleId.sol";
12
- import {SecondsLib} from "../type/Seconds.sol";
13
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
14
- import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
15
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
16
-
17
- import {Service} from "../shared/Service.sol";
18
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
19
- import {IService} from "../shared/IService.sol";
20
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
21
-
22
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
23
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
24
- import {IProductComponent} from "../product/IProductComponent.sol";
25
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";
26
11
  import {IRegistry} from "../registry/IRegistry.sol";
27
12
  import {IRegistryService} from "../registry/IRegistryService.sol";
28
13
  import {IStakingService} from "../staking/IStakingService.sol";
29
- import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
30
14
 
15
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
16
+ import {Amount} from "../type/Amount.sol";
17
+ import {BundleSet} from "./BundleSet.sol";
31
18
  import {Instance} from "./Instance.sol";
32
- import {IInstance} from "./IInstance.sol";
33
19
  import {InstanceAdmin} from "./InstanceAdmin.sol";
34
- import {IInstanceService} from "./IInstanceService.sol";
35
20
  import {InstanceReader} from "./InstanceReader.sol";
36
21
  import {InstanceStore} from "./InstanceStore.sol";
37
- import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.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";
38
26
  import {Seconds} from "../type/Seconds.sol";
39
- import {VersionPart, VersionPartLib} from "../type/Version.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";
40
31
 
41
32
 
42
33
  contract InstanceService is
@@ -49,132 +40,196 @@ contract InstanceService is
49
40
 
50
41
  IRegistryService internal _registryService;
51
42
  IStakingService internal _stakingService;
43
+ IComponentService internal _componentService;
52
44
 
53
45
  address internal _masterAccessManager;
54
46
  address internal _masterInstanceAdmin;
55
47
  address internal _masterInstance;
56
48
  address internal _masterInstanceReader;
57
- address internal _masterInstanceBundleManager;
49
+ address internal _masterInstanceBundleSet;
50
+ address internal _masterInstanceRiskSet;
58
51
  address internal _masterInstanceStore;
59
52
 
60
53
 
61
- modifier onlyInstance() {
62
- address instanceAddress = msg.sender;
63
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
64
- if (instanceNftId.eqz()) {
65
- revert ErrorInstanceServiceNotRegistered(instanceAddress);
66
- }
54
+ modifier onlyInstance() {
55
+ _checkInstance(msg.sender, getRelease());
56
+ _;
57
+ }
67
58
 
68
- ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
69
- if (objectType != INSTANCE()) {
70
- revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
71
- }
72
59
 
73
- VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
74
- if (instanceVersion != getVersion().toMajorPart()) {
75
- revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
- }
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
77
 
78
- _;
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);
79
87
  }
80
88
 
81
89
 
82
- modifier onlyInstanceOwner(NftId instanceNftId) {
83
- if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
84
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
85
- }
86
- _;
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);
87
98
  }
88
99
 
89
- // TODO check component - service - instance version match
90
- modifier onlyComponent() {
91
- if (! getRegistry().isRegisteredComponent(msg.sender)) {
92
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
93
- }
94
- _;
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);
95
121
  }
96
122
 
97
- function createInstanceClone()
123
+
124
+ /// @inheritdoc IInstanceService
125
+ function authorizeFunctions(
126
+ address target,
127
+ RoleId roleId,
128
+ IAccess.FunctionInfo[] memory functions
129
+ )
98
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()
99
186
  returns (
100
- Instance clonedInstance,
101
- NftId clonedInstanceNftId
187
+ IInstance instance,
188
+ NftId instanceNftId
102
189
  )
103
190
  {
191
+ // tx sender will become instance owner
104
192
  address instanceOwner = msg.sender;
105
- AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
106
- Clones.clone(_masterAccessManager));
107
193
 
108
- // initially grants ADMIN_ROLE to this (being the instance service).
109
- // This will allow the instance service to bootstrap the authorizations of the instance.
110
- // Instance service will renounce ADMIN_ROLE when bootstraping is finished
111
- clonedAccessManager.initialize(address(this));
194
+ // create instance admin and instance
195
+ InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
196
+ instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
112
197
 
113
- clonedInstance = Instance(Clones.clone(_masterInstance));
114
- clonedInstance.initialize(
115
- address(clonedAccessManager),
116
- address(getRegistry()),
117
- instanceOwner);
118
- // initialize and set before instance reader
119
- InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
120
- clonedInstanceStore.initialize(address(clonedInstance));
121
- clonedInstance.setInstanceStore(clonedInstanceStore);
122
-
123
- InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
124
- clonedInstanceReader.initialize(address(clonedInstance));
125
- clonedInstance.setInstanceReader(clonedInstanceReader);
126
-
127
- BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
128
- clonedBundleManager.initialize(address(clonedInstance));
129
- clonedInstance.setBundleManager(clonedBundleManager);
130
-
131
- InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
132
- clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
133
- clonedInstanceAdmin.initialize(address(clonedInstance));
134
- clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
135
-
136
- // TODO amend setters with instance specific , policy manager ...
137
-
138
- // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
139
- InstanceAuthorizationsLib.grantInitialAuthorizations(
140
- clonedAccessManager,
141
- clonedInstanceAdmin,
142
- clonedInstance,
143
- clonedBundleManager,
144
- clonedInstanceStore,
145
- instanceOwner,
146
- getRegistry(),
147
- getVersion().toMajorPart());
198
+ // register cloned instance with registry
199
+ instanceNftId = _registryService.registerInstance(
200
+ instance, instanceOwner).nftId;
148
201
 
149
- clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
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));
150
209
 
151
- // register new instance with registry
152
- IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
153
- clonedInstanceNftId = info.nftId;
210
+ // hard checks for newly cloned instance
211
+ assert(address(instance.getRegistry()) == address(getRegistry()));
212
+ assert(instance.getRelease() == getRelease());
154
213
 
155
- // create corresponding staking target
214
+ // register cloned instance as staking target
156
215
  _stakingService.createInstanceTarget(
157
- clonedInstanceNftId,
216
+ instanceNftId,
158
217
  TargetManagerLib.getDefaultLockingPeriod(),
159
218
  TargetManagerLib.getDefaultRewardRate());
160
219
 
161
- emit LogInstanceCloned(
162
- address(clonedAccessManager),
163
- address(clonedInstanceAdmin),
164
- address(clonedInstance),
165
- address(clonedInstanceStore),
166
- address(clonedBundleManager),
167
- address(clonedInstanceReader),
168
- clonedInstanceNftId);
220
+ emit LogInstanceServiceInstanceCreated(
221
+ instanceNftId,
222
+ address(instance));
169
223
  }
170
224
 
171
225
 
172
226
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
173
227
  external
174
228
  virtual
229
+ restricted()
175
230
  onlyInstance()
176
231
  {
177
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
232
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
178
233
  _stakingService.setInstanceLockingPeriod(
179
234
  instanceNftId,
180
235
  stakeLockingPeriod);
@@ -184,21 +239,35 @@ contract InstanceService is
184
239
  function setStakingRewardRate(UFixed rewardRate)
185
240
  external
186
241
  virtual
242
+ restricted()
187
243
  onlyInstance()
188
244
  {
189
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
245
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
190
246
  _stakingService.setInstanceRewardRate(
191
247
  instanceNftId,
192
248
  rewardRate);
193
249
  }
194
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
+
195
263
 
196
264
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
197
265
  external
198
266
  virtual
267
+ restricted()
199
268
  onlyInstance()
200
269
  {
201
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
270
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
202
271
  _stakingService.refillInstanceRewardReserves(
203
272
  instanceNftId,
204
273
  rewardProvider,
@@ -209,84 +278,84 @@ contract InstanceService is
209
278
  function withdrawStakingRewardReserves(Amount dipAmount)
210
279
  external
211
280
  virtual
281
+ restricted()
212
282
  onlyInstance()
213
283
  returns (Amount newBalance)
214
284
  {
215
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
216
- _stakingService.withdrawInstanceRewardReserves(
285
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
286
+ newBalance = _stakingService.withdrawInstanceRewardReserves(
217
287
  instanceNftId,
218
288
  dipAmount);
219
289
  }
220
290
 
221
291
 
222
- function setComponentLocked(bool locked)
223
- external
292
+ function upgradeInstanceReader()
293
+ external
224
294
  virtual
225
- onlyComponent()
295
+ restricted()
296
+ onlyInstance()
226
297
  {
227
- // checks
228
- address componentAddress = msg.sender;
229
-
230
- if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
231
- revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
232
- }
233
-
234
- IRegistry registry = getRegistry();
235
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
298
+ address instanceAddress = msg.sender;
299
+ IInstance instance = IInstance(msg.sender);
300
+
301
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(
302
+ Clones.clone(address(_masterInstanceReader)));
236
303
 
237
- IInstance instance = IInstance(
238
- registry.getObjectInfo(
239
- instanceNftId).objectAddress);
304
+ upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
305
+ instance.setInstanceReader(upgradedInstanceReaderClone);
240
306
 
241
- // no revert in case already locked
242
- instance.getInstanceAdmin().setTargetLockedByService(
243
- componentAddress,
244
- locked);
307
+ emit LogInstanceServiceInstanceReaderUpgraded(
308
+ getRegistry().getNftIdForAddress(instanceAddress),
309
+ address(upgradedInstanceReaderClone));
245
310
  }
246
311
 
247
312
 
248
- function getMasterInstanceReader() external view returns (address) {
249
- return _masterInstanceReader;
250
- }
251
-
252
313
  function setAndRegisterMasterInstance(address instanceAddress)
253
- external
254
- onlyOwner
255
- returns(NftId masterInstanceNftId)
314
+ external
315
+ virtual
316
+ onlyOwner()
317
+ returns(NftId masterInstanceNftId)
256
318
  {
257
319
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
258
- if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
259
320
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
260
- if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
261
-
321
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
322
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
262
323
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
263
324
 
264
325
  IInstance instance = IInstance(instanceAddress);
326
+ address accessManagerAddress = instance.authority();
265
327
  InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
266
328
  address instanceAdminAddress = address(instanceAdmin);
267
329
  InstanceReader instanceReader = instance.getInstanceReader();
268
330
  address instanceReaderAddress = address(instanceReader);
269
- BundleManager bundleManager = instance.getBundleManager();
270
- address bundleManagerAddress = address(bundleManager);
331
+ BundleSet bundleSet = instance.getBundleSet();
332
+ address bundleSetAddress = address(bundleSet);
333
+ RiskSet riskSet = instance.getRiskSet();
334
+ address riskSetAddress = address(riskSet);
271
335
  InstanceStore instanceStore = instance.getInstanceStore();
272
336
  address instanceStoreAddress = address(instanceStore);
273
337
 
338
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
274
339
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
275
340
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
276
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
341
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
342
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
277
343
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
278
344
 
279
345
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
280
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
346
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
347
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
281
348
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
282
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
349
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
350
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
283
351
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
284
352
 
285
- _masterAccessManager = instance.authority();
353
+ _masterAccessManager = accessManagerAddress;
286
354
  _masterInstanceAdmin = instanceAdminAddress;
287
355
  _masterInstance = instanceAddress;
288
356
  _masterInstanceReader = instanceReaderAddress;
289
- _masterInstanceBundleManager = bundleManagerAddress;
357
+ _masterInstanceBundleSet = bundleSetAddress;
358
+ _masterInstanceRiskSet = riskSetAddress;
290
359
  _masterInstanceStore = instanceStoreAddress;
291
360
 
292
361
  IInstance masterInstance = IInstance(_masterInstance);
@@ -294,7 +363,12 @@ contract InstanceService is
294
363
  masterInstanceNftId = info.nftId;
295
364
  }
296
365
 
297
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
366
+
367
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
368
+ external
369
+ virtual
370
+ onlyOwner
371
+ {
298
372
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
299
373
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
300
374
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -303,135 +377,121 @@ contract InstanceService is
303
377
  if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
304
378
 
305
379
  _masterInstanceReader = instanceReaderAddress;
306
- }
307
380
 
308
- function upgradeInstanceReader(NftId instanceNftId)
309
- external
310
- onlyInstanceOwner(instanceNftId)
311
- {
312
- IRegistry registry = getRegistry();
313
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
314
- Instance instance = Instance(instanceInfo.objectAddress);
315
-
316
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
317
- upgradedInstanceReaderClone.initialize(address(instance));
318
- instance.setInstanceReader(upgradedInstanceReaderClone);
381
+ emit LogInstanceServiceMasterInstanceReaderUpgraded(
382
+ getRegistry().getNftIdForAddress(_masterInstance),
383
+ instanceReaderAddress);
319
384
  }
320
385
 
321
-
322
- function createGifTarget(
323
- NftId instanceNftId,
324
- address targetAddress,
325
- string memory targetName,
326
- bytes4[][] memory selectors,
327
- RoleId[] memory roles
328
- )
329
- external
330
- virtual
331
- restricted()
332
- {
333
- _createGifTarget(
334
- instanceNftId,
335
- targetAddress,
336
- targetName,
337
- roles,
338
- selectors
339
- );
386
+ function getMasterInstanceReader() external virtual view returns (address) {
387
+ return _masterInstanceReader;
340
388
  }
341
389
 
390
+ //--- internal functions --------------------------------------------------------//
342
391
 
343
- function createComponentTarget(
344
- NftId instanceNftId,
345
- address targetAddress,
346
- string memory targetName,
347
- bytes4[][] memory selectors,
348
- RoleId[] memory roles
349
- )
350
- external
392
+ /// @dev create new cloned instance admin
393
+ /// function used to setup a new instance
394
+ function _cloneNewInstanceAdmin()
395
+ internal
351
396
  virtual
352
- restricted()
397
+ returns (InstanceAdmin clonedAdmin)
353
398
  {
354
- _createGifTarget(
355
- instanceNftId,
356
- targetAddress,
357
- targetName,
358
- roles,
359
- selectors
360
- );
399
+ // clone instance specific access manager
400
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
401
+ Clones.clone(
402
+ InstanceAdmin(_masterInstanceAdmin).authority()));
403
+
404
+ // set up the instance admin
405
+ clonedAdmin = InstanceAdmin(
406
+ Clones.clone(_masterInstanceAdmin));
407
+
408
+ clonedAdmin.initialize(
409
+ address(clonedAccessManager),
410
+ "InstanceAdmin");
361
411
  }
362
412
 
363
413
 
364
- /// all gif targets MUST be children of instanceNftId
365
- function _createGifTarget(
366
- NftId instanceNftId,
367
- address targetAddress,
368
- string memory targetName,
369
- RoleId[] memory roles,
370
- bytes4[][] memory selectors
414
+ /// @dev create new cloned instance
415
+ /// function used to setup a new instance
416
+ function _createInstance(
417
+ InstanceAdmin instanceAdmin,
418
+ address instanceOwner,
419
+ bool allowAnyToken
371
420
  )
372
421
  internal
373
422
  virtual
423
+ returns (IInstance)
374
424
  {
375
- // TODO instanceAdmin will check target instance match anyway
376
- (
377
- IInstance instance, // or instanceInfo
378
- // or targetInfo
379
- ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
425
+ // clone instance
426
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
427
+ clonedInstance.initialize(
428
+ instanceAdmin,
429
+ InstanceStore(Clones.clone(address(_masterInstanceStore))),
430
+ BundleSet(Clones.clone(_masterInstanceBundleSet)),
431
+ RiskSet(Clones.clone(_masterInstanceRiskSet)),
432
+ InstanceReader(Clones.clone(address(_masterInstanceReader))),
433
+ getRegistry(),
434
+ getRelease(),
435
+ instanceOwner,
436
+ allowAnyToken);
380
437
 
381
- InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
382
- instanceAdmin.createGifTarget(targetAddress, targetName);
383
- // set proposed target config
384
- // TODO restriction: gif targets are set only once and only here?
385
- // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
386
- for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
387
- instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
388
- }
438
+ return clonedInstance;
389
439
  }
390
-
391
- /// @dev top level initializer
440
+
441
+
442
+ /// @dev top level initializer (upgradable contract)
392
443
  function _initialize(
393
444
  address owner,
394
445
  bytes memory data
395
446
  )
396
447
  internal
397
- initializer
398
448
  virtual override
449
+ initializer()
399
450
  {
400
451
  (
401
- address registryAddress,,
402
- //address managerAddress
403
- address authority
404
- ) = abi.decode(data, (address, address, address));
452
+ address authority,
453
+ address registry
454
+ ) = abi.decode(data, (address, address));
405
455
 
406
- initializeService(registryAddress, authority, owner);
456
+ __Service_init(authority, registry, owner);
407
457
 
408
458
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
409
459
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
460
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
410
461
 
411
- registerInterface(type(IInstanceService).interfaceId);
462
+ _registerInterface(type(IInstanceService).interfaceId);
412
463
  }
413
464
 
414
465
 
415
- function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
466
+ function _checkInstance(
467
+ address instanceAddress,
468
+ VersionPart expectedRelease
469
+ )
416
470
  internal
471
+ virtual
417
472
  view
418
- returns (IInstance instance, NftId componentNftId)
419
473
  {
420
474
  IRegistry registry = getRegistry();
421
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
422
- if(instanceInfo.objectType != INSTANCE()) {
423
- revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
475
+
476
+ NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
477
+ if (instanceNftId.eqz()) {
478
+ revert ErrorInstanceServiceNotRegistered(instanceAddress);
424
479
  }
425
480
 
426
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
427
- if(componentInfo.parentNftId != instanceNftId) {
428
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
481
+ ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
482
+ if (objectType != INSTANCE()) {
483
+ revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
429
484
  }
430
485
 
431
- instance = Instance(instanceInfo.objectAddress);
432
- componentNftId = componentInfo.nftId;
486
+ if (expectedRelease.gtz()) {
487
+ VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
488
+ if (instanceRelease != expectedRelease) {
489
+ revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
490
+ }
491
+ }
433
492
  }
434
493
 
494
+
435
495
  // From IService
436
496
  function _getDomain() internal pure override returns(ObjectType) {
437
497
  return INSTANCE();