@etherisc/gif-next 0.0.2-f08528a-758 → 0.0.2-f0ccf08-591

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 (560) hide show
  1. package/README.md +113 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +365 -113
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +680 -264
  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 +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  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 +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +198 -478
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +120 -381
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +587 -316
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +205 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +123 -194
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +347 -90
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +546 -71
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +292 -59
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +556 -173
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1042 -314
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +370 -69
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1685 -774
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +305 -229
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -728
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +48 -7
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +117 -136
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +175 -421
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +387 -228
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +183 -105
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +705 -552
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +188 -180
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +122 -100
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +276 -435
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -229
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +155 -109
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +226 -335
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -138
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +268 -427
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +378 -30
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +604 -87
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +801 -395
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +538 -538
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +153 -121
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -252
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  275. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/Staking.sol/Staking.json +292 -393
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +213 -153
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  344. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  351. package/contracts/accounting/AccountingService.sol +261 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +45 -0
  354. package/contracts/authorization/AccessAdmin.sol +458 -266
  355. package/contracts/authorization/AccessAdminLib.sol +396 -0
  356. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  357. package/contracts/authorization/Authorization.sol +159 -203
  358. package/contracts/authorization/IAccess.sol +25 -6
  359. package/contracts/authorization/IAccessAdmin.sol +87 -79
  360. package/contracts/authorization/IAuthorization.sol +9 -36
  361. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  362. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  363. package/contracts/distribution/BasicDistribution.sol +20 -28
  364. package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
  365. package/contracts/distribution/Distribution.sol +43 -81
  366. package/contracts/distribution/DistributionService.sol +260 -129
  367. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  368. package/contracts/distribution/IDistributionComponent.sol +11 -14
  369. package/contracts/distribution/IDistributionService.sol +50 -26
  370. package/contracts/examples/fire/DamageLevel.sol +59 -0
  371. package/contracts/examples/fire/FirePool.sol +86 -0
  372. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  373. package/contracts/examples/fire/FireProduct.sol +433 -0
  374. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  375. package/contracts/examples/fire/FireUSD.sol +26 -0
  376. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  377. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  379. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  380. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  382. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  383. package/contracts/instance/BundleSet.sol +130 -0
  384. package/contracts/instance/IInstance.sol +105 -46
  385. package/contracts/instance/IInstanceService.sol +55 -34
  386. package/contracts/instance/Instance.sol +189 -98
  387. package/contracts/instance/InstanceAdmin.sol +276 -159
  388. package/contracts/instance/InstanceAuthorizationV3.sol +127 -64
  389. package/contracts/instance/InstanceReader.sol +478 -251
  390. package/contracts/instance/InstanceService.sol +299 -231
  391. package/contracts/instance/InstanceServiceManager.sol +8 -13
  392. package/contracts/instance/InstanceStore.sol +24 -2
  393. package/contracts/instance/RiskSet.sol +118 -0
  394. package/contracts/instance/base/BalanceStore.sol +3 -5
  395. package/contracts/instance/base/ObjectCounter.sol +1 -2
  396. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  397. package/contracts/instance/base/ObjectSet.sol +77 -0
  398. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  399. package/contracts/instance/module/IBundle.sol +6 -5
  400. package/contracts/instance/module/IComponents.sol +30 -20
  401. package/contracts/instance/module/IDistribution.sol +21 -9
  402. package/contracts/instance/module/IPolicy.sol +50 -29
  403. package/contracts/instance/module/IRisk.sol +5 -0
  404. package/contracts/mock/Dip.sol +1 -1
  405. package/contracts/oracle/BasicOracle.sol +1 -4
  406. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  407. package/contracts/oracle/IOracle.sol +9 -4
  408. package/contracts/oracle/IOracleComponent.sol +2 -1
  409. package/contracts/oracle/IOracleService.sol +2 -1
  410. package/contracts/oracle/Oracle.sol +21 -24
  411. package/contracts/oracle/OracleService.sol +117 -85
  412. package/contracts/oracle/OracleServiceManager.sol +8 -11
  413. package/contracts/pool/BasicPool.sol +37 -28
  414. package/contracts/pool/BasicPoolAuthorization.sol +42 -9
  415. package/contracts/pool/BundleService.sol +209 -109
  416. package/contracts/pool/BundleServiceManager.sol +8 -11
  417. package/contracts/pool/IBundleService.sol +31 -22
  418. package/contracts/pool/IPoolComponent.sol +20 -10
  419. package/contracts/pool/IPoolService.sol +90 -75
  420. package/contracts/pool/Pool.sol +145 -113
  421. package/contracts/pool/PoolLib.sol +353 -0
  422. package/contracts/pool/PoolService.sol +391 -256
  423. package/contracts/pool/PoolServiceManager.sol +6 -9
  424. package/contracts/product/ApplicationService.sol +127 -81
  425. package/contracts/product/ApplicationServiceManager.sol +6 -6
  426. package/contracts/product/BasicProduct.sol +12 -45
  427. package/contracts/product/BasicProductAuthorization.sol +31 -10
  428. package/contracts/product/ClaimService.sol +368 -179
  429. package/contracts/product/ClaimServiceManager.sol +6 -6
  430. package/contracts/product/IApplicationService.sol +9 -2
  431. package/contracts/product/IClaimService.sol +44 -8
  432. package/contracts/product/IPolicyService.sol +53 -36
  433. package/contracts/product/IPricingService.sol +11 -10
  434. package/contracts/product/IProductComponent.sol +28 -5
  435. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  436. package/contracts/product/PolicyService.sol +436 -271
  437. package/contracts/product/PolicyServiceLib.sol +139 -0
  438. package/contracts/product/PolicyServiceManager.sol +6 -9
  439. package/contracts/product/PricingService.sol +75 -65
  440. package/contracts/product/PricingServiceManager.sol +6 -9
  441. package/contracts/product/Product.sol +168 -93
  442. package/contracts/product/RiskService.sol +154 -0
  443. package/contracts/product/RiskServiceManager.sol +39 -0
  444. package/contracts/registry/ChainNft.sol +72 -40
  445. package/contracts/registry/IRegistry.sol +78 -29
  446. package/contracts/registry/IRegistryService.sol +3 -10
  447. package/contracts/registry/IRelease.sol +29 -0
  448. package/contracts/registry/ITransferInterceptor.sol +1 -2
  449. package/contracts/registry/Registry.sol +368 -216
  450. package/contracts/registry/RegistryAdmin.sol +112 -289
  451. package/contracts/registry/RegistryAuthorization.sol +277 -0
  452. package/contracts/registry/RegistryService.sol +41 -66
  453. package/contracts/registry/RegistryServiceManager.sol +5 -5
  454. package/contracts/registry/ReleaseAdmin.sol +195 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  456. package/contracts/registry/ReleaseRegistry.sol +520 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +201 -57
  458. package/contracts/registry/TokenRegistry.sol +14 -15
  459. package/contracts/shared/Component.sol +65 -136
  460. package/contracts/shared/ComponentService.sol +440 -343
  461. package/contracts/shared/ComponentServiceManager.sol +10 -7
  462. package/contracts/shared/ContractLib.sol +311 -0
  463. package/contracts/shared/IComponent.sol +5 -17
  464. package/contracts/shared/IComponentService.sol +49 -41
  465. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  466. package/contracts/shared/ILifecycle.sol +3 -1
  467. package/contracts/shared/INftOwnable.sol +2 -0
  468. package/contracts/shared/IPolicyHolder.sol +12 -22
  469. package/contracts/shared/IRegisterable.sol +22 -1
  470. package/contracts/shared/IService.sol +4 -6
  471. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  472. package/contracts/shared/InstanceLinkedComponent.sol +80 -37
  473. package/contracts/shared/KeyValueStore.sol +1 -1
  474. package/contracts/shared/Lifecycle.sol +15 -4
  475. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  476. package/contracts/shared/NftOwnable.sol +31 -11
  477. package/contracts/shared/PolicyHolder.sol +17 -57
  478. package/contracts/shared/Registerable.sol +52 -21
  479. package/contracts/shared/RegistryLinked.sol +9 -14
  480. package/contracts/shared/Service.sol +22 -38
  481. package/contracts/shared/TokenHandler.sol +310 -26
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  483. package/contracts/staking/IStaking.sol +26 -15
  484. package/contracts/staking/IStakingService.sol +31 -9
  485. package/contracts/staking/Staking.sol +122 -90
  486. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  487. package/contracts/staking/StakingManager.sol +10 -12
  488. package/contracts/staking/StakingReader.sol +26 -33
  489. package/contracts/staking/StakingService.sol +93 -37
  490. package/contracts/staking/StakingServiceManager.sol +8 -7
  491. package/contracts/staking/StakingStore.sol +14 -23
  492. package/contracts/staking/TargetManagerLib.sol +8 -4
  493. package/contracts/type/Amount.sol +27 -5
  494. package/contracts/type/Blocknumber.sol +7 -1
  495. package/contracts/type/ClaimId.sol +6 -1
  496. package/contracts/type/Fee.sol +8 -8
  497. package/contracts/type/Key32.sol +2 -2
  498. package/contracts/type/Key32Set.sol +62 -0
  499. package/contracts/type/NftId.sol +7 -0
  500. package/contracts/type/ObjectType.sol +76 -44
  501. package/contracts/type/PayoutId.sol +10 -10
  502. package/contracts/type/Referral.sol +1 -0
  503. package/contracts/type/RiskId.sol +38 -6
  504. package/contracts/type/RoleId.sol +61 -55
  505. package/contracts/type/Seconds.sol +21 -1
  506. package/contracts/type/Selector.sol +5 -0
  507. package/contracts/type/StateId.sol +15 -1
  508. package/contracts/type/String.sol +12 -0
  509. package/contracts/type/Timestamp.sol +10 -5
  510. package/contracts/type/UFixed.sol +56 -126
  511. package/contracts/type/Version.sol +57 -6
  512. package/contracts/{shared → upgradeability}/ProxyManager.sol +84 -49
  513. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  514. package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
  515. package/package.json +7 -6
  516. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  517. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  518. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  519. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  522. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  524. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  526. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  527. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  528. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  529. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  531. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  532. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  533. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  534. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  535. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  536. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  537. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  539. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  540. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  541. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  542. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  543. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  544. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  545. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  546. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  547. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  548. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  549. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  550. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  551. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  552. package/contracts/instance/BundleManager.sol +0 -126
  553. package/contracts/instance/base/ObjectManager.sol +0 -79
  554. package/contracts/instance/module/IAccess.sol +0 -46
  555. package/contracts/product/ProductService.sol +0 -124
  556. package/contracts/product/ProductServiceManager.sol +0 -42
  557. package/contracts/registry/ReleaseManager.sol +0 -487
  558. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  559. package/contracts/shared/InitializableCustom.sol +0 -177
  560. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId, NftIdLib} from "../type/NftId.sol";
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {BUNDLE} from "../type/ObjectType.sol";
8
+
9
+ import {ObjectSet} from "./base/ObjectSet.sol";
10
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
11
+
12
+ contract BundleSet is
13
+ ObjectSet
14
+ {
15
+ using LibNftIdSet for LibNftIdSet.Set;
16
+
17
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+
20
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
24
+
25
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
27
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
28
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
29
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
30
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
31
+
32
+ mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
33
+
34
+ /// @dev links a policy to its bundle
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
36
+
37
+ // ensure bundle is unlocked (in active set) and registered with this instance
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
39
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
40
+ }
41
+
42
+ _activePolicies[bundleNftId].add(policyNftId);
43
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
44
+ }
45
+
46
+
47
+ /// @dev unlinks a policy from its bundle
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
49
+
50
+ // ensure bundle is registered with this instance
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
52
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
53
+ }
54
+
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
57
+ }
58
+
59
+
60
+ /// @dev add a new bundle to a pool registerd with this instance
61
+ // the corresponding pool is fetched via instance reader
62
+ function add(NftId bundleNftId) external restricted() {
63
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
64
+
65
+ // ensure pool is registered with instance
66
+ if(poolNftId.eqz()) {
67
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
68
+ }
69
+
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
71
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
72
+ }
73
+
74
+
75
+ /// @dev unlocked (active) bundles are available to collateralize new policies
76
+ function unlock(NftId bundleNftId) external restricted() {
77
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
79
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
80
+ }
81
+
82
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
83
+ function lock(NftId bundleNftId) external restricted() {
84
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
87
+ }
88
+
89
+
90
+ function checkBundle(NftId productNftId, NftId bundleId)
91
+ public
92
+ view
93
+ returns (bool exists, bool active)
94
+ {
95
+ Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
96
+ exists = _contains(productNftId, bundleKey32);
97
+
98
+ if (exists) {
99
+ active = _isActive(productNftId, bundleKey32);
100
+ }
101
+ }
102
+
103
+ function bundles(NftId poolNftId) external view returns(uint256) {
104
+ return _objects(poolNftId);
105
+ }
106
+
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
+ }
110
+
111
+ function activeBundles(NftId poolNftId) external view returns(uint256) {
112
+ return _activeObjs(poolNftId);
113
+ }
114
+
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
+ }
118
+
119
+ function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
+ return _activePolicies[bundleNftId].size();
121
+ }
122
+
123
+ function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
129
+ }
130
+ }
@@ -1,56 +1,50 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegisterable} from "../shared/IRegisterable.sol";
5
6
 
6
7
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
9
- import {PayoutId} from "../type/PayoutId.sol";
8
+ import {BundleSet} from "./BundleSet.sol";
9
+ import {RiskSet} from "./RiskSet.sol";
10
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
11
+ import {InstanceReader} from "./InstanceReader.sol";
12
+ import {InstanceStore} from "./InstanceStore.sol";
10
13
  import {NftId} from "../type/NftId.sol";
11
- import {StateId} from "../type/StateId.sol";
12
- import {ReferralId} from "../type/Referral.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {VersionPart} from "../type/Version.sol";
15
- import {Key32} from "../type/Key32.sol";
16
14
  import {RoleId} from "../type/RoleId.sol";
17
15
  import {Seconds} from "../type/Seconds.sol";
18
16
  import {UFixed} from "../type/UFixed.sol";
19
17
 
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
-
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
-
24
- import {InstanceAdmin} from "./InstanceAdmin.sol";
25
- import {BundleManager} from "./BundleManager.sol";
26
- import {InstanceReader} from "./InstanceReader.sol";
27
- import {InstanceStore} from "./InstanceStore.sol";
28
-
29
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
18
 
31
- import {IAccess} from "./module/IAccess.sol";
19
+ interface IInstance is
20
+ IRegisterable
21
+ {
22
+ // role handling
23
+ event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
24
+ event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
25
+ event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
26
+ event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
32
27
 
33
- import {IBundleService} from "../pool/IBundleService.sol";
34
- import {IDistributionService} from "../distribution/IDistributionService.sol";
35
- import {IPolicyService} from "../product/IPolicyService.sol";
36
- import {IPoolService} from "../pool/IPoolService.sol";
37
- import {IProductService} from "../product/IProductService.sol";
38
- import {IPolicyService} from "../product/IPolicyService.sol";
39
- import {IBundleService} from "../pool/IBundleService.sol";
28
+ // target handling
29
+ event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
30
+ event LogInstanceTargetLocked(address target, bool locked);
31
+ event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
40
32
 
33
+ // modifier is onlyRoleAdmin
34
+ error ErrorInstanceNotCustomRole(RoleId roleId);
35
+ error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
41
36
 
42
- interface IInstance is
43
- IRegisterable,
44
- ITransferInterceptor,
45
- IAccessManaged
46
- {
47
37
  error ErrorInstanceInstanceAdminZero();
48
- error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
38
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
49
39
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
50
40
 
51
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
52
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
53
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
41
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
42
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
43
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
44
+
45
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
46
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
47
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
54
48
 
55
49
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
50
 
@@ -61,26 +55,91 @@ interface IInstance is
61
55
  uint64 requestsCount;
62
56
  }
63
57
 
64
- function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
65
- function grantRole(RoleId roleId, address account) external;
66
- function revokeRole(RoleId roleId, address account) external;
58
+ ///--- instance ---------------------------------------------------------//
67
59
 
68
- function createTarget(address target, string memory name) external;
69
- function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
70
- function setTargetLocked(address target, bool locked) external;
60
+ /// @dev Locks/unlocks the complete instance, including all its components.
61
+ function setInstanceLocked(bool locked) external;
62
+
63
+ /// @dev Upgrades the instance reader to the specified target.
64
+ function upgradeInstanceReader() external;
65
+
66
+ /// @dev Sets the instance reader for the instance.
67
+ /// Permissioned: only the instance service may call this function.
68
+ function setInstanceReader(InstanceReader instanceReader) external;
69
+
70
+ ///--- staking ----------------------------------------------------------//
71
71
 
72
+ /// @dev Sets the duration for locking new stakes on this instance..
72
73
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
74
+
75
+ /// @dev Sets the staking reward rate [apr] for this instance.
73
76
  function setStakingRewardRate(UFixed rewardRate) external;
77
+
78
+ /// @dev Sets the maximum staked amount for this instance.
79
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
80
+
81
+ /// @dev Refills the staking reward reserves for the specified target.
74
82
  function refillStakingRewardReserves(Amount dipAmount) external;
75
83
 
76
84
  /// @dev Defunds the staking reward reserves for the specified target.
77
- /// Permissioned: only the target owner may call this function.
78
85
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
79
86
 
80
- // get instance release and supporting contracts
81
- function getMajorVersion() external pure returns (VersionPart majorVersion);
87
+ ///--- product/component ------------------------------------------------//
88
+
89
+ /// @dev Locks/unlocks the specified target.
90
+ function setTargetLocked(address target, bool locked) external;
91
+
92
+ /// @dev Register a product with the instance.
93
+ function registerProduct(address product, address token) external returns (NftId productNftId);
94
+
95
+ ///--- authz ------------------------------------------------------------//
96
+
97
+ /// @dev Creates a new custom role for the calling instance.
98
+ /// Custom roles are intended to be used for access control of custom components and its helper contracts.
99
+ /// Custom roles are not intended to be used as target roles for custom contracts.
100
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
101
+
102
+ /// @dev Activates/deactivates the specified role.
103
+ /// Only instance owner or account with role admin role can call this function.
104
+ function setRoleActive(RoleId roleId, bool active) external;
105
+
106
+ /// @dev Grants the specified role to the account.
107
+ /// Only active roles can be granted.
108
+ /// Only instance owner or account with role admin role can call this function.
109
+ function grantRole(RoleId roleId, address account) external;
110
+
111
+ /// @dev Revokes the specified role from the account.
112
+ /// Only instance owner or account with role admin role can call this function.
113
+ function revokeRole(RoleId roleId, address account) external;
114
+
115
+ /// @dev Creates a new custom target.
116
+ /// Custom targets are intended to be used for access control helper contracts of components.
117
+ /// Custom targets are not intended to be used for components.
118
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
119
+
120
+ /// @dev Authorizes the specified functions for the target and provided role.
121
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
122
+
123
+ /// @dev Removes any role authorization for the specified functions.
124
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
125
+
126
+ //--- getters -----------------------------------------------------------//
127
+
128
+ /// @dev returns the overall locking state of the instance (including all components)
129
+ function isInstanceLocked() external view returns (bool isLocked);
130
+
131
+ /// @dev returns the locking state of the specified target
132
+ function isTargetLocked(address target) external view returns (bool isLocked);
133
+
134
+ // get products
135
+ function products() external view returns (uint256 productCount);
136
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
137
+
138
+ // get supporting contracts
82
139
  function getInstanceReader() external view returns (InstanceReader);
83
- function getBundleManager() external view returns (BundleManager);
140
+ function getBundleSet() external view returns (BundleSet);
141
+ function getRiskSet() external view returns (RiskSet);
84
142
  function getInstanceAdmin() external view returns (InstanceAdmin);
85
143
  function getInstanceStore() external view returns (InstanceStore);
144
+ function isTokenRegistryDisabled() external view returns (bool);
86
145
  }
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {BundleManager} from "./BundleManager.sol";
6
- import {Instance} from "./Instance.sol";
7
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstance} from "./IInstance.sol";
8
6
  import {IService} from "../shared/IService.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
9
  import {NftId} from "../type/NftId.sol";
10
10
  import {ObjectType} from "../type/ObjectType.sol";
11
11
  import {RoleId} from "../type/RoleId.sol";
@@ -18,13 +18,14 @@ interface IInstanceService is IService {
18
18
  // onlyInstance
19
19
  error ErrorInstanceServiceNotRegistered(address instance);
20
20
  error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
21
- error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
22
22
 
23
23
  error ErrorInstanceServiceComponentNotInstanceLinked(address component);
24
24
 
25
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
+ error ErrorInstanceServiceMasterRiskSetAlreadySet();
28
29
  error ErrorInstanceServiceInstanceAddressZero();
29
30
 
30
31
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -35,13 +36,16 @@ interface IInstanceService is IService {
35
36
  error ErrorInstanceServiceAccessManagerZero();
36
37
  error ErrorInstanceServiceInstanceAdminZero();
37
38
  error ErrorInstanceServiceInstanceReaderZero();
38
- error ErrorInstanceServiceBundleManagerZero();
39
+ error ErrorInstanceServiceBundleSetZero();
40
+ error ErrorInstanceServiceRiskSetZero();
39
41
  error ErrorInstanceServiceInstanceStoreZero();
40
42
 
41
43
  error ErrorInstanceServiceInstanceAuthorityMismatch();
42
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
44
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
45
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
43
46
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
- error ErrorInstanceServiceBundleMangerInstanceMismatch();
47
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
48
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
45
49
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
46
50
 
47
51
  error ErrorInstanceServiceRequestUnauhorized(address caller);
@@ -52,41 +56,58 @@ interface IInstanceService is IService {
52
56
 
53
57
  event LogInstanceCloned(NftId instanceNftId, address instance);
54
58
 
55
- function createInstanceClone()
59
+ /// @dev Creates a new custom role for the calling instance.
60
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
61
+
62
+ /// @dev Sets the specified custom role as active or inactive for the calling instance.
63
+ function setRoleActive(RoleId roleId, bool active) external;
64
+
65
+ /// @dev Grants the specified custom role to the specified account for the calling instance.
66
+ function grantRole(RoleId roleId, address account) external;
67
+
68
+ /// @dev Revokes the specified custom role from the specified account for the calling instance.
69
+ function revokeRole(RoleId roleId, address account) external;
70
+
71
+ /// @dev Creates a new custom target for the calling instance.
72
+ /// All custom trargets are created with a corresponding contract role.
73
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
74
+
75
+ /// @dev Authorizes the specified functions for the specified target.
76
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
77
+
78
+ /// @dev Removes any role authorization for the specified functions.
79
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
80
+
81
+ /// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
82
+ function setTargetLocked(address target, bool locked) external;
83
+
84
+ /// @dev Locks the complete instance, including all its components.
85
+ function setInstanceLocked(bool locked) external;
86
+
87
+ /// @dev Creates a new instance.
88
+ /// The caller becomes the owner of the new instance.
89
+ /// Creation of a new instance is achieved by this service through the creation and registration
90
+ /// of a new clone of the master instance and then setting up the initial wiring and authorization
91
+ /// of the necessary components.
92
+ /// @param allowAnyToken specifies whether the new instance is allowed to use any token or
93
+ /// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
94
+ /// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
95
+ /// use of such instances **is not supported** by Etherisc.
96
+ function createInstance(bool allowAnyToken)
56
97
  external
57
98
  returns (
58
- // TODO check if Instance can be changed to IInstance
59
- Instance clonedInstance,
99
+ IInstance instance,
60
100
  NftId instanceNftId
61
101
  );
62
102
 
103
+ function upgradeInstanceReader() external;
104
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
63
105
 
64
106
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
107
  function setStakingRewardRate(UFixed rewardRate) external;
108
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
66
109
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
67
110
 
68
111
  /// @dev Defunds the staking reward reserves for the specified target.
69
112
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
70
-
71
- /// @dev Sets up the component authorization for the specified instance.
72
- /// The authorization is based on the authz specification provided by the component via getAuthorization.
73
- function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
74
-
75
- function createComponentTarget(
76
- NftId instanceNftId,
77
- address targetAddress,
78
- string memory targetName,
79
- bytes4[][] memory selectors,
80
- RoleId[] memory roles
81
- ) external;
82
-
83
- function createGifTarget(
84
- NftId instanceNftId,
85
- address targetAddress,
86
- string memory targetName,
87
- bytes4[][] memory selectors,
88
- RoleId[] memory roles
89
- ) external;
90
-
91
- function setComponentLocked(bool locked) external;
92
113
  }