@etherisc/gif-next 3.0.0-d7939fe-905 → 3.0.0-f90c901-018

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 (444) hide show
  1. package/README.md +2 -2
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +139 -72
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  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 +20 -10
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +126 -75
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +72 -57
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
  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 +166 -104
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +200 -138
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  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 +159 -102
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +163 -106
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +171 -114
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +49 -54
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -25
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -50
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +34 -34
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -75
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  101. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -81
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -66
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +176 -117
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +182 -115
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +122 -128
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +72 -57
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +202 -216
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  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 +314 -96
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +163 -142
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +285 -244
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
  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 +127 -185
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -29
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +1 -28
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
  236. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
  238. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +72 -57
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -34
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  262. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +101 -56
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
  268. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.json +170 -109
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  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/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +4 -4
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  328. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +63 -86
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  334. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  335. package/contracts/accounting/AccountingService.sol +5 -6
  336. package/contracts/accounting/AccountingServiceManager.sol +4 -6
  337. package/contracts/accounting/IAccountingService.sol +1 -1
  338. package/contracts/authorization/AccessAdmin.sol +22 -18
  339. package/contracts/authorization/AccessAdminLib.sol +12 -9
  340. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  341. package/contracts/authorization/Authorization.sol +2 -2
  342. package/contracts/authorization/IAccessAdmin.sol +3 -3
  343. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  344. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  345. package/contracts/distribution/BasicDistribution.sol +0 -2
  346. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  347. package/contracts/distribution/Distribution.sol +0 -2
  348. package/contracts/distribution/DistributionService.sol +24 -20
  349. package/contracts/distribution/DistributionServiceManager.sol +4 -6
  350. package/contracts/examples/fire/FirePool.sol +0 -4
  351. package/contracts/examples/fire/FireProduct.sol +0 -4
  352. package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
  353. package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
  354. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  355. package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
  356. package/contracts/instance/Instance.sol +7 -11
  357. package/contracts/instance/InstanceAdmin.sol +10 -17
  358. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  359. package/contracts/instance/InstanceReader.sol +15 -15
  360. package/contracts/instance/InstanceService.sol +18 -20
  361. package/contracts/instance/InstanceServiceManager.sol +4 -6
  362. package/contracts/instance/base/Cloneable.sol +4 -10
  363. package/contracts/instance/base/ObjectSet.sol +2 -2
  364. package/contracts/oracle/BasicOracle.sol +0 -2
  365. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  366. package/contracts/oracle/IOracleService.sol +0 -4
  367. package/contracts/oracle/Oracle.sol +3 -4
  368. package/contracts/oracle/OracleService.sol +37 -67
  369. package/contracts/oracle/OracleServiceManager.sol +4 -6
  370. package/contracts/pool/BasicPool.sol +2 -4
  371. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  372. package/contracts/pool/BundleService.sol +25 -19
  373. package/contracts/pool/BundleServiceManager.sol +5 -7
  374. package/contracts/pool/IPoolService.sol +5 -6
  375. package/contracts/pool/Pool.sol +1 -3
  376. package/contracts/pool/PoolLib.sol +5 -102
  377. package/contracts/pool/PoolService.sol +67 -101
  378. package/contracts/pool/PoolServiceManager.sol +4 -6
  379. package/contracts/product/ApplicationService.sol +13 -34
  380. package/contracts/product/ApplicationServiceManager.sol +4 -6
  381. package/contracts/product/BasicProduct.sol +0 -2
  382. package/contracts/product/BasicProductAuthorization.sol +5 -4
  383. package/contracts/product/ClaimService.sol +10 -34
  384. package/contracts/product/ClaimServiceManager.sol +5 -7
  385. package/contracts/product/IPolicyService.sol +0 -1
  386. package/contracts/product/PolicyService.sol +44 -57
  387. package/contracts/product/PolicyServiceManager.sol +4 -6
  388. package/contracts/product/PricingService.sol +7 -8
  389. package/contracts/product/PricingServiceManager.sol +4 -6
  390. package/contracts/product/Product.sol +0 -2
  391. package/contracts/product/RiskService.sol +8 -40
  392. package/contracts/product/RiskServiceManager.sol +4 -6
  393. package/contracts/registry/IRegistry.sol +20 -14
  394. package/contracts/registry/IRegistryService.sol +10 -14
  395. package/contracts/registry/IRelease.sol +0 -3
  396. package/contracts/registry/Registry.sol +124 -78
  397. package/contracts/registry/RegistryAdmin.sol +11 -22
  398. package/contracts/registry/RegistryAuthorization.sol +4 -3
  399. package/contracts/registry/RegistryService.sol +99 -82
  400. package/contracts/registry/RegistryServiceManager.sol +4 -11
  401. package/contracts/registry/ReleaseAdmin.sol +9 -16
  402. package/contracts/registry/ReleaseRegistry.sol +64 -74
  403. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  404. package/contracts/registry/TokenRegistry.sol +6 -15
  405. package/contracts/shared/Component.sol +27 -22
  406. package/contracts/shared/ComponentService.sol +45 -130
  407. package/contracts/shared/ComponentServiceManager.sol +5 -7
  408. package/contracts/shared/ContractLib.sol +359 -93
  409. package/contracts/shared/IComponent.sol +5 -3
  410. package/contracts/shared/IComponentService.sol +0 -14
  411. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  412. package/contracts/shared/INftOwnable.sol +0 -2
  413. package/contracts/shared/IRegisterable.sol +14 -3
  414. package/contracts/shared/IRegistryLinked.sol +1 -3
  415. package/contracts/shared/IService.sol +2 -2
  416. package/contracts/shared/IVersionable.sol +19 -0
  417. package/contracts/shared/InstanceLinkedComponent.sol +32 -82
  418. package/contracts/shared/NftOwnable.sol +9 -22
  419. package/contracts/shared/PolicyHolder.sol +2 -4
  420. package/contracts/shared/Registerable.sol +37 -20
  421. package/contracts/shared/RegistryLinked.sol +4 -23
  422. package/contracts/shared/Service.sol +8 -9
  423. package/contracts/shared/TokenHandler.sol +4 -1
  424. package/contracts/shared/Versionable.sol +47 -0
  425. package/contracts/staking/IStaking.sol +2 -2
  426. package/contracts/staking/Staking.sol +28 -33
  427. package/contracts/staking/StakingLib.sol +3 -1
  428. package/contracts/staking/StakingManager.sol +3 -6
  429. package/contracts/staking/StakingReader.sol +9 -17
  430. package/contracts/staking/StakingService.sol +16 -13
  431. package/contracts/staking/StakingServiceManager.sol +4 -8
  432. package/contracts/staking/StakingStore.sol +8 -8
  433. package/contracts/staking/TargetHandler.sol +4 -5
  434. package/contracts/type/Version.sol +15 -16
  435. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  436. package/contracts/upgradeability/ProxyManager.sol +46 -54
  437. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  438. package/package.json +1 -1
  439. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
  440. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
  441. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
  442. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
  443. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  444. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -5,10 +5,9 @@ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
6
 
7
7
  import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
8
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
9
8
  import {IRegistry} from "./IRegistry.sol";
10
9
  import {IRelease} from "./IRelease.sol";
11
- import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
10
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
12
11
  import {IService} from "../shared/IService.sol";
13
12
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
14
13
 
@@ -16,7 +15,7 @@ import {ContractLib} from "../shared/ContractLib.sol";
16
15
  import {NftId} from "../type/NftId.sol";
17
16
  import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
18
17
  import {RegistryAdmin} from "./RegistryAdmin.sol";
19
- import {Registry} from "./Registry.sol";
18
+ import {Registry, GIF_INITIAL_RELEASE} from "./Registry.sol";
20
19
  import {ReleaseAdmin} from "./ReleaseAdmin.sol";
21
20
  import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
22
21
  import {Seconds} from "../type/Seconds.sol";
@@ -34,18 +33,13 @@ import {VersionPart, VersionPartLib} from "../type/Version.sol";
34
33
  contract ReleaseRegistry is
35
34
  AccessManaged,
36
35
  ReleaseLifecycle,
37
- IRegistryLinked
36
+ RegistryLinked
38
37
  {
39
- uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
40
-
41
38
  event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
42
39
  event LogReleaseActivation(VersionPart release);
43
40
  event LogReleaseDisabled(VersionPart release);
44
41
  event LogReleaseEnabled(VersionPart release);
45
42
 
46
- // constructor
47
- error ErrorReleaseRegistryNotRegistry(Registry registry);
48
-
49
43
  // _verifyServiceAuthorization
50
44
  error ErrorReleaseRegistryNotServiceAuth(address notAuth);
51
45
  error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
@@ -59,20 +53,19 @@ contract ReleaseRegistry is
59
53
 
60
54
  // _verifyService
61
55
  error ErrorReleaseRegistryNotService(address notService);
62
- error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
63
- error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
56
+ error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address expectedAuthority, address actualAuthority);
64
57
  error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
65
58
 
66
- // _verifyServiceInfo
59
+ // _getAndVerifyServiceInfo
67
60
  error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
68
61
  error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
69
62
  error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
63
+ error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
70
64
  error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
71
65
  error ErrorReleaseRegistryServiceSelfRegistration(IService service);
72
66
  error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
73
67
 
74
68
  RegistryAdmin public immutable _registryAdmin;
75
- Registry public immutable _registry;
76
69
 
77
70
  mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
78
71
  VersionPart [] internal _release; // array of all created releases
@@ -86,21 +79,18 @@ contract ReleaseRegistry is
86
79
  uint256 internal _servicesToRegister = 0;
87
80
 
88
81
  // TODO move master relase admin outside constructor (same construction as for registry admin)
89
- constructor(Registry registry)
82
+ constructor()
90
83
  AccessManaged(msg.sender)
91
84
  {
92
- if (!ContractLib.isRegistry(address(registry))) {
93
- revert ErrorReleaseRegistryNotRegistry(registry);
94
- }
85
+ IRegistry registry = _getRegistry();
95
86
 
96
87
  setAuthority(registry.getAuthority());
97
88
 
98
- _registry = registry;
99
- _registryAdmin = RegistryAdmin(_registry.getRegistryAdminAddress());
89
+ _registryAdmin = RegistryAdmin(registry.getRegistryAdminAddress());
100
90
  _masterReleaseAdmin = new ReleaseAdmin(
101
91
  _cloneNewAccessManager());
102
92
 
103
- _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
93
+ _next = VersionPartLib.toVersionPart(GIF_INITIAL_RELEASE().toInt() - 1);
104
94
  }
105
95
 
106
96
  /// @dev Initiates the creation of a new GIF release by the GIF admin.
@@ -118,7 +108,7 @@ contract ReleaseRegistry is
118
108
  }
119
109
 
120
110
  release = VersionPartLib.toVersionPart(release.toInt() + 1);
121
- _release.push(release);
111
+ _release.push(release); // TODO push only activated releases, _next keeps total release count
122
112
 
123
113
  _next = release;
124
114
  _releaseInfo[release].version = release;
@@ -184,24 +174,21 @@ contract ReleaseRegistry is
184
174
  address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
185
175
  IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
186
176
  ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
177
+ address expectedOwner = msg.sender;
187
178
 
188
179
  // service can work with release registry and release version
189
180
  (
190
181
  IRegistry.ObjectInfo memory info,
191
- ObjectType serviceDomain,
192
- VersionPart serviceVersion
193
- //,string memory serviceName
182
+ bytes memory data,
183
+ ObjectType serviceDomain
194
184
  ) = _verifyService(
195
185
  service,
186
+ expectedOwner,
196
187
  releaseAuthority,
197
188
  releaseVersion,
198
189
  expectedDomain
199
190
  );
200
191
 
201
- //_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
202
- //_releaseInfo[releaseVersion].domains.push(serviceDomain);
203
- //_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
204
-
205
192
  _registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
206
193
 
207
194
  // release fully deployed
@@ -222,7 +209,7 @@ contract ReleaseRegistry is
222
209
  releaseAdmin.setReleaseLocked(true);
223
210
 
224
211
  // register service with registry
225
- nftId = _registry.registerService(info, serviceVersion, serviceDomain);
212
+ nftId = _getRegistry().registerService(info, expectedOwner, serviceDomain, data);
226
213
  service.linkToRegisteredNftId();
227
214
  }
228
215
 
@@ -245,25 +232,27 @@ contract ReleaseRegistry is
245
232
  // grant special roles for registry/staking/pool services
246
233
  // this will enable access to core contracts functions
247
234
 
235
+ IRegistry registry = _getRegistry();
236
+
248
237
  // registry service MUST be registered for each release
249
- address service = _registry.getServiceAddress(REGISTRY(), release);
238
+ address service = registry.getServiceAddress(REGISTRY(), release);
250
239
  if(service == address(0)) {
251
240
  revert ErrorReleaseRegistryRegistryServiceMissing(release);
252
241
  }
253
242
 
254
243
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
255
244
 
256
- service = _registry.getServiceAddress(STAKING(), release);
245
+ service = registry.getServiceAddress(STAKING(), release);
257
246
  if(service != address(0)) {
258
247
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
259
248
  }
260
249
 
261
- service = _registry.getServiceAddress(COMPONENT(), release);
250
+ service = registry.getServiceAddress(COMPONENT(), release);
262
251
  if(service != address(0)) {
263
252
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
264
253
  }
265
254
 
266
- service = _registry.getServiceAddress(POOL(), release);
255
+ service = registry.getServiceAddress(POOL(), release);
267
256
  if(service != address(0)) {
268
257
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
269
258
  }
@@ -356,12 +345,6 @@ contract ReleaseRegistry is
356
345
  return address(_registryAdmin);
357
346
  }
358
347
 
359
- //--- IRegistryLinked ------------------------------------------------------//
360
-
361
- function getRegistry() external view returns (IRegistry) {
362
- return _registry;
363
- }
364
-
365
348
  //--- private functions ----------------------------------------------------//
366
349
 
367
350
  function _setReleaseLocked(VersionPart release, bool locked)
@@ -389,12 +372,11 @@ contract ReleaseRegistry is
389
372
 
390
373
  clonedAdmin.initialize(
391
374
  address(_cloneNewAccessManager()),
392
- releaseAdminName);
375
+ releaseAdminName,
376
+ release);
393
377
 
394
378
  clonedAdmin.completeSetup(
395
- address(_registry),
396
379
  address(serviceAuthorization),
397
- release,
398
380
  address(this)); // release registry (this contract)
399
381
 
400
382
  // lock release (remains locked until activation)
@@ -439,62 +421,65 @@ contract ReleaseRegistry is
439
421
 
440
422
  // TODO get service names
441
423
  function _verifyService(
442
- IService service,
424
+ IService service,
425
+ address expectedOwner,
443
426
  address expectedAuthority,
444
- VersionPart expectedVersion,
427
+ VersionPart expectedRelease,
445
428
  ObjectType expectedDomain
446
429
  )
447
430
  internal
448
431
  view
449
432
  returns(
450
- IRegistry.ObjectInfo memory serviceInfo,
451
- ObjectType serviceDomain,
452
- VersionPart serviceVersion
433
+ IRegistry.ObjectInfo memory info,
434
+ bytes memory data,
435
+ ObjectType domain
453
436
  )
454
437
  {
455
438
  if(!service.supportsInterface(type(IService).interfaceId)) {
456
439
  revert ErrorReleaseRegistryNotService(address(service));
457
440
  }
458
441
 
459
- address owner = msg.sender;
460
- address serviceAuthority = service.authority();
461
- serviceVersion = service.getVersion().toMajorPart();
462
- serviceDomain = service.getDomain();// checked in registry
463
- serviceInfo = service.getInitialInfo();
442
+ address authority = service.authority();
443
+ domain = service.getDomain();// checked in registry
464
444
 
465
- _verifyServiceInfo(service, serviceInfo, owner);
445
+ (info,, data) = _getAndVerifyServiceInfo(
446
+ service,
447
+ expectedOwner,
448
+ expectedRelease);
466
449
 
467
- if(serviceAuthority != expectedAuthority) {
450
+ if(authority != expectedAuthority) {
468
451
  revert ErrorReleaseRegistryServiceAuthorityMismatch(
469
452
  service,
470
- serviceAuthority,
471
- expectedAuthority);
453
+ expectedAuthority,
454
+ authority);
472
455
  }
473
456
 
474
- if(serviceVersion != expectedVersion) {
475
- revert ErrorReleaseRegistryServiceVersionMismatch(
476
- service,
477
- serviceVersion,
478
- expectedVersion);
479
- }
480
-
481
- if(serviceDomain != expectedDomain) {
457
+ if(domain != expectedDomain) {
482
458
  revert ErrorReleaseRegistryServiceDomainMismatch(
483
459
  service,
484
460
  expectedDomain,
485
- serviceDomain);
461
+ domain);
486
462
  }
487
463
  }
488
464
 
489
465
 
490
- function _verifyServiceInfo(
466
+ function _getAndVerifyServiceInfo(
491
467
  IService service,
492
- IRegistry.ObjectInfo memory info,
493
- address expectedOwner // assume always valid, can not be 0
468
+ address expectedOwner, // assume always valid, can not be 0
469
+ VersionPart expectedRelease
494
470
  )
495
471
  internal
496
472
  view
473
+ returns (
474
+ IRegistry.ObjectInfo memory info,
475
+ address initialOwner,
476
+ bytes memory data
477
+ )
497
478
  {
479
+ info = service.getInitialInfo();
480
+ initialOwner = service.getOwner();
481
+ data = service.getInitialData();
482
+
498
483
  if(info.objectAddress != address(service)) {
499
484
  revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
500
485
  }
@@ -507,18 +492,23 @@ contract ReleaseRegistry is
507
492
  revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
508
493
  }
509
494
 
510
- address owner = info.initialOwner;
495
+ if(info.release != expectedRelease) {
496
+ revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
497
+ service,
498
+ expectedRelease,
499
+ info.release);
500
+ }
511
501
 
512
- if(owner != expectedOwner) { // registerable owner protection
513
- revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
502
+ if(initialOwner != expectedOwner) { // registerable owner protection
503
+ revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, initialOwner);
514
504
  }
515
505
 
516
- if(owner == address(service)) {
506
+ if(initialOwner == address(service)) {
517
507
  revert ErrorReleaseRegistryServiceSelfRegistration(service);
518
508
  }
519
509
 
520
- if(_registry.isRegistered(owner)) {
521
- revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
510
+ if(_getRegistry().isRegistered(initialOwner)) {
511
+ revert ErrorReleaseRegistryServiceOwnerRegistered(service, initialOwner);
522
512
  }
523
513
  }
524
514
  }
@@ -21,6 +21,8 @@ import {IRegistryService} from "./IRegistryService.sol";
21
21
  import {IRiskService} from "../product/IRiskService.sol";
22
22
 
23
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
24
+ import {VersionPartLib} from "../../contracts/type/Version.sol";
25
+ import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
24
26
 
25
27
 
26
28
  contract ServiceAuthorizationV3
@@ -31,7 +33,7 @@ contract ServiceAuthorizationV3
31
33
  ServiceAuthorization(
32
34
  "ReleaseAdmin",
33
35
  RELEASE(),
34
- 3,
36
+ GIF_INITIAL_RELEASE(),
35
37
  commitHash)
36
38
  {}
37
39
 
@@ -90,8 +92,7 @@ contract ServiceAuthorizationV3
90
92
  _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
91
93
 
92
94
  functions = _authorizeForService(REGISTRY(), COMPONENT());
93
- _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
94
- _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
95
+ _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
95
96
 
96
97
  functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
97
98
  _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
@@ -5,7 +5,7 @@ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManage
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
6
 
7
7
  import {IRegistry} from "./IRegistry.sol";
8
- import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
8
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
10
 
11
11
  import {ChainId, ChainIdLib} from "../type/ChainId.sol";
@@ -16,7 +16,7 @@ import {VersionPart} from "../type/Version.sol";
16
16
  /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
17
17
  contract TokenRegistry is
18
18
  AccessManaged,
19
- IRegistryLinked
19
+ RegistryLinked
20
20
  {
21
21
  event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
22
22
  event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
@@ -47,7 +47,6 @@ contract TokenRegistry is
47
47
  mapping(ChainId chainId => mapping(address token => mapping(VersionPart release => bool isActive))) internal _active;
48
48
  TokenInfo [] internal _token;
49
49
 
50
- IRegistry internal _registry;
51
50
  ChainId internal _chainId = ChainIdLib.current();
52
51
  IERC20Metadata internal _dipToken;
53
52
 
@@ -59,14 +58,13 @@ contract TokenRegistry is
59
58
  _;
60
59
  }
61
60
 
62
- constructor(IRegistry registry, IERC20Metadata dipToken)
61
+ constructor(IERC20Metadata dipToken)
63
62
  AccessManaged(msg.sender)
64
63
  {
65
64
  // set authority
66
- address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
65
+ address authority = RegistryAdmin(
66
+ _getRegistry().getRegistryAdminAddress()).authority();
67
67
  setAuthority(authority);
68
-
69
- _registry = registry;
70
68
 
71
69
  // TODO deal with chains without a dip token
72
70
  _dipToken = _verifyOnchainToken(address(dipToken));
@@ -180,7 +178,7 @@ contract TokenRegistry is
180
178
  // verify valid major version
181
179
  if(enforceVersionCheck) {
182
180
  uint256 version = release.toInt();
183
- if (!getRegistry().isActiveRelease(release)) {
181
+ if (!_getRegistry().isActiveRelease(release)) {
184
182
  revert ErrorTokenRegistryMajorVersionInvalid(release);
185
183
  }
186
184
  }
@@ -228,13 +226,6 @@ contract TokenRegistry is
228
226
  return address(_dipToken);
229
227
  }
230
228
 
231
- //--- IRegistryLinked --------------------------------------------------//
232
-
233
- /// @dev returns the dip token for this chain
234
- function getRegistry() public view returns (IRegistry) {
235
- return _registry;
236
- }
237
-
238
229
  //--- internal functions ------------------------------------------------//
239
230
 
240
231
 
@@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol";
12
12
  import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
13
13
  import {Registerable} from "../shared/Registerable.sol";
14
14
  import {TokenHandler} from "../shared/TokenHandler.sol";
15
- import {Version, VersionLib} from "../type/Version.sol";
15
+ import {Version, VersionPart, VersionLib} from "../type/Version.sol";
16
16
 
17
17
 
18
18
  abstract contract Component is
@@ -23,14 +23,17 @@ abstract contract Component is
23
23
  bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
24
24
 
25
25
  struct ComponentStorage {
26
- string _name; // unique (per instance) component name
27
- bool _isInterceptor;
26
+ // slot 0
28
27
  IComponentService _componentService;
28
+ // slot 1
29
+ string _name; // unique (per instance) component name -> make pure to save gas?
30
+ // slot 2
31
+ bytes _data;
29
32
  }
30
33
 
31
34
 
32
35
  modifier onlyChainNft() {
33
- if(msg.sender != getRegistry().getChainNftAddress()) {
36
+ if(msg.sender != _getRegistry().getChainNftAddress()) {
34
37
  revert ErrorComponentNotChainNft(msg.sender);
35
38
  }
36
39
  _;
@@ -44,10 +47,9 @@ abstract contract Component is
44
47
  }
45
48
  }
46
49
 
47
-
50
+ /// @dev requires component parent to be registered
48
51
  function __Component_init(
49
52
  address authority,
50
- address registry,
51
53
  NftId parentNftId,
52
54
  string memory name,
53
55
  ObjectType componentType,
@@ -65,7 +67,6 @@ abstract contract Component is
65
67
 
66
68
  __Registerable_init(
67
69
  authority,
68
- registry,
69
70
  parentNftId,
70
71
  componentType,
71
72
  isInterceptor,
@@ -75,7 +76,6 @@ abstract contract Component is
75
76
  // set component state
76
77
  ComponentStorage storage $ = _getComponentStorage();
77
78
  $._name = name;
78
- $._isInterceptor = isInterceptor;
79
79
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
80
80
 
81
81
  _registerInterface(type(IAccessManaged).interfaceId);
@@ -93,6 +93,17 @@ abstract contract Component is
93
93
  _nftTransferFrom(from, to, tokenId, operator);
94
94
  }
95
95
 
96
+ /// @inheritdoc IComponent
97
+ function withdrawFees(Amount amount)
98
+ external
99
+ virtual
100
+ restricted()
101
+ onlyOwner()
102
+ returns (Amount withdrawnAmount)
103
+ {
104
+ return _withdrawFees(amount);
105
+ }
106
+
96
107
 
97
108
  function getWallet() public view virtual returns (address walletAddress) {
98
109
  return getTokenHandler().getWallet();
@@ -110,10 +121,6 @@ abstract contract Component is
110
121
  return getComponentInfo().name;
111
122
  }
112
123
 
113
- function getVersion() public view virtual returns (Version version) {
114
- return VersionLib.toVersion(1, 0, 0);
115
- }
116
-
117
124
  function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
118
125
  if (isRegistered()) {
119
126
  return _getComponentInfo();
@@ -129,17 +136,9 @@ abstract contract Component is
129
136
  }
130
137
 
131
138
 
132
- function isNftInterceptor() public virtual view returns(bool isInterceptor) {
133
- if (isRegistered()) {
134
- return getRegistry().getObjectInfo(address(this)).isInterceptor;
135
- } else {
136
- return _getComponentStorage()._isInterceptor;
137
- }
138
- }
139
-
140
139
 
141
140
  function isRegistered() public virtual view returns (bool) {
142
- return getRegistry().getNftIdForAddress(address(this)).gtz();
141
+ return _getRegistry().getNftIdForAddress(address(this)).gtz();
143
142
  }
144
143
 
145
144
 
@@ -170,6 +169,12 @@ abstract contract Component is
170
169
  // empty default implementation
171
170
  }
172
171
 
172
+ function _withdrawFees(Amount amount)
173
+ internal
174
+ returns (Amount withdrawnAmount)
175
+ {
176
+ return _getComponentStorage()._componentService.withdrawFees(amount);
177
+ }
173
178
 
174
179
  /// @dev Sets the components wallet to the specified address.
175
180
  /// Depending on the source of the component information this function needs to be overwritten.
@@ -205,6 +210,6 @@ abstract contract Component is
205
210
  /// @dev returns the service address for the specified domain
206
211
  /// gets address via lookup from registry using the major version form the linked instance
207
212
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
208
- return getRegistry().getServiceAddress(domain, getRelease());
213
+ return _getRegistry().getServiceAddress(domain, getRelease());
209
214
  }
210
215
  }