@etherisc/gif-next 0.0.2-b2e620f-736 → 0.0.2-b37fa8b-169

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 (482) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  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 +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +66 -144
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -132
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +128 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +342 -183
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +429 -35
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +345 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +473 -98
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +805 -448
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +246 -70
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +656 -418
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -64
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +524 -1520
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +91 -41
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +224 -210
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -141
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
  232. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  270. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  271. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -229
  274. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -70
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
  286. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  289. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  295. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  297. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  299. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  301. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  303. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  305. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  307. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  311. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  313. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  315. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  317. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +9 -4
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  330. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  332. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  334. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  336. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  338. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  340. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  342. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  344. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  346. package/contracts/accounting/AccountingService.sol +15 -3
  347. package/contracts/accounting/IAccountingService.sol +4 -2
  348. package/contracts/authorization/AccessAdmin.sol +389 -298
  349. package/contracts/authorization/AccessAdminLib.sol +396 -0
  350. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  351. package/contracts/authorization/Authorization.sol +60 -228
  352. package/contracts/authorization/IAccess.sol +25 -7
  353. package/contracts/authorization/IAccessAdmin.sol +81 -80
  354. package/contracts/authorization/IAuthorization.sol +3 -51
  355. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  356. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  357. package/contracts/distribution/BasicDistribution.sol +13 -11
  358. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  359. package/contracts/distribution/Distribution.sol +20 -60
  360. package/contracts/distribution/DistributionService.sol +165 -74
  361. package/contracts/distribution/IDistributionComponent.sol +3 -10
  362. package/contracts/distribution/IDistributionService.sol +34 -19
  363. package/contracts/examples/fire/FirePool.sol +0 -4
  364. package/contracts/examples/fire/FireProduct.sol +7 -12
  365. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  367. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +87 -27
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BaseStore.sol +93 -0
  371. package/contracts/instance/IBaseStore.sol +37 -0
  372. package/contracts/instance/IInstance.sol +99 -14
  373. package/contracts/instance/IInstanceService.sol +54 -7
  374. package/contracts/instance/Instance.sol +166 -70
  375. package/contracts/instance/InstanceAdmin.sol +227 -296
  376. package/contracts/instance/InstanceAuthorizationV3.sol +121 -60
  377. package/contracts/instance/InstanceReader.sol +378 -373
  378. package/contracts/instance/InstanceService.sol +283 -173
  379. package/contracts/instance/InstanceStore.sol +9 -82
  380. package/contracts/instance/ProductStore.sol +235 -0
  381. package/contracts/instance/RiskSet.sol +10 -2
  382. package/contracts/instance/TargetNames.sol +10 -0
  383. package/contracts/instance/base/BalanceStore.sol +4 -6
  384. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  385. package/contracts/instance/module/IBundle.sol +6 -5
  386. package/contracts/instance/module/IComponents.sol +16 -5
  387. package/contracts/instance/module/IDistribution.sol +21 -8
  388. package/contracts/instance/module/IPolicy.sol +28 -8
  389. package/contracts/instance/module/IRisk.sol +2 -0
  390. package/contracts/oracle/BasicOracle.sol +2 -4
  391. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  392. package/contracts/oracle/IOracle.sol +9 -4
  393. package/contracts/oracle/Oracle.sol +2 -4
  394. package/contracts/oracle/OracleService.sol +8 -8
  395. package/contracts/pool/BasicPool.sol +3 -16
  396. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  397. package/contracts/pool/BundleService.sol +34 -43
  398. package/contracts/pool/IBundleService.sol +14 -13
  399. package/contracts/pool/IPoolService.sol +7 -2
  400. package/contracts/pool/Pool.sol +4 -16
  401. package/contracts/pool/PoolLib.sol +127 -2
  402. package/contracts/pool/PoolService.sol +41 -184
  403. package/contracts/product/ApplicationService.sol +85 -17
  404. package/contracts/product/BasicProduct.sol +1 -3
  405. package/contracts/product/BasicProductAuthorization.sol +11 -4
  406. package/contracts/product/ClaimService.sol +99 -105
  407. package/contracts/product/IApplicationService.sol +24 -2
  408. package/contracts/product/IClaimService.sol +5 -4
  409. package/contracts/product/IPolicyService.sol +9 -2
  410. package/contracts/product/IPricingService.sol +1 -0
  411. package/contracts/product/IRiskService.sol +25 -10
  412. package/contracts/product/PolicyService.sol +41 -103
  413. package/contracts/product/PolicyServiceLib.sol +79 -5
  414. package/contracts/product/PricingService.sol +33 -31
  415. package/contracts/product/Product.sol +44 -29
  416. package/contracts/product/RiskService.sol +63 -18
  417. package/contracts/registry/IRegistry.sol +15 -9
  418. package/contracts/registry/IRelease.sol +6 -3
  419. package/contracts/registry/Registry.sol +15 -9
  420. package/contracts/registry/RegistryAdmin.sol +100 -263
  421. package/contracts/registry/RegistryAuthorization.sol +336 -0
  422. package/contracts/registry/RegistryService.sol +1 -1
  423. package/contracts/registry/ReleaseAdmin.sol +62 -112
  424. package/contracts/registry/ReleaseRegistry.sol +57 -43
  425. package/contracts/registry/ServiceAuthorizationV3.sol +48 -32
  426. package/contracts/registry/TokenRegistry.sol +56 -52
  427. package/contracts/shared/Component.sol +17 -29
  428. package/contracts/shared/ComponentService.sol +249 -238
  429. package/contracts/shared/ContractLib.sol +134 -75
  430. package/contracts/shared/IComponent.sol +1 -4
  431. package/contracts/shared/IComponentService.sol +21 -19
  432. package/contracts/shared/IKeyValueStore.sol +9 -1
  433. package/contracts/shared/INftOwnable.sol +2 -0
  434. package/contracts/shared/IRegisterable.sol +0 -1
  435. package/contracts/shared/InitializableERC165.sol +9 -1
  436. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  437. package/contracts/shared/KeyValueStore.sol +3 -3
  438. package/contracts/shared/NftOwnable.sol +4 -2
  439. package/contracts/shared/PolicyHolder.sol +3 -2
  440. package/contracts/shared/Registerable.sol +1 -4
  441. package/contracts/shared/Service.sol +6 -4
  442. package/contracts/shared/TokenHandler.sol +5 -4
  443. package/contracts/staking/IStaking.sol +266 -64
  444. package/contracts/staking/IStakingService.sol +44 -82
  445. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  446. package/contracts/staking/Staking.sol +474 -202
  447. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  448. package/contracts/staking/StakingManager.sol +4 -3
  449. package/contracts/staking/StakingReader.sol +58 -77
  450. package/contracts/staking/StakingService.sol +49 -158
  451. package/contracts/staking/StakingServiceManager.sol +1 -0
  452. package/contracts/staking/StakingStore.sol +1093 -330
  453. package/contracts/staking/TargetHandler.sol +132 -0
  454. package/contracts/staking/TargetManagerLib.sol +69 -46
  455. package/contracts/type/Amount.sol +4 -0
  456. package/contracts/type/Blocknumber.sol +15 -15
  457. package/contracts/type/ChainId.sol +101 -0
  458. package/contracts/type/Fee.sol +8 -8
  459. package/contracts/type/NftId.sol +3 -3
  460. package/contracts/type/ObjectType.sol +21 -17
  461. package/contracts/type/RiskId.sol +4 -3
  462. package/contracts/type/RoleId.sol +57 -59
  463. package/contracts/type/Seconds.sol +19 -0
  464. package/contracts/type/String.sol +12 -0
  465. package/contracts/type/Timestamp.sol +4 -2
  466. package/contracts/type/UFixed.sol +28 -10
  467. package/contracts/type/Version.sol +39 -0
  468. package/contracts/upgradeability/IVersionable.sol +3 -0
  469. package/contracts/upgradeability/ProxyManager.sol +25 -11
  470. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  471. package/contracts/upgradeability/Versionable.sol +6 -3
  472. package/package.json +2 -2
  473. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  474. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  475. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  477. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  478. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  479. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  480. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  481. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  482. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ILifecycle} from "../shared/ILifecycle.sol";
5
+
6
+ import {Blocknumber} from "../type/Blocknumber.sol";
7
+ import {Key32, KeyId} from "../type/Key32.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {StateId} from "../type/StateId.sol";
10
+
11
+
12
+ interface IBaseStore is ILifecycle {
13
+
14
+ error ErrorBaseStoreTypeUndefined(ObjectType objectType);
15
+ error ErrorBaseStoreAlreadyCreated(Key32 key, ObjectType objectType);
16
+ error ErrorBaseStoreNoLifecycle(ObjectType objectType);
17
+ error ErrorBaseStoreStateZero(Key32 key);
18
+ error ErrorBaseStoreNotExisting(Key32 key);
19
+
20
+
21
+ struct Metadata {
22
+ // slot 0
23
+ ObjectType objectType;
24
+ StateId state;
25
+ Blocknumber updatedIn;
26
+ }
27
+
28
+ /// @dev check if a metadata entry with the key exists
29
+ function exists(Key32 key) external view returns (bool);
30
+ /// @dev retrieve the metadata for a given key
31
+ function getMetadata(Key32 key) external view returns (Metadata memory metadata);
32
+ /// @dev retrieve the state for a given key
33
+ function getState(Key32 key) external view returns (StateId state);
34
+
35
+ /// @dev convert an object type and an id to a key32
36
+ function toKey32(ObjectType objectType, KeyId id) external pure returns(Key32);
37
+ }
@@ -1,14 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegisterable} from "../shared/IRegisterable.sol";
6
+
4
7
  import {Amount} from "../type/Amount.sol";
5
8
  import {BundleSet} from "./BundleSet.sol";
6
9
  import {RiskSet} from "./RiskSet.sol";
7
10
  import {InstanceAdmin} from "./InstanceAdmin.sol";
8
11
  import {InstanceReader} from "./InstanceReader.sol";
9
12
  import {InstanceStore} from "./InstanceStore.sol";
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
13
  import {NftId} from "../type/NftId.sol";
14
+ import {ProductStore} from "./ProductStore.sol";
12
15
  import {RoleId} from "../type/RoleId.sol";
13
16
  import {Seconds} from "../type/Seconds.sol";
14
17
  import {UFixed} from "../type/UFixed.sol";
@@ -17,8 +20,23 @@ import {UFixed} from "../type/UFixed.sol";
17
20
  interface IInstance is
18
21
  IRegisterable
19
22
  {
23
+ // role handling
24
+ event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
25
+ event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
26
+ event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
27
+ event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
28
+
29
+ // target handling
30
+ event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
31
+ event LogInstanceTargetLocked(address target, bool locked);
32
+ event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
33
+
34
+ // modifier is onlyRoleAdmin
35
+ error ErrorInstanceNotCustomRole(RoleId roleId);
36
+ error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
37
+
20
38
  error ErrorInstanceInstanceAdminZero();
21
- error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
39
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
22
40
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
23
41
 
24
42
  error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
@@ -34,33 +52,98 @@ interface IInstance is
34
52
  error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
35
53
  error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
36
54
 
55
+ struct InstanceContracts {
56
+ InstanceAdmin instanceAdmin;
57
+ InstanceStore instanceStore;
58
+ ProductStore productStore;
59
+ BundleSet bundleSet;
60
+ RiskSet riskSet;
61
+ InstanceReader instanceReader;
62
+ }
63
+
37
64
  struct InstanceInfo {
38
65
  uint64 requestsCount;
39
66
  }
40
67
 
41
- /// @dev Register a product with the instance.
42
- function registerProduct(address product) external returns (NftId productNftId);
68
+ ///--- instance ---------------------------------------------------------//
43
69
 
44
- function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
45
- function grantRole(RoleId roleId, address account) external;
46
- function revokeRole(RoleId roleId, address account) external;
70
+ /// @dev Locks/unlocks the complete instance, including all its components.
71
+ function setInstanceLocked(bool locked) external;
72
+
73
+ /// @dev Upgrades the instance reader to the specified target.
74
+ function upgradeInstanceReader() external;
75
+
76
+ /// @dev Sets the instance reader for the instance.
77
+ /// Permissioned: only the instance service may call this function.
78
+ function setInstanceReader(InstanceReader instanceReader) external;
47
79
 
48
- function createTarget(address target, string memory name) external;
49
- function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
50
- function setLocked(address target, bool locked) external;
51
- function setLockedFromService(address target, bool locked) external;
80
+ ///--- staking ----------------------------------------------------------//
52
81
 
82
+ /// @dev Sets the duration for locking new stakes on this instance..
53
83
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
84
+
85
+ /// @dev Sets the staking reward rate [apr] for this instance.
54
86
  function setStakingRewardRate(UFixed rewardRate) external;
55
- function refillStakingRewardReserves(Amount dipAmount) external;
87
+
88
+ /// @dev Sets the maximum staked amount for this instance.
89
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
90
+
91
+ /// @dev Refills the staking reward reserves for the specified target.
92
+ function refillStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
56
93
 
57
94
  /// @dev Defunds the staking reward reserves for the specified target.
58
- /// Permissioned: only the target owner may call this function.
59
95
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
60
96
 
97
+ ///--- product/component ------------------------------------------------//
98
+
99
+ /// @dev Locks/unlocks the specified target.
100
+ function setTargetLocked(address target, bool locked) external;
101
+
102
+ /// @dev Register a product with the instance.
103
+ function registerProduct(address product, address token) external returns (NftId productNftId);
104
+
105
+ ///--- authz ------------------------------------------------------------//
106
+
107
+ /// @dev Creates a new custom role for the calling instance.
108
+ /// Custom roles are intended to be used for access control of custom components and its helper contracts.
109
+ /// Custom roles are not intended to be used as target roles for custom contracts.
110
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
111
+
112
+ /// @dev Activates/deactivates the specified role.
113
+ /// Only instance owner or account with role admin role can call this function.
114
+ function setRoleActive(RoleId roleId, bool active) external;
115
+
116
+ /// @dev Grants the specified role to the account.
117
+ /// Only active roles can be granted.
118
+ /// Only instance owner or account with role admin role can call this function.
119
+ function grantRole(RoleId roleId, address account) external;
120
+
121
+ /// @dev Revokes the specified role from the account.
122
+ /// Only instance owner or account with role admin role can call this function.
123
+ function revokeRole(RoleId roleId, address account) external;
124
+
125
+ /// @dev Creates a new custom target.
126
+ /// Custom targets are intended to be used for access control helper contracts of components.
127
+ /// Custom targets are not intended to be used for components.
128
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
129
+
130
+ /// @dev Authorizes the specified functions for the target and provided role.
131
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
132
+
133
+ /// @dev Removes any role authorization for the specified functions.
134
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
135
+
136
+ //--- getters -----------------------------------------------------------//
137
+
138
+ /// @dev returns the overall locking state of the instance (including all components)
139
+ function isInstanceLocked() external view returns (bool isLocked);
140
+
141
+ /// @dev returns the locking state of the specified target
142
+ function isTargetLocked(address target) external view returns (bool isLocked);
143
+
61
144
  // get products
62
145
  function products() external view returns (uint256 productCount);
63
- function getProductNftid(uint256 idx) external view returns (NftId productNftId);
146
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
64
147
 
65
148
  // get supporting contracts
66
149
  function getInstanceReader() external view returns (InstanceReader);
@@ -68,4 +151,6 @@ interface IInstance is
68
151
  function getRiskSet() external view returns (RiskSet);
69
152
  function getInstanceAdmin() external view returns (InstanceAdmin);
70
153
  function getInstanceStore() external view returns (InstanceStore);
154
+ function getProductStore() external view returns (ProductStore);
155
+ function isTokenRegistryDisabled() external view returns (bool);
71
156
  }
@@ -1,11 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
5
  import {IInstance} from "./IInstance.sol";
6
6
  import {IService} from "../shared/IService.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
7
9
  import {NftId} from "../type/NftId.sol";
8
10
  import {ObjectType} from "../type/ObjectType.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
9
12
  import {Seconds} from "../type/Seconds.sol";
10
13
  import {UFixed} from "../type/UFixed.sol";
11
14
  import {VersionPart} from "../type/Version.sol";
@@ -15,7 +18,7 @@ interface IInstanceService is IService {
15
18
  // onlyInstance
16
19
  error ErrorInstanceServiceNotRegistered(address instance);
17
20
  error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
18
- error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
19
22
 
20
23
  error ErrorInstanceServiceComponentNotInstanceLinked(address component);
21
24
 
@@ -36,6 +39,7 @@ interface IInstanceService is IService {
36
39
  error ErrorInstanceServiceBundleSetZero();
37
40
  error ErrorInstanceServiceRiskSetZero();
38
41
  error ErrorInstanceServiceInstanceStoreZero();
42
+ error ErrorInstanceServiceProductStoreZero();
39
43
 
40
44
  error ErrorInstanceServiceInstanceAuthorityMismatch();
41
45
  error ErrorInstanceServiceBundleSetAuthorityMismatch();
@@ -44,6 +48,7 @@ interface IInstanceService is IService {
44
48
  error ErrorInstanceServiceBundleSetInstanceMismatch();
45
49
  error ErrorInstanceServiceRiskSetInstanceMismatch();
46
50
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
51
+ error ErrorInstanceServiceProductStoreAuthorityMismatch();
47
52
 
48
53
  error ErrorInstanceServiceRequestUnauhorized(address caller);
49
54
  error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
@@ -51,22 +56,64 @@ interface IInstanceService is IService {
51
56
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
52
57
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
53
58
 
54
- event LogInstanceCloned(NftId instanceNftId, address instance);
59
+ event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
60
+ event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
61
+ event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
62
+ event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
63
+
64
+ /// @dev Creates a new custom role for the calling instance.
65
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
66
+
67
+ /// @dev Sets the specified custom role as active or inactive for the calling instance.
68
+ function setRoleActive(RoleId roleId, bool active) external;
69
+
70
+ /// @dev Grants the specified custom role to the specified account for the calling instance.
71
+ function grantRole(RoleId roleId, address account) external;
72
+
73
+ /// @dev Revokes the specified custom role from the specified account for the calling instance.
74
+ function revokeRole(RoleId roleId, address account) external;
55
75
 
56
- function createInstance()
76
+ /// @dev Creates a new custom target for the calling instance.
77
+ /// All custom trargets are created with a corresponding contract role.
78
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
79
+
80
+ /// @dev Authorizes the specified functions for the specified target.
81
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
82
+
83
+ /// @dev Removes any role authorization for the specified functions.
84
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
85
+
86
+ /// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
87
+ function setTargetLocked(address target, bool locked) external;
88
+
89
+ /// @dev Locks the complete instance, including all its components.
90
+ function setInstanceLocked(bool locked) external;
91
+
92
+ /// @dev Creates a new instance.
93
+ /// The caller becomes the owner of the new instance.
94
+ /// Creation of a new instance is achieved by this service through the creation and registration
95
+ /// of a new clone of the master instance and then setting up the initial wiring and authorization
96
+ /// of the necessary components.
97
+ /// @param allowAnyToken specifies whether the new instance is allowed to use any token or
98
+ /// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
99
+ /// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
100
+ /// use of such instances **is not supported** by Etherisc.
101
+ function createInstance(bool allowAnyToken)
57
102
  external
58
103
  returns (
59
104
  IInstance instance,
60
105
  NftId instanceNftId
61
106
  );
62
107
 
63
- function upgradeInstanceReader(NftId instanceNftId) external;
108
+ function upgradeInstanceReader() external;
64
109
  function upgradeMasterInstanceReader(address instanceReaderAddress) external;
65
110
 
66
111
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
67
112
  function setStakingRewardRate(UFixed rewardRate) external;
68
- function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
113
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
114
+
115
+ function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
69
116
 
70
117
  /// @dev Defunds the staking reward reserves for the specified target.
71
- function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
118
+ function withdrawInstanceRewardReserves(Amount dipAmount) external returns (Amount newBalance);
72
119
  }