@etherisc/gif-next 3.0.0-a35a440-562 → 3.0.0-a511887-523

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 (460) hide show
  1. package/README.md +0 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
  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 +45 -3
  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 +158 -67
  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 +112 -49
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
  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 +187 -76
  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 +224 -113
  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 +193 -74
  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 +192 -73
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
  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 +200 -81
  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 +2 -2
  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 +118 -18
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +181 -34
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
  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 +75 -177
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
  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 +2 -2
  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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +128 -52
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  178. package/artifacts/contracts/product/Product.sol/Product.json +112 -49
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +173 -144
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +44 -2
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -49
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +46 -4
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
  255. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  264. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
  269. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/Staking.sol/Staking.json +195 -86
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  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 +25 -22
  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 +4 -23
  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 +4 -4
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -21
  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 +2 -21
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -36
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  332. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  338. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  339. package/contracts/accounting/AccountingService.sol +2 -2
  340. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  341. package/contracts/accounting/IAccountingService.sol +1 -1
  342. package/contracts/authorization/AccessAdmin.sol +19 -16
  343. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  344. package/contracts/authorization/Authorization.sol +2 -2
  345. package/contracts/authorization/IAccessAdmin.sol +2 -3
  346. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  347. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  349. package/contracts/distribution/DistributionService.sol +11 -8
  350. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  351. package/contracts/instance/IInstance.sol +1 -1
  352. package/contracts/instance/Instance.sol +3 -6
  353. package/contracts/instance/InstanceAdmin.sol +9 -14
  354. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  355. package/contracts/instance/InstanceReader.sol +3 -25
  356. package/contracts/instance/InstanceService.sol +4 -4
  357. package/contracts/instance/InstanceServiceManager.sol +3 -3
  358. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  359. package/contracts/oracle/IOracleService.sol +12 -12
  360. package/contracts/oracle/Oracle.sol +3 -2
  361. package/contracts/oracle/OracleService.sol +1 -1
  362. package/contracts/oracle/OracleServiceManager.sol +3 -3
  363. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  364. package/contracts/pool/BundleService.sol +5 -5
  365. package/contracts/pool/BundleServiceManager.sol +3 -3
  366. package/contracts/pool/PoolLib.sol +7 -4
  367. package/contracts/pool/PoolService.sol +3 -3
  368. package/contracts/pool/PoolServiceManager.sol +3 -3
  369. package/contracts/product/ApplicationService.sol +4 -5
  370. package/contracts/product/ApplicationServiceManager.sol +3 -3
  371. package/contracts/product/BasicProductAuthorization.sol +7 -7
  372. package/contracts/product/ClaimService.sol +1 -1
  373. package/contracts/product/ClaimServiceManager.sol +3 -3
  374. package/contracts/product/PolicyService.sol +1 -1
  375. package/contracts/product/PolicyServiceManager.sol +3 -3
  376. package/contracts/product/PricingService.sol +1 -1
  377. package/contracts/product/PricingServiceManager.sol +3 -3
  378. package/contracts/product/RiskService.sol +1 -1
  379. package/contracts/product/RiskServiceManager.sol +3 -3
  380. package/contracts/registry/IRegistry.sol +20 -14
  381. package/contracts/registry/IRegistryService.sol +10 -14
  382. package/contracts/registry/IRelease.sol +0 -3
  383. package/contracts/registry/Registry.sol +124 -78
  384. package/contracts/registry/RegistryAdmin.sol +9 -15
  385. package/contracts/registry/RegistryAuthorization.sol +2 -1
  386. package/contracts/registry/RegistryService.sol +96 -78
  387. package/contracts/registry/RegistryServiceManager.sol +3 -3
  388. package/contracts/registry/ReleaseAdmin.sol +14 -12
  389. package/contracts/registry/ReleaseRegistry.sol +52 -50
  390. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  391. package/contracts/shared/Component.sol +24 -17
  392. package/contracts/shared/ComponentService.sol +28 -101
  393. package/contracts/shared/ComponentServiceManager.sol +3 -3
  394. package/contracts/shared/IComponent.sol +5 -3
  395. package/contracts/shared/IComponentService.sol +0 -14
  396. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  397. package/contracts/shared/IRegisterable.sol +8 -3
  398. package/contracts/shared/IRegistryLinked.sol +3 -1
  399. package/contracts/shared/IService.sol +2 -2
  400. package/contracts/shared/IVersionable.sol +19 -0
  401. package/contracts/shared/InstanceLinkedComponent.sol +39 -124
  402. package/contracts/shared/NftOwnable.sol +1 -14
  403. package/contracts/shared/PolicyHolder.sol +2 -2
  404. package/contracts/shared/Registerable.sol +36 -18
  405. package/contracts/shared/RegistryLinked.sol +11 -4
  406. package/contracts/shared/Service.sol +6 -5
  407. package/contracts/shared/TokenHandler.sol +4 -1
  408. package/contracts/shared/Versionable.sol +47 -0
  409. package/contracts/staking/IStaking.sol +2 -2
  410. package/contracts/staking/Staking.sol +7 -17
  411. package/contracts/staking/StakingManager.sol +3 -3
  412. package/contracts/staking/StakingService.sol +10 -7
  413. package/contracts/staking/StakingServiceManager.sol +3 -4
  414. package/contracts/staking/StakingStore.sol +10 -8
  415. package/contracts/type/ObjectType.sol +31 -2
  416. package/contracts/type/Referral.sol +0 -6
  417. package/contracts/type/Seconds.sol +0 -4
  418. package/contracts/type/String.sol +0 -30
  419. package/contracts/type/Timestamp.sol +1 -10
  420. package/contracts/type/Version.sol +15 -16
  421. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  422. package/contracts/upgradeability/ProxyManager.sol +46 -50
  423. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  424. package/package.json +1 -2
  425. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +0 -4
  426. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +0 -500
  427. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +0 -4
  428. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +0 -229
  429. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +0 -4
  430. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +0 -1198
  431. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +0 -4
  432. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +0 -849
  433. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +0 -4
  434. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +0 -1466
  435. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +0 -4
  436. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +0 -844
  437. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +0 -4
  438. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +0 -2324
  439. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +0 -4
  440. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +0 -844
  441. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +0 -4
  442. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +0 -586
  443. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +0 -4
  444. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +0 -901
  445. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +0 -4
  446. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +0 -33
  447. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  448. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
  449. package/contracts/examples/flight/FlightLib.sol +0 -311
  450. package/contracts/examples/flight/FlightMessageVerifier.sol +0 -128
  451. package/contracts/examples/flight/FlightOracle.sol +0 -167
  452. package/contracts/examples/flight/FlightOracleAuthorization.sol +0 -34
  453. package/contracts/examples/flight/FlightPool.sol +0 -89
  454. package/contracts/examples/flight/FlightPoolAuthorization.sol +0 -37
  455. package/contracts/examples/flight/FlightProduct.sol +0 -626
  456. package/contracts/examples/flight/FlightProductAuthorization.sol +0 -44
  457. package/contracts/examples/flight/FlightUSD.sol +0 -28
  458. package/contracts/examples/flight/originalV1.sol +0 -396
  459. package/contracts/shared/EcdsaChecker.sol +0 -5
  460. package/contracts/type/RequestIdSet.sol +0 -62
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {IRegisterable} from "../shared/IRegisterable.sol";
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IStaking} from "./IStaking.sol";
9
8
  import {IStakingService} from "./IStakingService.sol";
@@ -158,11 +157,12 @@ contract StakingService is
158
157
  nftId: NftIdLib.zero(),
159
158
  parentNftId: targetNftId,
160
159
  objectType: STAKE(),
160
+ release: getRelease(),
161
161
  isInterceptor: false,
162
- objectAddress: address(0),
163
- initialOwner: stakeOwner,
164
- data: ""
165
- }));
162
+ objectAddress: address(0)}),
163
+ stakeOwner, // initialOwner
164
+ "" // data
165
+ );
166
166
 
167
167
  emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
168
168
  }
@@ -255,7 +255,7 @@ contract StakingService is
255
255
  )
256
256
  internal
257
257
  virtual override
258
- initializer()
258
+ onlyInitializing()
259
259
  {
260
260
  (
261
261
  address authority,
@@ -294,6 +294,9 @@ contract StakingService is
294
294
  return IStaking(stakingAddress);
295
295
  }
296
296
 
297
+ // TODO staking is registered in registry.initialize()
298
+ // consider deleting the rest of the function
299
+
297
300
  // check that contract implements IStaking
298
301
  if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
299
302
  revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
@@ -301,7 +304,7 @@ contract StakingService is
301
304
 
302
305
  address owner = msg.sender;
303
306
  _getStakingServiceStorage()._registryService.registerStaking(
304
- IRegisterable(stakingAddress),
307
+ IStaking(stakingAddress),
305
308
  owner);
306
309
 
307
310
  return IStaking(stakingAddress);
@@ -2,8 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IVersionable} from "../upgradeability/IVersionable.sol";
6
-
5
+ import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
7
6
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
8
7
  import {StakingService} from "./StakingService.sol";
9
8
 
@@ -26,13 +25,13 @@ contract StakingServiceManager is
26
25
  registry,
27
26
  IRegistry(registry).getStakingAddress());
28
27
 
29
- IVersionable versionable = initialize(
28
+ IUpgradeable upgradeable = initialize(
30
29
  registry,
31
30
  address(svc),
32
31
  data,
33
32
  salt);
34
33
 
35
- _stakingService = StakingService(address(versionable));
34
+ _stakingService = StakingService(address(upgradeable));
36
35
  }
37
36
 
38
37
  //--- view functions ----------------------------------------------------//
@@ -18,6 +18,7 @@ import {PROTOCOL, INSTANCE} from "../type/ObjectType.sol";
18
18
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
19
19
  import {StakingLib} from "./StakingLib.sol";
20
20
  import {StakingReader} from "./StakingReader.sol";
21
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
21
22
  import {TargetManagerLib} from "./TargetManagerLib.sol";
22
23
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
23
24
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
@@ -25,7 +26,8 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
25
26
 
26
27
  contract StakingStore is
27
28
  Initializable,
28
- AccessManaged
29
+ AccessManaged,
30
+ RegistryLinked
29
31
  {
30
32
 
31
33
  // token
@@ -53,7 +55,6 @@ contract StakingStore is
53
55
  error ErrorStakingStoreTvlBalanceAlreadyInitialized(NftId nftId, address token);
54
56
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId, address token);
55
57
 
56
- IRegistry private _registry;
57
58
  ITargetLimitHandler private _targetLimitHandler;
58
59
  StakingReader private _reader;
59
60
  NftIdSet private _targetNftIdSet;
@@ -75,16 +76,17 @@ contract StakingStore is
75
76
 
76
77
 
77
78
  constructor(
78
- IRegistry registry,
79
+ address registry,
79
80
  StakingReader reader
80
81
  )
81
82
  AccessManaged(msg.sender)
82
83
  {
84
+ __RegistryLinked_init(registry);
85
+
83
86
  // set final authority
84
- setAuthority(registry.getAuthority());
87
+ setAuthority(getRegistry().getAuthority());
85
88
 
86
89
  // set internal variables
87
- _registry = registry;
88
90
  _reader = reader;
89
91
  _targetNftIdSet = new NftIdSet();
90
92
 
@@ -495,7 +497,7 @@ contract StakingStore is
495
497
  emit IStaking.LogStakingRewardReservesRefilled(
496
498
  targetNftId,
497
499
  dipAmount,
498
- _registry.ownerOf(targetNftId),
500
+ getRegistry().ownerOf(targetNftId),
499
501
  newReserveBalance,
500
502
  lastUpdateIn);
501
503
  }
@@ -520,7 +522,7 @@ contract StakingStore is
520
522
  emit IStaking.LogStakingRewardReservesWithdrawn(
521
523
  targetNftId,
522
524
  dipAmount,
523
- _registry.ownerOf(targetNftId),
525
+ getRegistry().ownerOf(targetNftId),
524
526
  newReserveBalance,
525
527
  lastUpdateIn);
526
528
  }
@@ -929,7 +931,7 @@ contract StakingStore is
929
931
  // checks
930
932
  if (checkParameters) {
931
933
  TargetManagerLib.checkTargetParameters(
932
- _registry,
934
+ getRegistry(),
933
935
  _reader,
934
936
  targetNftId,
935
937
  objectType,
@@ -1,7 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {StrLib} from "./String.sol";
5
4
  import {VersionPart} from "./Version.sol";
6
5
 
7
6
  type ObjectType is uint8;
@@ -248,7 +247,7 @@ library ObjectTypeLib {
248
247
  return string(
249
248
  abi.encodePacked(
250
249
  "ObjectType",
251
- StrLib.uintToString(
250
+ toString(
252
251
  toInt(objectType))));
253
252
  }
254
253
 
@@ -275,4 +274,34 @@ library ObjectTypeLib {
275
274
  versionName,
276
275
  release.toString()));
277
276
  }
277
+
278
+ /// @dev returns the provied int as a string
279
+ function toString(uint256 value) public pure returns (string memory name) {
280
+
281
+ if (value == 0) {
282
+ return "0";
283
+ }
284
+
285
+ uint256 temp = value;
286
+ uint256 digits = 0;
287
+ while (temp != 0) {
288
+ digits++;
289
+ temp /= 10;
290
+ }
291
+
292
+ bytes memory buffer = new bytes(digits);
293
+ uint256 index = digits - 1;
294
+
295
+ temp = value;
296
+ while (temp != 0) {
297
+ buffer[index] = bytes1(uint8(48 + temp % 10));
298
+ temp /= 10;
299
+
300
+ if (index > 0) {
301
+ index--;
302
+ }
303
+ }
304
+
305
+ return string(buffer);
306
+ }
278
307
  }
@@ -13,7 +13,6 @@ using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
15
  ReferralLib.eqz,
16
- ReferralLib.toInt,
17
16
  ReferralLib.toKey32
18
17
  } for ReferralId global;
19
18
 
@@ -75,11 +74,6 @@ library ReferralLib {
75
74
  return ReferralStatus.wrap(status);
76
75
  }
77
76
 
78
- /// @dev Converts a referral id into a uint256.
79
- function toInt(ReferralId referralId) public pure returns (uint256) {
80
- return uint64(ReferralId.unwrap(referralId));
81
- }
82
-
83
77
  /// @dev Returns the key32 value for the specified nft id and object type.
84
78
  function toKey32(ReferralId id) public pure returns (Key32 key) {
85
79
  return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
@@ -47,10 +47,6 @@ library SecondsLib {
47
47
  return Seconds.wrap(_max());
48
48
  }
49
49
 
50
- function fromHours(uint32 numberOfHours) public pure returns (Seconds duration) {
51
- return Seconds.wrap(numberOfHours * 3600);
52
- }
53
-
54
50
  function oneDay() public pure returns (Seconds duration) {
55
51
  return Seconds.wrap(24 * 3600);
56
52
  }
@@ -62,34 +62,4 @@ library StrLib {
62
62
  function length(Str str) public pure returns (uint256 byteLength) {
63
63
  return ShortStrings.byteLength(ShortString.wrap(Str.unwrap(str)));
64
64
  }
65
-
66
- /// @dev Returns the provied int as a string
67
- function uintToString(uint256 value) public pure returns (string memory name) {
68
-
69
- if (value == 0) {
70
- return "0";
71
- }
72
-
73
- uint256 temp = value;
74
- uint256 digits = 0;
75
- while (temp != 0) {
76
- digits++;
77
- temp /= 10;
78
- }
79
-
80
- bytes memory buffer = new bytes(digits);
81
- uint256 index = digits - 1;
82
-
83
- temp = value;
84
- while (temp != 0) {
85
- buffer[index] = bytes1(uint8(48 + temp % 10));
86
- temp /= 10;
87
-
88
- if (index > 0) {
89
- index--;
90
- }
91
- }
92
-
93
- return string(buffer);
94
- }
95
65
  }
@@ -23,7 +23,6 @@ using {
23
23
  TimestampLib.gtz,
24
24
  TimestampLib.eqz,
25
25
  TimestampLib.addSeconds,
26
- TimestampLib.subtractSeconds,
27
26
  TimestampLib.toInt
28
27
  } for Timestamp global;
29
28
 
@@ -130,7 +129,7 @@ library TimestampLib {
130
129
  return Timestamp.unwrap(timestamp) > 0;
131
130
  }
132
131
 
133
- /// @dev return a new timestamp that is duration seconds later than the provided timestamp.
132
+ /// @dev return true if Timestamp a is not equal to Timestamp b
134
133
  function addSeconds(
135
134
  Timestamp timestamp,
136
135
  Seconds duration
@@ -138,14 +137,6 @@ library TimestampLib {
138
137
  return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
139
138
  }
140
139
 
141
- /// @dev return a new timestamp that is duration seconds earlier than the provided timestamp.
142
- function subtractSeconds(
143
- Timestamp timestamp,
144
- Seconds duration
145
- ) public pure returns (Timestamp) {
146
- return toTimestamp(Timestamp.unwrap(timestamp) - duration.toInt());
147
- }
148
-
149
140
  function toInt(Timestamp timestamp) public pure returns (uint256) {
150
141
  return uint256(uint40(Timestamp.unwrap(timestamp)));
151
142
  }
@@ -5,6 +5,9 @@ type VersionPart is uint8;
5
5
 
6
6
  using {
7
7
  versionPartGt as >,
8
+ versionPartGte as >=,
9
+ versionPartLt as <,
10
+ versionPartLte as <=,
8
11
  versionPartEq as ==,
9
12
  versionPartNe as !=,
10
13
  VersionPartLib.eqz,
@@ -16,6 +19,9 @@ using {
16
19
  for VersionPart global;
17
20
 
18
21
  function versionPartGt(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) > VersionPart.unwrap(b); }
22
+ function versionPartGte(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) >= VersionPart.unwrap(b); }
23
+ function versionPartLt(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) < VersionPart.unwrap(b); }
24
+ function versionPartLte(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) <= VersionPart.unwrap(b); }
19
25
  function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
20
26
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
21
27
 
@@ -27,8 +33,7 @@ library VersionPartLib {
27
33
  function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
28
34
 
29
35
  function isValidRelease(VersionPart release) external pure returns(bool) {
30
- uint256 releaseInt = VersionPart.unwrap(release);
31
- return 3 <= releaseInt && releaseInt <= 99;
36
+ return releaseMin() <= release && release <= releaseMax();
32
37
  }
33
38
 
34
39
  function toString(VersionPart a) external pure returns (string memory) {
@@ -66,8 +71,9 @@ library VersionPartLib {
66
71
 
67
72
  function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
68
73
  function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
69
- function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
70
- function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
74
+ function toInt(VersionPart a) external pure returns(uint8) { return VersionPart.unwrap(a); }
75
+ function toVersionPart(uint8 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
76
+ function zero() external pure returns(VersionPart) { return VersionPart.wrap(0); }
71
77
  }
72
78
 
73
79
  type Version is uint24; // contains major,minor,patch version parts
@@ -87,7 +93,7 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
87
93
 
88
94
  library VersionLib {
89
95
 
90
- function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
96
+ function toInt(Version version) external pure returns(uint24) { return Version.unwrap(version); }
91
97
 
92
98
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
93
99
 
@@ -124,26 +130,19 @@ library VersionLib {
124
130
  );
125
131
  }
126
132
 
127
- // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
128
- // return VersionPart.wrap(uint8(versionPart));
129
- // }
130
-
131
133
  function toVersion(
132
- uint256 major,
133
- uint256 minor,
134
- uint256 patch
134
+ uint8 major,
135
+ uint8 minor,
136
+ uint8 patch
135
137
  )
136
138
  external
137
139
  pure
138
140
  returns(Version)
139
141
  {
140
- require(
141
- major < 256 && minor < 256 && patch < 256,
142
- "ERROR:VRS-010:VERSION_PART_TOO_BIG");
143
142
 
144
143
  return Version.wrap(
145
144
  uint24(
146
- (major << 16) + (minor << 8) + patch));
145
+ (uint24(major) << 16) + (uint24(minor) << 8) + patch));
147
146
  }
148
147
 
149
148
  // TODO check for overflow?
@@ -1,21 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Version} from "../type/Version.sol";
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
5
 
6
6
  /// IMPORTANT
7
7
  // Upgradeable contract MUST:
8
- // 1) inherit from Versionable
9
- // 2) implement version() function
8
+ // 1) inherit Upgradeable
9
+ // 2) implement getVersion() function
10
10
  // 3) implement internal _initialize() function with onlyInitializing modifier
11
11
  // 4) implement internal _upgrade() function with onlyInitializing modifier (1st version MUST revert)
12
- // 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade() (MUST use different functions for initialization/upgrade and normal operations)
13
- // 6) use default empty constructor -> _disableInitializer() is called from Versionable contructor
14
- // 7) use namespace storage (should this be needed)
15
- // 8) since now inheritance is used for upgradability, contract MUST BE inherited ONLY by the next version
12
+ // 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade()
13
+ // 6) use different functions for initialization, upgrade and normal operations
14
+ // 7) use default empty constructor -> _disableInitializer() is called from Upgradeable contructor
15
+ // 8) use namespace storage (should storage be needed)
16
16
  // Upgradeable contract SHOULD:
17
17
  // 9) define all non private methods as virtual (in order to be able to upgrade them latter)
18
- // otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new fucntions
18
+ // otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new functions
19
19
  // in some cases this ok but not in the others...
20
20
  //
21
21
  // IMPORTANT
@@ -26,31 +26,25 @@ import {Version} from "../type/Version.sol";
26
26
  // 2) ALWAYS define private getter if accessing storage
27
27
  // - MUST use default implementation, CAN change ONLY return type
28
28
 
29
- interface IVersionable {
29
+ interface IUpgradeable is IVersionable {
30
30
 
31
31
  error ErrorVersionableInitializeNotImplemented();
32
32
  error ErrorVersionableUpgradeNotImplemented();
33
33
 
34
34
  /**
35
35
  * @dev IMPORTANT
36
+ * top level initializer for each upgradeable
36
37
  * implementation MUST be guarded by initializer modifier
37
38
  * new version MUST inherit from previous version
38
39
  */
39
- function initializeVersionable(address activatedBy, bytes memory activationData) external;
40
+ function initialize(address activatedBy, bytes memory activationData) external;
40
41
 
41
42
  /**
42
43
  * @dev
44
+ * top level reinitializer for each upgradeable
43
45
  * implementation MUST be guarded by reinitializer(version().toUint64()) modifier
44
46
  * new version MUST inherit from previous version
45
47
  * the first verion MUST revert
46
48
  */
47
- function upgradeVersionable(bytes memory upgradeData) external;
48
-
49
- /**
50
- * @dev returns version of this contract
51
- * each new implementation MUST implement this function
52
- * version number MUST increase
53
- */
54
- function getVersion() external pure returns(Version);
55
-
49
+ function upgrade(bytes memory upgradeData) external;
56
50
  }
@@ -5,14 +5,14 @@ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.s
5
5
  import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
6
6
 
7
7
  import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
8
- import {IVersionable} from "./IVersionable.sol";
8
+ import {IUpgradeable} from "./IUpgradeable.sol";
9
9
  import {NftId} from "../type/NftId.sol";
10
10
  import {NftOwnable} from "../shared/NftOwnable.sol";
11
11
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
12
  import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
- import {Version, VersionLib} from "../type/Version.sol";
13
+ import {Version, VersionPart, VersionLib} from "../type/Version.sol";
14
14
 
15
- /// @dev manages proxy deployments for upgradable contracs of type IVersionable
15
+ /// @dev manages proxy deployments for upgradable contracs of type IUpgradeable
16
16
  contract ProxyManager is
17
17
  NftOwnable
18
18
  {
@@ -27,14 +27,15 @@ contract ProxyManager is
27
27
  address activatedBy;
28
28
  }
29
29
 
30
- event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
31
- event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
30
+ event LogProxyManagerProxyDeployed(address indexed proxy, address initialImplementation);
31
+ event LogProxyManagerProxyUpgraded(address indexed proxy, address upgradedImplementation);
32
32
 
33
33
  error ErrorProxyManagerAlreadyDeployed();
34
34
  error ErrorProxyManagerNotYetDeployed();
35
35
 
36
36
  error ErrorProxyManagerZeroVersion();
37
37
  error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
38
+ error ErrorProxyManagerNextVersionReleaseInvalid(Version nextVersion);
38
39
 
39
40
  UpgradableProxyWithAdmin internal _proxy;
40
41
 
@@ -51,9 +52,13 @@ contract ProxyManager is
51
52
  )
52
53
  public
53
54
  initializer()
54
- returns (IVersionable versionable)
55
+ returns (IUpgradeable upgradeable)
55
56
  {
56
- versionable = deployDetermenistic(
57
+ address initialOwner = msg.sender;
58
+
59
+ __NftOwnable_init(registry, initialOwner);
60
+
61
+ upgradeable = deployDetermenistic(
57
62
  registry,
58
63
  implementation,
59
64
  data,
@@ -69,12 +74,14 @@ contract ProxyManager is
69
74
  public
70
75
  virtual
71
76
  onlyInitializing()
72
- returns (IVersionable versionable)
77
+ returns (IUpgradeable upgradeable)
73
78
  {
74
- (
75
- address currentProxyOwner,
76
- address initialProxyAdminOwner
77
- ) = _preDeployChecksAndSetup(registry);
79
+ if (_versions.length > 0) {
80
+ revert ErrorProxyManagerAlreadyDeployed();
81
+ }
82
+
83
+ address currentProxyOwner = getOwner(); // used by implementation
84
+ address initialProxyAdminOwner = address(this); // used by proxy
78
85
 
79
86
  _proxy = new UpgradableProxyWithAdmin(
80
87
  initialImplementation,
@@ -82,11 +89,11 @@ contract ProxyManager is
82
89
  getDeployData(currentProxyOwner, initializationData)
83
90
  );
84
91
 
85
- versionable = _updateVersionHistory(
92
+ upgradeable = _updateVersionHistory(
86
93
  initialImplementation,
87
94
  currentProxyOwner);
88
95
 
89
- emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
96
+ emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
90
97
  }
91
98
 
92
99
  function deployDetermenistic(
@@ -98,12 +105,14 @@ contract ProxyManager is
98
105
  public
99
106
  virtual
100
107
  onlyInitializing()
101
- returns (IVersionable versionable)
108
+ returns (IUpgradeable upgradeable)
102
109
  {
103
- (
104
- address currentProxyOwner,
105
- address initialProxyAdminOwner
106
- ) = _preDeployChecksAndSetup(registry);
110
+ if (_versions.length > 0) {
111
+ revert ErrorProxyManagerAlreadyDeployed();
112
+ }
113
+
114
+ address currentProxyOwner = getOwner(); // used by implementation
115
+ address initialProxyAdminOwner = address(this); // used by proxy
107
116
 
108
117
  _proxy = new UpgradableProxyWithAdmin{salt: salt}(
109
118
  initialImplementation,
@@ -111,11 +120,11 @@ contract ProxyManager is
111
120
  getDeployData(currentProxyOwner, initializationData)
112
121
  );
113
122
 
114
- versionable = _updateVersionHistory(
123
+ upgradeable = _updateVersionHistory(
115
124
  initialImplementation,
116
125
  currentProxyOwner);
117
126
 
118
- emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
127
+ emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
119
128
  }
120
129
 
121
130
  /// @dev upgrade existing contract.
@@ -124,7 +133,7 @@ contract ProxyManager is
124
133
  public
125
134
  virtual
126
135
  onlyOwner()
127
- returns (IVersionable versionable)
136
+ returns (IUpgradeable upgradeable)
128
137
  {
129
138
  bytes memory emptyUpgradeData;
130
139
  return upgrade(newImplementation, emptyUpgradeData);
@@ -135,7 +144,7 @@ contract ProxyManager is
135
144
  public
136
145
  virtual
137
146
  onlyOwner()
138
- returns (IVersionable versionable)
147
+ returns (IUpgradeable upgradeable)
139
148
  {
140
149
  if (_versions.length == 0) {
141
150
  revert ErrorProxyManagerNotYetDeployed();
@@ -150,11 +159,11 @@ contract ProxyManager is
150
159
  newImplementation,
151
160
  getUpgradeData(upgradeData));
152
161
 
153
- versionable = _updateVersionHistory(
162
+ upgradeable = _updateVersionHistory(
154
163
  newImplementation,
155
164
  currentProxyOwner);
156
165
 
157
- emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
166
+ emit LogProxyManagerProxyUpgraded(address(upgradeable), newImplementation);
158
167
 
159
168
  }
160
169
 
@@ -164,14 +173,14 @@ contract ProxyManager is
164
173
 
165
174
  function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
166
175
  return abi.encodeWithSelector(
167
- IVersionable.initializeVersionable.selector,
176
+ IUpgradeable.initialize.selector,
168
177
  proxyOwner,
169
178
  deployData);
170
179
  }
171
180
 
172
181
  function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
173
182
  return abi.encodeWithSelector(
174
- IVersionable.upgradeVersionable.selector,
183
+ IUpgradeable.upgrade.selector,
175
184
  upgradeData);
176
185
  }
177
186
 
@@ -180,7 +189,7 @@ contract ProxyManager is
180
189
  }
181
190
 
182
191
  function getVersion() external view virtual returns(Version) {
183
- return IVersionable(address(_proxy)).getVersion();
192
+ return _versionHistory[_versions[_versions.length]].version;
184
193
  }
185
194
 
186
195
  function getVersionCount() external view returns(uint256) {
@@ -195,42 +204,29 @@ contract ProxyManager is
195
204
  return _versionHistory[_version];
196
205
  }
197
206
 
198
- function _preDeployChecksAndSetup(address registry)
199
- private
200
- returns (
201
- address currentProxyOwner,
202
- address initialProxyAdminOwner
203
- )
204
- {
205
- if (_versions.length > 0) {
206
- revert ErrorProxyManagerAlreadyDeployed();
207
- }
208
-
209
- address initialOwner = msg.sender;
210
- __NftOwnable_init(registry, initialOwner);
211
-
212
- currentProxyOwner = getOwner(); // used by implementation
213
- initialProxyAdminOwner = address(this); // used by proxy
214
- }
215
-
216
207
  function _updateVersionHistory(
217
208
  address implementation,
218
209
  address activatedBy
219
210
  )
220
211
  private
221
- returns (IVersionable versionable)
212
+ returns (IUpgradeable upgradeable)
222
213
  {
223
- versionable = IVersionable(address(_proxy));
224
- Version newVersion = versionable.getVersion();
214
+ upgradeable = IUpgradeable(address(_proxy));
215
+ Version newVersion = upgradeable.getVersion();
225
216
 
226
217
  if(newVersion == VersionLib.zeroVersion()) {
227
218
  revert ErrorProxyManagerZeroVersion();
228
219
  }
229
220
 
230
221
  if(_versions.length > 0) {
231
- if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
222
+ Version version = _versions[_versions.length-1];
223
+ if(newVersion.toInt() <= version.toInt()) {
232
224
  revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
233
225
  }
226
+
227
+ if(newVersion.toMajorPart() != version.toMajorPart()) {
228
+ revert ErrorProxyManagerNextVersionReleaseInvalid(newVersion);
229
+ }
234
230
  }
235
231
 
236
232
  // update version history