@etherisc/gif-next 0.0.2-a66c9a8-623 → 0.0.2-a6a9eeb-432

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