@etherisc/gif-next 0.0.2-d8b116d-201 → 0.0.2-d8ddca8-422

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 (771) hide show
  1. package/README.md +160 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +681 -1214
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +741 -139
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +580 -2850
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +774 -377
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +385 -121
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +394 -350
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +340 -357
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +689 -113
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +351 -226
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1027 -149
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +327 -322
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +375 -119
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +391 -80
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +291 -201
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +3201 -0
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +855 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3065 -0
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +26 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +247 -0
  375. package/contracts/distribution/DistributionService.sol +448 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +45 -0
  378. package/contracts/distribution/IDistributionService.sol +115 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +127 -36
  394. package/contracts/instance/IInstanceService.sol +104 -17
  395. package/contracts/instance/Instance.sol +246 -342
  396. package/contracts/instance/InstanceAdmin.sol +383 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  398. package/contracts/instance/InstanceReader.sol +525 -208
  399. package/contracts/instance/InstanceService.sol +462 -163
  400. package/contracts/instance/InstanceServiceManager.sol +14 -32
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +126 -0
  403. package/contracts/instance/base/BalanceStore.sol +121 -0
  404. package/contracts/instance/base/Cloneable.sol +28 -0
  405. package/contracts/instance/base/ObjectCounter.sol +20 -0
  406. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  407. package/contracts/instance/base/ObjectSet.sol +77 -0
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  409. package/contracts/instance/module/IBundle.sol +10 -9
  410. package/contracts/instance/module/IComponents.sol +62 -0
  411. package/contracts/instance/module/IDistribution.sol +25 -10
  412. package/contracts/instance/module/IPolicy.sol +81 -21
  413. package/contracts/instance/module/IRisk.sol +6 -1
  414. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +45 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  417. package/contracts/oracle/IOracle.sol +41 -0
  418. package/contracts/oracle/IOracleComponent.sol +33 -0
  419. package/contracts/oracle/IOracleService.sol +66 -0
  420. package/contracts/oracle/Oracle.sol +154 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +162 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  425. package/contracts/pool/BundleService.sol +386 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +116 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +170 -0
  430. package/contracts/pool/Pool.sol +333 -0
  431. package/contracts/pool/PoolLib.sol +341 -0
  432. package/contracts/pool/PoolService.sol +614 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +327 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +49 -0
  437. package/contracts/product/BasicProductAuthorization.sol +63 -0
  438. package/contracts/product/ClaimService.sol +630 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +88 -0
  441. package/contracts/product/IClaimService.sol +136 -0
  442. package/contracts/product/IPolicyService.sol +102 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +48 -0
  446. package/contracts/product/PolicyService.sol +645 -0
  447. package/contracts/product/PolicyServiceLib.sol +139 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +306 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +493 -0
  452. package/contracts/product/RiskService.sol +190 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +82 -35
  455. package/contracts/registry/IRegistry.sol +123 -32
  456. package/contracts/registry/IRegistryService.sol +40 -28
  457. package/contracts/registry/IRelease.sol +29 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +561 -273
  460. package/contracts/registry/RegistryAdmin.sol +191 -0
  461. package/contracts/registry/RegistryAuthorization.sol +336 -0
  462. package/contracts/registry/RegistryService.sol +116 -233
  463. package/contracts/registry/RegistryServiceManager.sol +26 -53
  464. package/contracts/registry/ReleaseAdmin.sol +195 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +525 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  468. package/contracts/registry/TokenRegistry.sol +265 -59
  469. package/contracts/shared/Component.sol +214 -0
  470. package/contracts/shared/ComponentService.sol +687 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ContractLib.sol +312 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +111 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +17 -12
  479. package/contracts/shared/IPolicyHolder.sol +35 -0
  480. package/contracts/shared/IRegisterable.sol +24 -5
  481. package/contracts/shared/IRegistryLinked.sol +11 -0
  482. package/contracts/shared/IService.sol +13 -5
  483. package/contracts/shared/InitializableERC165.sol +35 -0
  484. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +77 -82
  489. package/contracts/shared/PolicyHolder.sol +63 -0
  490. package/contracts/shared/Registerable.sol +54 -38
  491. package/contracts/shared/RegistryLinked.sol +38 -0
  492. package/contracts/shared/Service.sol +45 -33
  493. package/contracts/shared/TokenHandler.sol +327 -12
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +367 -0
  496. package/contracts/staking/IStakingService.sol +127 -0
  497. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  498. package/contracts/staking/Staking.sol +797 -0
  499. package/contracts/staking/StakingLib.sol +195 -0
  500. package/contracts/staking/StakingManager.sol +53 -0
  501. package/contracts/staking/StakingReader.sol +171 -0
  502. package/contracts/staking/StakingService.sol +321 -0
  503. package/contracts/staking/StakingServiceManager.sol +46 -0
  504. package/contracts/staking/StakingStore.sol +1364 -0
  505. package/contracts/staking/TargetHandler.sol +132 -0
  506. package/contracts/staking/TargetManagerLib.sol +234 -0
  507. package/contracts/{types → type}/AddressSet.sol +1 -1
  508. package/contracts/type/Amount.sol +154 -0
  509. package/contracts/{types → type}/Blocknumber.sol +36 -12
  510. package/contracts/type/ChainId.sol +101 -0
  511. package/contracts/type/ClaimId.sol +80 -0
  512. package/contracts/{types → type}/DistributorType.sol +2 -2
  513. package/contracts/type/Fee.sol +66 -0
  514. package/contracts/{types → type}/Key32.sol +2 -2
  515. package/contracts/type/Key32Set.sol +62 -0
  516. package/contracts/{types → type}/NftId.sol +28 -15
  517. package/contracts/{types → type}/NftIdSet.sol +2 -2
  518. package/contracts/type/ObjectType.sol +307 -0
  519. package/contracts/type/PayoutId.sol +82 -0
  520. package/contracts/{types → type}/Referral.sol +6 -1
  521. package/contracts/type/RequestId.sol +75 -0
  522. package/contracts/type/RiskId.sol +75 -0
  523. package/contracts/type/RoleId.sol +180 -0
  524. package/contracts/type/Seconds.sol +120 -0
  525. package/contracts/type/Selector.sol +107 -0
  526. package/contracts/{types → type}/StateId.sol +48 -4
  527. package/contracts/type/String.sol +65 -0
  528. package/contracts/{types → type}/Timestamp.sol +36 -20
  529. package/contracts/type/UFixed.sol +263 -0
  530. package/contracts/{types → type}/Version.sol +59 -7
  531. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  532. package/contracts/upgradeability/ProxyManager.sol +246 -0
  533. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  534. package/contracts/upgradeability/Versionable.sol +62 -0
  535. package/package.json +12 -8
  536. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  538. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  540. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  542. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  544. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  546. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  548. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  549. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
  550. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  551. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  554. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  556. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  558. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  560. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  562. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  564. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  566. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  568. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  572. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  577. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  581. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  583. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  585. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  587. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  588. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  589. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  591. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  592. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
  593. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  594. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  595. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -750
  597. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  598. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  599. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  600. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  601. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  602. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
  604. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  605. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  606. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  607. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  608. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  609. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  610. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  611. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  612. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  613. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  614. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  615. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  616. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  619. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  621. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  623. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  626. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  629. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
  630. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  631. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  632. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  633. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  634. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  635. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  636. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  637. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  638. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  639. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  640. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  641. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  642. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  643. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  644. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  645. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  646. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  647. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  648. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  649. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  650. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  651. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  652. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  653. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  654. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  655. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  656. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  657. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  658. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  659. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  660. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  662. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  664. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  665. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  666. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  667. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  668. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  670. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  672. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  674. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  676. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  677. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  678. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  680. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  681. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  682. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  684. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  686. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  687. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  688. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  690. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  692. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  694. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  696. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  698. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  700. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  702. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  704. package/contracts/components/BaseComponent.sol +0 -91
  705. package/contracts/components/Distribution.sol +0 -163
  706. package/contracts/components/IBaseComponent.sol +0 -25
  707. package/contracts/components/IDistributionComponent.sol +0 -44
  708. package/contracts/components/IPoolComponent.sol +0 -62
  709. package/contracts/components/IProductComponent.sol +0 -35
  710. package/contracts/components/Pool.sol +0 -247
  711. package/contracts/components/Product.sol +0 -289
  712. package/contracts/experiment/cloning/Cloner.sol +0 -47
  713. package/contracts/experiment/errors/Require.sol +0 -38
  714. package/contracts/experiment/errors/Revert.sol +0 -44
  715. package/contracts/experiment/inheritance/A.sol +0 -53
  716. package/contracts/experiment/inheritance/B.sol +0 -28
  717. package/contracts/experiment/inheritance/C.sol +0 -34
  718. package/contracts/experiment/inheritance/IA.sol +0 -13
  719. package/contracts/experiment/inheritance/IB.sol +0 -10
  720. package/contracts/experiment/inheritance/IC.sol +0 -12
  721. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  722. package/contracts/experiment/statemachine/ISM.sol +0 -25
  723. package/contracts/experiment/statemachine/SM.sol +0 -57
  724. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  725. package/contracts/experiment/types/TypeA.sol +0 -47
  726. package/contracts/experiment/types/TypeB.sol +0 -29
  727. package/contracts/instance/AccessManagedSimple.sol +0 -115
  728. package/contracts/instance/AccessManagerSimple.sol +0 -692
  729. package/contracts/instance/BundleManager.sol +0 -143
  730. package/contracts/instance/Cloneable.sol +0 -47
  731. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  732. package/contracts/instance/InstanceAccessManager.sol +0 -288
  733. package/contracts/instance/ObjectManager.sol +0 -95
  734. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  735. package/contracts/instance/base/IInstanceBase.sol +0 -23
  736. package/contracts/instance/base/KeyValueStore.sol +0 -172
  737. package/contracts/instance/base/Lifecycle.sol +0 -100
  738. package/contracts/instance/module/IAccess.sol +0 -38
  739. package/contracts/instance/module/ISetup.sol +0 -46
  740. package/contracts/instance/module/ITreasury.sol +0 -23
  741. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  742. package/contracts/instance/service/DistributionService.sol +0 -88
  743. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  744. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  745. package/contracts/instance/service/IDistributionService.sol +0 -12
  746. package/contracts/instance/service/IPoolService.sol +0 -43
  747. package/contracts/instance/service/IProductService.sol +0 -110
  748. package/contracts/instance/service/PoolService.sol +0 -204
  749. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  750. package/contracts/instance/service/ProductService.sol +0 -561
  751. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  752. package/contracts/shared/ContractDeployerLib.sol +0 -72
  753. package/contracts/shared/ERC165.sol +0 -25
  754. package/contracts/shared/ProxyManager.sol +0 -94
  755. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  756. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  757. package/contracts/shared/Versionable.sol +0 -147
  758. package/contracts/test/TestFee.sol +0 -25
  759. package/contracts/test/TestRegisterable.sol +0 -18
  760. package/contracts/test/TestRoleId.sol +0 -14
  761. package/contracts/test/TestService.sol +0 -24
  762. package/contracts/test/TestToken.sol +0 -26
  763. package/contracts/test/TestVersion.sol +0 -44
  764. package/contracts/test/TestVersionable.sol +0 -17
  765. package/contracts/types/ChainId.sol +0 -38
  766. package/contracts/types/Fee.sol +0 -56
  767. package/contracts/types/NumberId.sol +0 -52
  768. package/contracts/types/ObjectType.sol +0 -152
  769. package/contracts/types/RiskId.sol +0 -43
  770. package/contracts/types/RoleId.sol +0 -90
  771. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimpleProduct} from "./SimpleProduct.sol";
8
+
9
+ contract SimpleProductAuthorization
10
+ is BasicProductAuthorization
11
+ {
12
+ constructor(string memory componentName)
13
+ BasicProductAuthorization(componentName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
27
+ }
28
+ }
@@ -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,54 +1,145 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegisterable} from "../shared/IRegisterable.sol";
5
6
 
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {BundleSet} from "./BundleSet.sol";
9
+ import {RiskSet} from "./RiskSet.sol";
10
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
6
11
  import {InstanceReader} from "./InstanceReader.sol";
12
+ import {InstanceStore} from "./InstanceStore.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {RoleId} from "../type/RoleId.sol";
15
+ import {Seconds} from "../type/Seconds.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
7
17
 
8
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
9
- import {IDistributionService} from "./service/IDistributionService.sol";
10
- import {IPoolService} from "./service/IPoolService.sol";
11
- import {IProductService} from "./service/IProductService.sol";
12
- import {IBundle} from "./module/IBundle.sol";
13
- import {ISetup} from "./module/ISetup.sol";
14
- import {NftId} from "../types/NftId.sol";
15
- import {StateId} from "../types/StateId.sol";
16
- import {RiskId} from "../types/RiskId.sol";
17
- import {IRisk} from "./module/IRisk.sol";
18
- import {IPolicy} from "./module/IPolicy.sol";
19
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
20
18
 
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);
21
27
 
22
- interface IInstance is IERC165, IKeyValueStore {
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);
23
32
 
24
- function getComponentOwnerService() external view returns (IComponentOwnerService);
25
- function getDistributionService() external view returns (IDistributionService);
26
- function getProductService() external view returns (IProductService);
27
- function getPoolService() external view returns (IPoolService);
33
+ // modifier is onlyRoleAdmin
34
+ error ErrorInstanceNotCustomRole(RoleId roleId);
35
+ error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
28
36
 
29
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
30
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
31
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
37
+ error ErrorInstanceInstanceAdminZero();
38
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
39
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
32
40
 
33
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
34
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
35
- function updatePoolSetupState(NftId poolNftId, StateId newState) external;
41
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
42
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
43
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
36
44
 
37
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
38
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
39
- function updateBundleState(NftId bundleNftId, StateId newState) external;
45
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
46
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
47
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
40
48
 
41
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external;
42
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
43
- function updateProductSetupState(NftId productNftId, StateId newState) external;
49
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
44
50
 
45
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
46
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
47
- function updateRiskState(RiskId riskId, StateId newState) external;
51
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
52
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
48
53
 
49
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external;
50
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
51
- function updatePolicyState(NftId policyNftId, StateId newState) external;
54
+ struct InstanceInfo {
55
+ uint64 requestsCount;
56
+ }
52
57
 
58
+ ///--- instance ---------------------------------------------------------//
59
+
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
+
72
+ /// @dev Sets the duration for locking new stakes on this instance..
73
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
74
+
75
+ /// @dev Sets the staking reward rate [apr] for this instance.
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.
82
+ function refillStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
83
+
84
+ /// @dev Defunds the staking reward reserves for the specified target.
85
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
86
+
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
53
139
  function getInstanceReader() external view returns (InstanceReader);
140
+ function getBundleSet() external view returns (BundleSet);
141
+ function getRiskSet() external view returns (RiskSet);
142
+ function getInstanceAdmin() external view returns (InstanceAdmin);
143
+ function getInstanceStore() external view returns (InstanceStore);
144
+ function isTokenRegistryDisabled() external view returns (bool);
54
145
  }
@@ -1,30 +1,117 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {ObjectType} from "../types/ObjectType.sol";
6
- import {RoleId} from "../types/RoleId.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstance} from "./IInstance.sol";
7
6
  import {IService} from "../shared/IService.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
7
 
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
- import {IBaseComponent} from "../components/IBaseComponent.sol";
12
-
13
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
14
- import {Instance} from "./Instance.sol";
15
- import {InstanceReader} from "./InstanceReader.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ObjectType} from "../type/ObjectType.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {UFixed} from "../type/UFixed.sol";
14
+ import {VersionPart} from "../type/Version.sol";
16
15
 
17
16
  interface IInstanceService is IService {
18
17
 
19
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
18
+ // onlyInstance
19
+ error ErrorInstanceServiceNotRegistered(address instance);
20
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
22
+
23
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
24
+
25
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
26
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
+ error ErrorInstanceServiceMasterRiskSetAlreadySet();
29
+ error ErrorInstanceServiceInstanceAddressZero();
30
+
31
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
32
+ error ErrorInstanceServiceInstanceReaderAddressZero();
33
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
34
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
35
+
36
+ error ErrorInstanceServiceAccessManagerZero();
37
+ error ErrorInstanceServiceInstanceAdminZero();
38
+ error ErrorInstanceServiceInstanceReaderZero();
39
+ error ErrorInstanceServiceBundleSetZero();
40
+ error ErrorInstanceServiceRiskSetZero();
41
+ error ErrorInstanceServiceInstanceStoreZero();
42
+
43
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
44
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
45
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
46
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
47
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
48
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
49
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
50
+
51
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
52
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
53
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
54
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
55
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
56
+
57
+ event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
58
+ event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
59
+ event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
60
+ event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
61
+
62
+ /// @dev Creates a new custom role for the calling instance.
63
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
64
+
65
+ /// @dev Sets the specified custom role as active or inactive for the calling instance.
66
+ function setRoleActive(RoleId roleId, bool active) external;
67
+
68
+ /// @dev Grants the specified custom role to the specified account for the calling instance.
69
+ function grantRole(RoleId roleId, address account) external;
20
70
 
21
- function createInstanceClone()
71
+ /// @dev Revokes the specified custom role from the specified account for the calling instance.
72
+ function revokeRole(RoleId roleId, address account) external;
73
+
74
+ /// @dev Creates a new custom target for the calling instance.
75
+ /// All custom trargets are created with a corresponding contract role.
76
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
77
+
78
+ /// @dev Authorizes the specified functions for the specified target.
79
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
80
+
81
+ /// @dev Removes any role authorization for the specified functions.
82
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
83
+
84
+ /// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
85
+ function setTargetLocked(address target, bool locked) external;
86
+
87
+ /// @dev Locks the complete instance, including all its components.
88
+ function setInstanceLocked(bool locked) external;
89
+
90
+ /// @dev Creates a new instance.
91
+ /// The caller becomes the owner of the new instance.
92
+ /// Creation of a new instance is achieved by this service through the creation and registration
93
+ /// of a new clone of the master instance and then setting up the initial wiring and authorization
94
+ /// of the necessary components.
95
+ /// @param allowAnyToken specifies whether the new instance is allowed to use any token or
96
+ /// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
97
+ /// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
98
+ /// use of such instances **is not supported** by Etherisc.
99
+ function createInstance(bool allowAnyToken)
22
100
  external
23
101
  returns (
24
- AccessManagerSimple clonedAccessManager,
25
- Instance clonedInstance,
26
- NftId instanceNftId,
27
- InstanceReader clonedInstanceReader
102
+ IInstance instance,
103
+ NftId instanceNftId
28
104
  );
29
- }
30
105
 
106
+ function upgradeInstanceReader() external;
107
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
108
+
109
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
110
+ function setStakingRewardRate(UFixed rewardRate) external;
111
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
112
+
113
+ function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
114
+
115
+ /// @dev Defunds the staking reward reserves for the specified target.
116
+ function withdrawInstanceRewardReserves(Amount dipAmount) external returns (Amount newBalance);
117
+ }