@etherisc/gif-next 0.0.2-7560591-936 → 0.0.2-7561475-301

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 (457) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +100 -32
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +80 -34
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -47
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +175 -27
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -27
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +20 -11
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -139
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +129 -67
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -10
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +228 -15
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +81 -52
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +109 -68
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +74 -33
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +85 -60
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +264 -78
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +349 -33
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +287 -3
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -97
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +586 -338
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +189 -68
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +447 -386
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +313 -29
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1444 -2133
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +85 -39
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -36
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +294 -117
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +113 -47
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -10
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -10
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +88 -22
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +324 -65
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +110 -52
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +82 -32
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -10
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +102 -64
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -10
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -61
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -72
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -39
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +19 -10
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +70 -32
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +18 -7
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +56 -45
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +380 -238
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +261 -65
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -27
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +131 -79
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -174
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -53
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +84 -105
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
  242. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  253. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1384 -128
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +94 -114
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  266. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +1473 -186
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +113 -58
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -150
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +128 -164
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -43
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1620 -820
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +142 -80
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
  329. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -17
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  337. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  339. package/contracts/accounting/AccountingService.sol +15 -3
  340. package/contracts/accounting/IAccountingService.sol +2 -0
  341. package/contracts/authorization/AccessAdmin.sol +264 -188
  342. package/contracts/authorization/AccessAdminLib.sol +222 -9
  343. package/contracts/authorization/Authorization.sol +38 -234
  344. package/contracts/authorization/IAccess.sol +14 -4
  345. package/contracts/authorization/IAccessAdmin.sol +19 -45
  346. package/contracts/authorization/IAuthorization.sol +3 -57
  347. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  348. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  349. package/contracts/distribution/BasicDistribution.sol +3 -4
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  351. package/contracts/distribution/Distribution.sol +9 -8
  352. package/contracts/distribution/DistributionService.sol +98 -35
  353. package/contracts/distribution/IDistributionComponent.sol +3 -1
  354. package/contracts/distribution/IDistributionService.sol +20 -8
  355. package/contracts/examples/fire/FireProduct.sol +6 -6
  356. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  357. package/contracts/instance/BaseStore.sol +93 -0
  358. package/contracts/instance/IBaseStore.sol +37 -0
  359. package/contracts/instance/IInstance.sol +55 -5
  360. package/contracts/instance/IInstanceService.sol +37 -6
  361. package/contracts/instance/Instance.sol +103 -56
  362. package/contracts/instance/InstanceAdmin.sol +164 -235
  363. package/contracts/instance/InstanceAuthorizationV3.sol +101 -61
  364. package/contracts/instance/InstanceReader.sol +354 -392
  365. package/contracts/instance/InstanceService.sol +180 -125
  366. package/contracts/instance/InstanceStore.sol +153 -128
  367. package/contracts/instance/ProductStore.sol +290 -0
  368. package/contracts/instance/RiskSet.sol +10 -2
  369. package/contracts/instance/TargetNames.sol +10 -0
  370. package/contracts/instance/base/BalanceStore.sol +4 -6
  371. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  372. package/contracts/instance/module/IComponents.sol +0 -2
  373. package/contracts/oracle/BasicOracle.sol +2 -3
  374. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  375. package/contracts/oracle/Oracle.sol +4 -6
  376. package/contracts/oracle/OracleService.sol +8 -8
  377. package/contracts/pool/BasicPool.sol +4 -16
  378. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  379. package/contracts/pool/BundleService.sol +34 -43
  380. package/contracts/pool/IBundleService.sol +14 -13
  381. package/contracts/pool/IPoolService.sol +7 -2
  382. package/contracts/pool/Pool.sol +6 -18
  383. package/contracts/pool/PoolLib.sol +127 -2
  384. package/contracts/pool/PoolService.sol +40 -181
  385. package/contracts/product/ApplicationService.sol +64 -11
  386. package/contracts/product/BasicProduct.sol +2 -3
  387. package/contracts/product/BasicProductAuthorization.sol +11 -4
  388. package/contracts/product/ClaimService.sol +99 -105
  389. package/contracts/product/IApplicationService.sol +21 -2
  390. package/contracts/product/IClaimService.sol +5 -4
  391. package/contracts/product/IPolicyService.sol +9 -2
  392. package/contracts/product/IRiskService.sol +18 -3
  393. package/contracts/product/PolicyService.sol +40 -59
  394. package/contracts/product/PolicyServiceLib.sol +79 -5
  395. package/contracts/product/PricingService.sol +22 -25
  396. package/contracts/product/Product.sol +40 -16
  397. package/contracts/product/RiskService.sol +50 -15
  398. package/contracts/registry/IRegistry.sol +11 -9
  399. package/contracts/registry/Registry.sol +15 -9
  400. package/contracts/registry/RegistryAdmin.sol +33 -100
  401. package/contracts/registry/RegistryAuthorization.sol +121 -52
  402. package/contracts/registry/RegistryService.sol +1 -1
  403. package/contracts/registry/ReleaseAdmin.sol +42 -100
  404. package/contracts/registry/ReleaseRegistry.sol +20 -12
  405. package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
  406. package/contracts/registry/TokenRegistry.sol +54 -53
  407. package/contracts/shared/Component.sol +8 -8
  408. package/contracts/shared/ComponentService.sol +244 -261
  409. package/contracts/shared/ContractLib.sol +106 -75
  410. package/contracts/shared/IComponent.sol +1 -1
  411. package/contracts/shared/IComponentService.sol +12 -13
  412. package/contracts/shared/INftOwnable.sol +2 -0
  413. package/contracts/shared/IRegisterable.sol +0 -1
  414. package/contracts/shared/InstanceLinkedComponent.sol +6 -9
  415. package/contracts/shared/NftOwnable.sol +3 -1
  416. package/contracts/shared/PolicyHolder.sol +3 -2
  417. package/contracts/shared/Service.sol +6 -4
  418. package/contracts/staking/IStaking.sol +258 -70
  419. package/contracts/staking/IStakingService.sol +39 -84
  420. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  421. package/contracts/staking/Staking.sol +468 -217
  422. package/contracts/staking/StakingLib.sol +38 -124
  423. package/contracts/staking/StakingManager.sol +4 -3
  424. package/contracts/staking/StakingReader.sol +62 -71
  425. package/contracts/staking/StakingService.sol +42 -185
  426. package/contracts/staking/StakingServiceManager.sol +1 -0
  427. package/contracts/staking/StakingStore.sol +1093 -331
  428. package/contracts/staking/TargetHandler.sol +132 -0
  429. package/contracts/staking/TargetManagerLib.sol +69 -46
  430. package/contracts/type/Amount.sol +4 -0
  431. package/contracts/type/Blocknumber.sol +15 -15
  432. package/contracts/type/ChainId.sol +101 -0
  433. package/contracts/type/NftId.sol +3 -3
  434. package/contracts/type/ObjectType.sol +16 -3
  435. package/contracts/type/RoleId.sol +57 -59
  436. package/contracts/type/Seconds.sol +19 -0
  437. package/contracts/type/String.sol +12 -0
  438. package/contracts/type/Timestamp.sol +4 -2
  439. package/contracts/type/UFixed.sol +1 -0
  440. package/contracts/upgradeability/IVersionable.sol +3 -0
  441. package/contracts/upgradeability/ProxyManager.sol +15 -3
  442. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +6 -2
  443. package/contracts/upgradeability/Versionable.sol +6 -3
  444. package/package.json +1 -1
  445. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  446. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  447. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  448. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  449. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  450. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  451. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  452. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  453. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  454. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  455. package/contracts/shared/IKeyValueStore.sol +0 -54
  456. package/contracts/shared/KeyValueStore.sol +0 -131
  457. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
5
+ ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {IAccess} from "../authorization/IAccess.sol";
@@ -19,6 +19,7 @@ import {IPoolService} from "../pool/IPoolService.sol";
19
19
  import {IStakingService} from "../staking/IStakingService.sol";
20
20
  import {IRegistryService} from "./IRegistryService.sol";
21
21
  import {IRiskService} from "../product/IRiskService.sol";
22
+
22
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
23
24
 
24
25
 
@@ -27,27 +28,31 @@ contract ServiceAuthorizationV3
27
28
  {
28
29
 
29
30
  constructor(string memory commitHash)
30
- ServiceAuthorization(commitHash, 3)
31
+ ServiceAuthorization(
32
+ "ReleaseAdmin",
33
+ RELEASE(),
34
+ 3,
35
+ commitHash)
31
36
  {}
32
37
 
33
38
  function _setupDomains()
34
39
  internal
35
40
  override
36
41
  {
37
- _authorizeDomain(REGISTRY(), address(1));
38
- _authorizeDomain(STAKING(), address(2));
39
- _authorizeDomain(INSTANCE(), address(3));
40
- _authorizeDomain(ACCOUNTING(), address(4));
41
- _authorizeDomain(COMPONENT(), address(5));
42
- _authorizeDomain(DISTRIBUTION(), address(6));
43
- _authorizeDomain(PRICE(), address(7));
44
- _authorizeDomain(BUNDLE(), address(8));
45
- _authorizeDomain(POOL(), address(9));
46
- _authorizeDomain(ORACLE(), address(10));
47
- _authorizeDomain(RISK(), address(11));
48
- _authorizeDomain(POLICY(), address(12));
49
- _authorizeDomain(CLAIM(), address(13));
50
- _authorizeDomain(APPLICATION(), address(14));
42
+ _authorizeServiceDomain(REGISTRY(), address(1));
43
+ _authorizeServiceDomain(STAKING(), address(2));
44
+ _authorizeServiceDomain(INSTANCE(), address(3));
45
+ _authorizeServiceDomain(ACCOUNTING(), address(4));
46
+ _authorizeServiceDomain(COMPONENT(), address(5));
47
+ _authorizeServiceDomain(DISTRIBUTION(), address(6));
48
+ _authorizeServiceDomain(PRICE(), address(7));
49
+ _authorizeServiceDomain(BUNDLE(), address(8));
50
+ _authorizeServiceDomain(POOL(), address(9));
51
+ _authorizeServiceDomain(ORACLE(), address(10));
52
+ _authorizeServiceDomain(RISK(), address(11));
53
+ _authorizeServiceDomain(POLICY(), address(12));
54
+ _authorizeServiceDomain(CLAIM(), address(13));
55
+ _authorizeServiceDomain(APPLICATION(), address(14));
51
56
  }
52
57
 
53
58
 
@@ -55,10 +60,9 @@ contract ServiceAuthorizationV3
55
60
  internal
56
61
  override
57
62
  {
58
- _setupIRegistryServiceAuthorization();
63
+ _setupRegistryServiceAuthorization();
59
64
  _setupStakingServiceAuthorization();
60
65
  _setupInstanceServiceAuthorization();
61
- _setupInstanceServiceAuthorization();
62
66
  _setupAccountingServiceAuthorization();
63
67
  _setupComponentServiceAuthorization();
64
68
  _setupClaimServiceAuthorization();
@@ -74,7 +78,7 @@ contract ServiceAuthorizationV3
74
78
 
75
79
  /// @dev registry service authorization.
76
80
  /// authorized functions MUST be implemented with a restricted modifier
77
- function _setupIRegistryServiceAuthorization()
81
+ function _setupRegistryServiceAuthorization()
78
82
  internal
79
83
  {
80
84
  IAccess.FunctionInfo[] storage functions;
@@ -116,12 +120,9 @@ contract ServiceAuthorizationV3
116
120
  _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
117
121
 
118
122
  functions = _authorizeForService(STAKING(), ALL());
119
- _authorize(functions, IStakingService.create.selector, "create");
120
- _authorize(functions, IStakingService.stake.selector, "stake");
121
- _authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
122
- _authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
123
- _authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
124
- _authorize(functions, IStakingService.unstake.selector, "unstake");
123
+ _authorize(functions, IStakingService.createStakeObject.selector, "createStakeObject");
124
+ _authorize(functions, IStakingService.pullDipToken.selector, "pullDipToken");
125
+ _authorize(functions, IStakingService.pushDipToken.selector, "pushDipToken");
125
126
  }
126
127
 
127
128
 
@@ -131,8 +132,16 @@ contract ServiceAuthorizationV3
131
132
  {
132
133
  IAccess.FunctionInfo[] storage functions;
133
134
  functions = _authorizeForService(INSTANCE(), ALL());
134
- _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
135
+ _authorize(functions, IInstanceService.createRole.selector, "createRole");
136
+ _authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
137
+ _authorize(functions, IInstanceService.grantRole.selector, "grantRole");
138
+ _authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
139
+
140
+ _authorize(functions, IInstanceService.createTarget.selector, "createTarget");
141
+ _authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
142
+ _authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
135
143
  _authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
144
+ _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
136
145
 
137
146
  _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
138
147
  _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
@@ -141,8 +150,8 @@ contract ServiceAuthorizationV3
141
150
  _authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
142
151
  _authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
143
152
  _authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
144
- _authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
145
- _authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
153
+ _authorize(functions, IInstanceService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
154
+ _authorize(functions, IInstanceService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
146
155
  }
147
156
 
148
157
  /// @dev Accounting service function authorization.
@@ -172,6 +181,7 @@ contract ServiceAuthorizationV3
172
181
  _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
173
182
  _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
174
183
  _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
184
+ _authorize(functions, IAccountingService.increaseProductFeesForPool.selector, "increaseProductFeesForPool");
175
185
 
176
186
  }
177
187
 
@@ -203,7 +213,8 @@ contract ServiceAuthorizationV3
203
213
  functions = _authorizeForService(RISK(), ALL());
204
214
  _authorize(functions, IRiskService.createRisk.selector, "createRisk");
205
215
  _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
206
- _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
216
+ _authorize(functions, IRiskService.setRiskLocked.selector, "setRiskLocked");
217
+ _authorize(functions, IRiskService.closeRisk.selector, "closeRisk");
207
218
  }
208
219
 
209
220
  /// @dev Distribution service function authorization.
@@ -216,7 +227,7 @@ contract ServiceAuthorizationV3
216
227
  _authorize(functions, IClaimService.confirm.selector, "confirm");
217
228
  _authorize(functions, IClaimService.decline.selector, "decline");
218
229
  _authorize(functions, IClaimService.revoke.selector, "revoke");
219
- _authorize(functions, IClaimService.close.selector, "close");
230
+ _authorize(functions, IClaimService.cancelConfirmedClaim.selector, "cancelConfirmedClaim");
220
231
  _authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
221
232
  _authorize(functions, IClaimService.createPayout.selector, "createPayout");
222
233
  _authorize(functions, IClaimService.processPayout.selector, "processPayout");
@@ -283,8 +294,7 @@ contract ServiceAuthorizationV3
283
294
  functions = _authorizeForService(BUNDLE(), ALL());
284
295
  _authorize(functions, IBundleService.create.selector, "create");
285
296
  _authorize(functions, IBundleService.extend.selector, "extend");
286
- _authorize(functions, IBundleService.lock.selector, "lock");
287
- _authorize(functions, IBundleService.unlock.selector, "unlock");
297
+ _authorize(functions, IBundleService.setLocked.selector, "setLocked");
288
298
  _authorize(functions, IBundleService.setFee.selector, "setFee");
289
299
  }
290
300
 
@@ -322,6 +332,7 @@ contract ServiceAuthorizationV3
322
332
  _authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
323
333
  _authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
324
334
  _authorize(functions, IPolicyService.activate.selector, "activate");
335
+ _authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
325
336
  _authorize(functions, IPolicyService.expire.selector, "expire");
326
337
  _authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
327
338
  _authorize(functions, IPolicyService.close.selector, "close");
@@ -3,15 +3,14 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
7
-
8
- import {REGISTRY} from "../type/ObjectType.sol";
9
- import {VersionPart} from "../type/Version.sol";
10
6
 
11
7
  import {IRegistry} from "./IRegistry.sol";
12
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
13
- import {ReleaseRegistry} from "./ReleaseRegistry.sol";
9
+ import {IStaking} from "../staking/IStaking.sol";
10
+
11
+ import {ChainId, ChainIdLib} from "../type/ChainId.sol";
14
12
  import {RegistryAdmin} from "./RegistryAdmin.sol";
13
+ import {VersionPart} from "../type/Version.sol";
15
14
 
16
15
  /// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
17
16
  /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
@@ -19,42 +18,41 @@ contract TokenRegistry is
19
18
  AccessManaged,
20
19
  IRegistryLinked
21
20
  {
22
- event LogTokenRegistryTokenRegistered(uint256 chainId, address token, uint256 decimals, string symbol);
23
- event LogTokenRegistryTokenGlobalStateSet(uint256 chainId, address token, bool active);
24
- event LogTokenRegistryTokenStateSet(uint256 chainId, address token, VersionPart majorVersion, bool active);
21
+ event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
22
+ event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
23
+ event LogTokenRegistryTokenStateSet(ChainId chainId, address token, VersionPart release, bool active);
25
24
 
26
25
  error ErrorTokenRegistryChainIdZero();
27
26
  error ErrorTokenRegistryTokenAddressZero();
28
27
 
29
- error ErrorTokenRegistryNotRemoteToken(uint256 chainId, address token);
30
- error ErrorTokenRegistryTokenAlreadyRegistered(uint256 chainId, address token);
31
- error ErrorTokenRegistryTokenNotContract(uint256 chainId, address token);
32
- error ErrorTokenRegistryTokenNotErc20(uint256 chainId, address token);
28
+ error ErrorTokenRegistryNotRemoteToken(ChainId chainId, address token);
29
+ error ErrorTokenRegistryTokenAlreadyRegistered(ChainId chainId, address token);
30
+ error ErrorTokenRegistryTokenNotContract(ChainId chainId, address token);
31
+ error ErrorTokenRegistryTokenNotErc20(ChainId chainId, address token);
33
32
 
34
- error ErrorTokenRegistryTokenNotRegistered(uint256 chainId, address token);
35
- error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
33
+ error ErrorTokenRegistryTokenNotRegistered(ChainId chainId, address token);
34
+ error ErrorTokenRegistryMajorVersionInvalid(VersionPart release);
36
35
 
37
36
  struct TokenInfo {
38
37
  // slot 0
39
- uint256 chainId;
38
+ ChainId chainId; // 96
39
+ address token; // 20
40
+ uint8 decimals; // 8
41
+ bool active;
40
42
  // slot 1
41
43
  string symbol;
42
- // slot 2
43
- address token;
44
- uint8 decimals;
45
- bool active;
46
44
  }
47
45
 
48
- mapping(uint256 chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
49
- mapping(uint256 chainId => mapping(address token => mapping(VersionPart majorVersion => bool isActive))) internal _active;
46
+ mapping(ChainId chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
47
+ mapping(ChainId chainId => mapping(address token => mapping(VersionPart release => bool isActive))) internal _active;
50
48
  TokenInfo [] internal _token;
51
49
 
52
50
  IRegistry internal _registry;
53
- ReleaseRegistry internal _releaseRegistry;
51
+ ChainId internal _chainId = ChainIdLib.current();
54
52
  IERC20Metadata internal _dipToken;
55
53
 
56
54
  /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
57
- modifier onlyRegisteredToken(uint256 chainId, address token) {
55
+ modifier onlyRegisteredToken(ChainId chainId, address token) {
58
56
  if (!isRegistered(chainId, token)) {
59
57
  revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
60
58
  }
@@ -69,12 +67,13 @@ contract TokenRegistry is
69
67
  setAuthority(authority);
70
68
 
71
69
  _registry = registry;
70
+
71
+ // TODO deal with chains without a dip token
72
72
  _dipToken = _verifyOnchainToken(address(dipToken));
73
73
 
74
74
  // register dip token
75
- uint256 chainId = block.chainid;
76
75
  _registerToken(
77
- chainId,
76
+ _chainId,
78
77
  address(_dipToken),
79
78
  _dipToken.decimals(),
80
79
  _dipToken.symbol());
@@ -88,15 +87,18 @@ contract TokenRegistry is
88
87
  external
89
88
  restricted()
90
89
  {
90
+ // checks
91
91
  IERC20Metadata token = _verifyOnchainToken(tokenAddress);
92
- _registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
92
+
93
+ // effects
94
+ _registerToken(_chainId, tokenAddress, token.decimals(), token.symbol());
93
95
  }
94
96
 
95
97
 
96
98
  /// @dev register the remote token with the provided attributes.
97
99
  /// this function may not be used for tokens when chainId == block.chainid.
98
100
  function registerRemoteToken(
99
- uint256 chainId,
101
+ ChainId chainId,
100
102
  address token,
101
103
  uint8 decimals,
102
104
  string memory symbol
@@ -104,7 +106,7 @@ contract TokenRegistry is
104
106
  external
105
107
  restricted()
106
108
  {
107
- if (chainId == block.chainid) {
109
+ if (chainId == _chainId) {
108
110
  revert ErrorTokenRegistryNotRemoteToken(chainId, token);
109
111
  }
110
112
 
@@ -116,7 +118,7 @@ contract TokenRegistry is
116
118
  /// when setting a token to active=false isActive will return false
117
119
  /// regardless of release specific active value.
118
120
  function setActive(
119
- uint256 chainId,
121
+ ChainId chainId,
120
122
  address token,
121
123
  bool active
122
124
  )
@@ -129,32 +131,32 @@ contract TokenRegistry is
129
131
  }
130
132
 
131
133
 
132
- /// @dev sets active state for specified token and major version.
134
+ /// @dev sets active state for specified token and release (major version).
133
135
  /// internally calls setActiveWithVersionCheck() with enforcing version check.
134
136
  /// token state is informative, registry have no clue about used tokens
135
137
  /// component owner is responsible for token selection and operations
136
138
  /// service MUST deny registration of component with inactive token.
137
139
  function setActiveForVersion(
138
- uint256 chainId,
140
+ ChainId chainId,
139
141
  address token,
140
- VersionPart majorVersion,
142
+ VersionPart release,
141
143
  bool active
142
144
  )
143
145
  external
144
146
  restricted()
145
147
  onlyRegisteredToken(chainId, token)
146
148
  {
147
- _setActiveWithVersionCheck(chainId, token, majorVersion, active, true);
149
+ _setActiveWithVersionCheck(chainId, token, release, active, true);
148
150
  }
149
151
 
150
152
 
151
153
  /// @dev as setActiveForVersion() with the option to skip the version check.
152
154
  /// enforcing the version check checks if the provided major version with the release manager.
153
- /// the function reverts if the provided majorVersion is unknown to the release manager.
155
+ /// the function reverts if the provided release is unknown to the release manager.
154
156
  function setActiveWithVersionCheck(
155
- uint256 chainId,
157
+ ChainId chainId,
156
158
  address token,
157
- VersionPart majorVersion,
159
+ VersionPart release,
158
160
  bool active,
159
161
  bool enforceVersionCheck
160
162
  )
@@ -162,14 +164,14 @@ contract TokenRegistry is
162
164
  restricted()
163
165
  onlyRegisteredToken(chainId, token)
164
166
  {
165
- _setActiveWithVersionCheck(chainId, token, majorVersion, active, enforceVersionCheck);
167
+ _setActiveWithVersionCheck(chainId, token, release, active, enforceVersionCheck);
166
168
  }
167
169
 
168
170
 
169
171
  function _setActiveWithVersionCheck(
170
- uint256 chainId,
172
+ ChainId chainId,
171
173
  address token,
172
- VersionPart majorVersion,
174
+ VersionPart release,
173
175
  bool active,
174
176
  bool enforceVersionCheck
175
177
  )
@@ -177,15 +179,15 @@ contract TokenRegistry is
177
179
  {
178
180
  // verify valid major version
179
181
  if(enforceVersionCheck) {
180
- uint256 version = majorVersion.toInt();
181
- if (!getRegistry().isActiveRelease(majorVersion)) {
182
- revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
182
+ uint256 version = release.toInt();
183
+ if (!getRegistry().isActiveRelease(release)) {
184
+ revert ErrorTokenRegistryMajorVersionInvalid(release);
183
185
  }
184
186
  }
185
187
 
186
- _active[chainId][token][majorVersion] = active;
188
+ _active[chainId][token][release] = active;
187
189
 
188
- emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
190
+ emit LogTokenRegistryTokenStateSet(chainId, token, release, active);
189
191
  }
190
192
 
191
193
  /// @dev returns the dip token for this chain
@@ -204,17 +206,17 @@ contract TokenRegistry is
204
206
  }
205
207
 
206
208
  /// @dev returns the token info for the specified token coordinates.
207
- function getTokenInfo(uint256 chainId, address token) external view returns (TokenInfo memory tokenInfo) {
209
+ function getTokenInfo(ChainId chainId, address token) external view returns (TokenInfo memory tokenInfo) {
208
210
  return _tokenInfo[chainId][token];
209
211
  }
210
212
 
211
213
  /// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
212
- function isRegistered(uint256 chainId, address token) public view returns (bool) {
213
- return _tokenInfo[chainId][token].chainId > 0;
214
+ function isRegistered(ChainId chainId, address token) public view returns (bool) {
215
+ return _tokenInfo[chainId][token].chainId.gtz();
214
216
  }
215
217
 
216
218
  /// @dev returns true iff both the token is active for the specfied release and the global token state is active
217
- function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool) {
219
+ function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool) {
218
220
  if(!_tokenInfo[chainId][token].active) {
219
221
  return false;
220
222
  }
@@ -245,16 +247,15 @@ contract TokenRegistry is
245
247
  returns (IERC20Metadata token)
246
248
  {
247
249
  token = IERC20Metadata(tokenAddress);
248
- uint256 chainId = block.chainid;
249
250
 
250
251
  // MUST be contract
251
252
  if(tokenAddress.code.length == 0) {
252
- revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
253
+ revert ErrorTokenRegistryTokenNotContract(ChainIdLib.current(), tokenAddress);
253
254
  }
254
255
 
255
256
  // MUST implement required erc20 view functions
256
257
  if(!_implementsErc20Functions(token)) {
257
- revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
258
+ revert ErrorTokenRegistryTokenNotErc20(ChainIdLib.current(), tokenAddress);
258
259
  }
259
260
  }
260
261
 
@@ -287,13 +288,13 @@ contract TokenRegistry is
287
288
  /// - token not yet registered
288
289
  /// - chainId not zero
289
290
  /// - token address not zero
290
- function _registerToken(uint256 chainId, address token, uint8 decimals, string memory symbol) internal {
291
+ function _registerToken(ChainId chainId, address token, uint8 decimals, string memory symbol) internal {
291
292
 
292
293
  if (isRegistered(chainId, token)) {
293
294
  revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
294
295
  }
295
296
 
296
- if(chainId == 0) {
297
+ if(chainId.eqz()) {
297
298
  revert ErrorTokenRegistryChainIdZero();
298
299
  }
299
300
 
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
6
 
7
- import {Amount} from "../type/Amount.sol";
7
+ import {Amount, AmountLib} from "../type/Amount.sol";
8
8
  import {IComponent} from "./IComponent.sol";
9
9
  import {IComponents} from "../instance/module/IComponents.sol";
10
10
  import {IComponentService} from "./IComponentService.sol";
@@ -25,7 +25,6 @@ abstract contract Component is
25
25
  struct ComponentStorage {
26
26
  string _name; // unique (per instance) component name
27
27
  bool _isInterceptor;
28
- bytes _data;
29
28
  IComponentService _componentService;
30
29
  }
31
30
 
@@ -46,7 +45,7 @@ abstract contract Component is
46
45
  }
47
46
 
48
47
 
49
- function _initializeComponent(
48
+ function __Component_init(
50
49
  address authority,
51
50
  address registry,
52
51
  NftId parentNftId,
@@ -54,8 +53,7 @@ abstract contract Component is
54
53
  ObjectType componentType,
55
54
  bool isInterceptor,
56
55
  address initialOwner,
57
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
58
- bytes memory componentData // other component specific data
56
+ bytes memory registryData // writeonly data that will saved in the object info record of the registry
59
57
  )
60
58
  internal
61
59
  virtual
@@ -78,7 +76,6 @@ abstract contract Component is
78
76
  ComponentStorage storage $ = _getComponentStorage();
79
77
  $._name = name;
80
78
  $._isInterceptor = isInterceptor;
81
- $._data = componentData;
82
79
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
83
80
 
84
81
  _registerInterface(type(IAccessManaged).interfaceId);
@@ -152,7 +149,11 @@ abstract contract Component is
152
149
  function _approveTokenHandler(IERC20Metadata token, Amount amount)
153
150
  internal
154
151
  virtual
152
+ returns (Amount oldAllowanceAmount)
155
153
  {
154
+ oldAllowanceAmount = AmountLib.toAmount(
155
+ token.allowance(address(getTokenHandler()), address(this)));
156
+
156
157
  _getComponentStorage()._componentService.approveTokenHandler(
157
158
  token,
158
159
  amount);
@@ -197,8 +198,7 @@ abstract contract Component is
197
198
 
198
199
  return IComponents.ComponentInfo({
199
200
  name: $._name,
200
- tokenHandler: TokenHandler(address(0)),
201
- data: $._data // user specific component data
201
+ tokenHandler: TokenHandler(address(0))
202
202
  });
203
203
  }
204
204