@etherisc/gif-next 3.0.0-1b49bd6-565 → 3.0.0-1bd1936-188

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 (468) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +66 -89
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +101 -122
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +10 -20
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +60 -30
  50. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +152 -173
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +65 -41
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +108 -170
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +164 -211
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +65 -41
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  65. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  66. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  69. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  71. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  73. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  75. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  79. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  82. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -77
  85. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
  87. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -144
  89. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +147 -169
  91. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  93. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +36 -36
  95. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
  97. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  99. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  101. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  102. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  103. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  104. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  105. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  107. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  108. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  109. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  111. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  113. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  115. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  117. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  122. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  125. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  127. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  130. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  132. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  134. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  136. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  138. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  140. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  142. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
  144. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  146. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
  148. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  150. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
  152. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  153. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  154. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  156. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
  158. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  160. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  162. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  164. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  166. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  168. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  170. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  172. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  174. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  176. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
  178. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  180. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  182. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  184. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
  186. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  188. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  190. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  192. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  194. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  195. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  196. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  198. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  200. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  201. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  203. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  205. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  207. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  208. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  210. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +142 -163
  212. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  214. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  216. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  218. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -159
  220. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  222. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +185 -127
  224. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  226. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  228. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  230. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
  232. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  234. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  236. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  240. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  241. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -96
  243. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  245. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
  247. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  249. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  250. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  252. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  254. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  256. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  258. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  260. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  287. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  288. package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
  289. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  301. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  303. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  305. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  331. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  332. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  355. package/contracts/accounting/AccountingService.sol +6 -5
  356. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  357. package/contracts/accounting/IAccountingService.sol +1 -1
  358. package/contracts/authorization/AccessAdmin.sol +19 -22
  359. package/contracts/authorization/AccessAdminLib.sol +9 -12
  360. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  361. package/contracts/authorization/Authorization.sol +2 -2
  362. package/contracts/authorization/IAccessAdmin.sol +3 -3
  363. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  364. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  365. package/contracts/distribution/BasicDistribution.sol +2 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  367. package/contracts/distribution/Distribution.sol +2 -0
  368. package/contracts/distribution/DistributionService.sol +20 -24
  369. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  370. package/contracts/examples/fire/FirePool.sol +4 -0
  371. package/contracts/examples/fire/FireProduct.sol +4 -0
  372. package/contracts/examples/flight/FlightLib.sol +5 -1
  373. package/contracts/examples/flight/FlightOracle.sol +8 -0
  374. package/contracts/examples/flight/FlightPool.sol +4 -0
  375. package/contracts/examples/flight/FlightProduct.sol +29 -4
  376. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  379. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  380. package/contracts/instance/Instance.sol +11 -7
  381. package/contracts/instance/InstanceAdmin.sol +17 -10
  382. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  383. package/contracts/instance/InstanceReader.sol +15 -15
  384. package/contracts/instance/InstanceService.sol +20 -18
  385. package/contracts/instance/InstanceServiceManager.sol +6 -4
  386. package/contracts/instance/base/Cloneable.sol +10 -4
  387. package/contracts/instance/base/ObjectSet.sol +2 -2
  388. package/contracts/oracle/BasicOracle.sol +2 -0
  389. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  390. package/contracts/oracle/IOracleService.sol +4 -0
  391. package/contracts/oracle/Oracle.sol +4 -3
  392. package/contracts/oracle/OracleService.sol +67 -37
  393. package/contracts/oracle/OracleServiceManager.sol +6 -4
  394. package/contracts/pool/BasicPool.sol +4 -2
  395. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  396. package/contracts/pool/BundleService.sol +19 -25
  397. package/contracts/pool/BundleServiceManager.sol +7 -5
  398. package/contracts/pool/IPoolService.sol +6 -5
  399. package/contracts/pool/Pool.sol +3 -1
  400. package/contracts/pool/PoolLib.sol +102 -5
  401. package/contracts/pool/PoolService.sol +101 -67
  402. package/contracts/pool/PoolServiceManager.sol +6 -4
  403. package/contracts/product/ApplicationService.sol +34 -13
  404. package/contracts/product/ApplicationServiceManager.sol +6 -4
  405. package/contracts/product/BasicProduct.sol +2 -0
  406. package/contracts/product/BasicProductAuthorization.sol +4 -5
  407. package/contracts/product/ClaimService.sol +34 -10
  408. package/contracts/product/ClaimServiceManager.sol +7 -5
  409. package/contracts/product/IPolicyService.sol +1 -0
  410. package/contracts/product/PolicyService.sol +57 -44
  411. package/contracts/product/PolicyServiceManager.sol +6 -4
  412. package/contracts/product/PricingService.sol +8 -7
  413. package/contracts/product/PricingServiceManager.sol +6 -4
  414. package/contracts/product/Product.sol +2 -0
  415. package/contracts/product/RiskService.sol +40 -8
  416. package/contracts/product/RiskServiceManager.sol +6 -4
  417. package/contracts/registry/IRegistry.sol +14 -20
  418. package/contracts/registry/IRegistryService.sol +14 -10
  419. package/contracts/registry/IRelease.sol +3 -0
  420. package/contracts/registry/Registry.sol +78 -124
  421. package/contracts/registry/RegistryAdmin.sol +22 -11
  422. package/contracts/registry/RegistryAuthorization.sol +3 -4
  423. package/contracts/registry/RegistryService.sol +82 -99
  424. package/contracts/registry/RegistryServiceManager.sol +11 -4
  425. package/contracts/registry/ReleaseAdmin.sol +16 -9
  426. package/contracts/registry/ReleaseRegistry.sol +74 -64
  427. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  428. package/contracts/registry/TokenRegistry.sol +15 -6
  429. package/contracts/shared/Component.sol +22 -27
  430. package/contracts/shared/ComponentService.sol +130 -45
  431. package/contracts/shared/ComponentServiceManager.sol +7 -5
  432. package/contracts/shared/ContractLib.sol +93 -359
  433. package/contracts/shared/IComponent.sol +3 -5
  434. package/contracts/shared/IComponentService.sol +14 -0
  435. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  436. package/contracts/shared/INftOwnable.sol +2 -0
  437. package/contracts/shared/IRegisterable.sol +3 -14
  438. package/contracts/shared/IRegistryLinked.sol +3 -1
  439. package/contracts/shared/IService.sol +2 -2
  440. package/contracts/shared/InstanceLinkedComponent.sol +64 -29
  441. package/contracts/shared/NftOwnable.sol +22 -9
  442. package/contracts/shared/PolicyHolder.sol +4 -2
  443. package/contracts/shared/Registerable.sol +20 -37
  444. package/contracts/shared/RegistryLinked.sol +23 -4
  445. package/contracts/shared/Service.sol +9 -8
  446. package/contracts/shared/TokenHandler.sol +1 -4
  447. package/contracts/staking/IStaking.sol +2 -2
  448. package/contracts/staking/Staking.sol +33 -28
  449. package/contracts/staking/StakingLib.sol +1 -3
  450. package/contracts/staking/StakingManager.sol +6 -3
  451. package/contracts/staking/StakingReader.sol +17 -9
  452. package/contracts/staking/StakingService.sol +13 -16
  453. package/contracts/staking/StakingServiceManager.sol +8 -4
  454. package/contracts/staking/StakingStore.sol +8 -8
  455. package/contracts/staking/TargetHandler.sol +5 -4
  456. package/contracts/type/Version.sol +16 -15
  457. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  458. package/contracts/upgradeability/ProxyManager.sol +54 -46
  459. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  460. package/package.json +1 -1
  461. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  462. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  463. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  464. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  465. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  466. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  467. package/contracts/shared/IVersionable.sol +0 -19
  468. package/contracts/shared/Versionable.sol +0 -47
@@ -4,10 +4,11 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IRelease} from "../registry/IRelease.sol";
7
8
  import {IStaking} from "./IStaking.sol";
8
9
  import {IStakingService} from "./IStakingService.sol";
9
10
  import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
10
- import {IVersionable} from "../shared/IVersionable.sol";
11
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
12
 
12
13
  import {Amount, AmountLib} from "../type/Amount.sol";
13
14
  import {Blocknumber} from "../type/Blocknumber.sol";
@@ -15,7 +16,7 @@ import {ChainId, ChainIdLib} from "../type/ChainId.sol";
15
16
  import {Component} from "../shared/Component.sol";
16
17
  import {IComponent} from "../shared/IComponent.sol";
17
18
  import {NftId} from "../type/NftId.sol";
18
- import {ObjectType, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
19
+ import {ObjectType, PROTOCOL, INSTANCE, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
19
20
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
20
21
  import {Registerable} from "../shared/Registerable.sol";
21
22
  import {StakingLib} from "./StakingLib.sol";
@@ -27,13 +28,12 @@ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
27
28
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
28
29
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
29
30
  import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
30
- import {Versionable} from "../shared/Versionable.sol";
31
- import {Upgradeable} from "../upgradeability/Upgradeable.sol";
31
+ import {Versionable} from "../upgradeability/Versionable.sol";
32
32
 
33
33
 
34
34
  contract Staking is
35
35
  Component,
36
- Upgradeable,
36
+ Versionable,
37
37
  IStaking
38
38
  {
39
39
  string public constant CONTRACT_NAME = "Staking";
@@ -75,18 +75,17 @@ contract Staking is
75
75
  external
76
76
  virtual
77
77
  {
78
- IRegistry registry = _getRegistry();
79
- if (msg.sender != address(registry)) {
78
+ if (msg.sender != address(getRegistry())) {
80
79
  revert ErrorStakingNotRegistry(msg.sender);
81
80
  }
82
81
 
83
82
  StakingStorage storage $ = _getStakingStorage();
84
83
  address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
85
84
  $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
86
- address(registry),
85
+ address(getRegistry()),
87
86
  address(this),
88
87
  dipToken,
89
- registry.getAuthority());
88
+ getRegistry().getAuthority());
90
89
  }
91
90
 
92
91
 
@@ -191,7 +190,7 @@ contract Staking is
191
190
  // effects
192
191
  StakingStorage storage $ = _getStakingStorage();
193
192
  address oldStakingService = address($._stakingService);
194
- $._stakingService = StakingLib.checkAndGetStakingService(release);
193
+ $._stakingService = StakingLib.checkAndGetStakingService(getRegistry(), release);
195
194
 
196
195
  emit LogStakingStakingServiceSet(address($._stakingService), release, oldStakingService);
197
196
  }
@@ -278,10 +277,9 @@ contract Staking is
278
277
  returns (Amount newBalance)
279
278
  {
280
279
  address transferTo;
281
- IRegistry registry = _getRegistry();
282
280
 
283
281
  // case 1: protocol target: staking owner is recipient
284
- if (targetNftId == registry.getProtocolNftId()) {
282
+ if (targetNftId == getRegistry().getProtocolNftId()) {
285
283
  // verify that the caller is the staking owner
286
284
  transferTo = getOwner();
287
285
  if (msg.sender != transferTo) {
@@ -291,7 +289,7 @@ contract Staking is
291
289
  // case 2: same chain target: target owner is recipient
292
290
  } else if (ChainIdLib.isCurrentChain(targetNftId)) {
293
291
  // verify that the caller is the target owner
294
- transferTo = registry.ownerOf(targetNftId);
292
+ transferTo = getRegistry().ownerOf(targetNftId);
295
293
  if (msg.sender != transferTo) {
296
294
  revert ErrorStakingNotNftOwner(targetNftId);
297
295
  }
@@ -325,15 +323,13 @@ contract Staking is
325
323
  onlyTarget(targetNftId)
326
324
  returns (Amount newBalance)
327
325
  {
328
- IRegistry registry = _getRegistry();
329
-
330
326
  // check that service does not withdraw from protocol target
331
- if (targetNftId == registry.getProtocolNftId()) {
327
+ if (targetNftId == getRegistry().getProtocolNftId()) {
332
328
  revert ErrorStakingTargetTypeNotSupported(targetNftId, PROTOCOL());
333
329
  }
334
330
 
335
331
  // default: on-chain target owner is recipient
336
- address targetOwner = registry.ownerOf(targetNftId);
332
+ address targetOwner = getRegistry().ownerOf(targetNftId);
337
333
  return _withdrawRewardReserves(targetNftId, dipAmount, targetOwner);
338
334
  }
339
335
 
@@ -435,9 +431,7 @@ contract Staking is
435
431
  virtual
436
432
  restricted() // only pool service
437
433
  {
438
- // !!! TODO amount can be 0
439
434
  StakingStorage storage $ = _getStakingStorage();
440
- // why not StakingBalanceStore instead of StakingStore?
441
435
  $._store.increaseTotalValueLocked(targetNftId, token, amount);
442
436
  }
443
437
 
@@ -534,7 +528,7 @@ contract Staking is
534
528
 
535
529
  // collect staked DIP token via staking service
536
530
  if (stakeAmount.gtz()) {
537
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
531
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
538
532
  $._stakingService.pullDipToken(stakeAmount, stakeOwner);
539
533
  }
540
534
  }
@@ -557,7 +551,7 @@ contract Staking is
557
551
 
558
552
  // transfer unstaked DIP token via staking service
559
553
  if (unstakedAmount.gtz()) {
560
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
554
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
561
555
  $._stakingService.pushDipToken(unstakedAmount, stakeOwner);
562
556
  }
563
557
  }
@@ -588,7 +582,7 @@ contract Staking is
588
582
  AmountLib.max()); // unstake up to this amount
589
583
 
590
584
  // step 2: create new stake with full unstaked amount
591
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
585
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
592
586
  newStakeNftId = $._stakingService.createStakeObject(newTargetNftId, stakeOwner);
593
587
  $._store.createStake(newStakeNftId, newTargetNftId, stakeOwner, newStakedAmount);
594
588
 
@@ -627,7 +621,7 @@ contract Staking is
627
621
  // collect staked DIP token by staking service
628
622
  if (claimedAmount.gtz()) {
629
623
  // interactions
630
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
624
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
631
625
  $._stakingService.pushDipToken(claimedAmount, stakeOwner);
632
626
  }
633
627
  }
@@ -655,11 +649,21 @@ contract Staking is
655
649
  return _getStakingStorage()._tokenHandler;
656
650
  }
657
651
 
652
+ // from IRegisterable
653
+ function getRelease()
654
+ public
655
+ pure
656
+ virtual override (IRelease, Registerable)
657
+ returns(VersionPart)
658
+ {
659
+ return VersionPartLib.toVersionPart(3);
660
+ }
661
+
658
662
  // from IVersionable
659
663
  function getVersion()
660
664
  public
661
665
  pure
662
- virtual override (IVersionable, Versionable)
666
+ virtual override (Component, IVersionable, Versionable)
663
667
  returns(Version)
664
668
  {
665
669
  return VersionLib.toVersion(3,0,0);
@@ -724,13 +728,14 @@ contract Staking is
724
728
  onlyInitializing()
725
729
  {
726
730
  (
731
+ address registryAddress,
727
732
  address targetHandlerAddress,
728
733
  address stakingStoreAddress,
729
734
  address tokenRegistryAddress
730
- ) = abi.decode(data, (address, address, address));
735
+ ) = abi.decode(data, (address, address, address, address));
731
736
 
732
737
  // wiring to external contracts
733
- IRegistry registry = _getRegistry();
738
+ IRegistry registry = IRegistry(registryAddress);
734
739
  StakingStorage storage $ = _getStakingStorage();
735
740
  $._protocolNftId = registry.getProtocolNftId();
736
741
  $._targetHandler = TargetHandler(targetHandlerAddress);
@@ -740,9 +745,9 @@ contract Staking is
740
745
  // staking service has to be set via setStakingService after deploying the first GIF release
741
746
 
742
747
  // initialize component
743
- // TODO Will read 0 component service address from registry
744
748
  __Component_init(
745
749
  registry.getAuthority(),
750
+ address(registry),
746
751
  registry.getNftId(), // parent nft id
747
752
  CONTRACT_NAME,
748
753
  STAKING(),
@@ -776,7 +781,7 @@ contract Staking is
776
781
  }
777
782
 
778
783
  if (checkOwner) {
779
- address nftOwner = _getRegistry().ownerOf(nftId);
784
+ address nftOwner = getRegistry().ownerOf(nftId);
780
785
  if (msg.sender != nftOwner) {
781
786
  revert ErrorStakingNotOwner(nftId, nftOwner, msg.sender);
782
787
  }
@@ -6,7 +6,6 @@ import {IStaking} from "./IStaking.sol";
6
6
  import {IStakingService} from "./IStakingService.sol";
7
7
 
8
8
  import {Amount} from "../type/Amount.sol";
9
- import {ContractLib} from "../shared/ContractLib.sol";
10
9
  import {NftId} from "../type/NftId.sol";
11
10
  import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
12
11
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
@@ -112,14 +111,13 @@ library StakingLib {
112
111
 
113
112
 
114
113
  function checkAndGetStakingService(
114
+ IRegistry registry,
115
115
  VersionPart release
116
116
  )
117
117
  public
118
118
  view
119
119
  returns (IStakingService stakingService)
120
120
  {
121
- IRegistry registry = ContractLib.getRegistry();
122
-
123
121
  if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
124
122
  revert IStaking.ErrorStakingReleaseNotActive(release);
125
123
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {Staking} from "./Staking.sol";
7
7
 
@@ -15,6 +15,7 @@ contract StakingManager is
15
15
 
16
16
  /// @dev initializes proxy manager with service implementation
17
17
  constructor(
18
+ address registry,
18
19
  address targetHandler,
19
20
  address stakingStore,
20
21
  address tokenRegistry,
@@ -26,16 +27,18 @@ contract StakingManager is
26
27
 
27
28
  _initialImplementation = address(stakingImplementation);
28
29
  _initializationData = abi.encode(
30
+ registry,
29
31
  targetHandler,
30
32
  stakingStore,
31
33
  tokenRegistry);
32
34
 
33
- IUpgradeable upgradeable = initialize(
35
+ IVersionable versionable = initialize(
36
+ registry,
34
37
  _initialImplementation,
35
38
  _initializationData,
36
39
  salt);
37
40
 
38
- _staking = Staking(address(upgradeable));
41
+ _staking = Staking(address(versionable));
39
42
  }
40
43
 
41
44
  //--- view functions ----------------------------------------------------//
@@ -4,32 +4,36 @@ pragma solidity ^0.8.20;
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
7
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
8
8
  import {IStaking} from "../staking/IStaking.sol";
9
9
 
10
- import {Amount} from "../type/Amount.sol";
10
+ import {Amount, AmountLib} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
11
12
  import {ChainId} from "../type/ChainId.sol";
12
13
  import {NftId} from "../type/NftId.sol";
13
14
  import {ObjectType} from "../type/ObjectType.sol";
14
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
15
15
  import {Seconds} from "../type/Seconds.sol";
16
16
  import {StakingStore} from "./StakingStore.sol";
17
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
18
+ import {Timestamp} from "../type/Timestamp.sol";
17
19
  import {UFixed} from "../type/UFixed.sol";
18
20
 
19
21
 
20
22
  contract StakingReader is
21
- Initializable,
22
- RegistryLinked
23
+ IRegistryLinked,
24
+ Initializable
23
25
  {
24
26
 
25
27
  error ErrorStakingReaderUnauthorizedCaler();
26
28
 
27
29
  address private _initializeOwner;
30
+ IRegistry private _registry;
28
31
  IStaking private _staking;
29
32
  StakingStore private _store;
30
33
 
31
- constructor() {
34
+ constructor(IRegistry registry) {
32
35
  _initializeOwner = msg.sender;
36
+ _registry = registry;
33
37
  }
34
38
 
35
39
  function initialize(
@@ -47,14 +51,18 @@ contract StakingReader is
47
51
  _store = StakingStore(stakingStoreAddress);
48
52
  }
49
53
 
50
- // view functions
54
+ // view and pure functions
55
+
56
+ function getRegistry() external view returns (IRegistry registry) {
57
+ return _registry;
58
+ }
51
59
 
52
60
  function getStaking() external view returns (IStaking staking) {
53
61
  return _staking;
54
62
  }
55
63
 
56
64
  function getProtocolNftId() external view returns (NftId protocolNftId) {
57
- return _getRegistry().getProtocolNftId();
65
+ return _registry.getProtocolNftId();
58
66
  }
59
67
 
60
68
 
@@ -74,7 +82,7 @@ contract StakingReader is
74
82
 
75
83
 
76
84
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
77
- return _getRegistry().getParentNftId(stakeNftId);
85
+ return _registry.getParentNftId(stakeNftId);
78
86
  }
79
87
 
80
88
 
@@ -3,6 +3,7 @@ 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";
6
7
  import {IRegistry} from "../registry/IRegistry.sol";
7
8
  import {IStaking} from "./IStaking.sol";
8
9
  import {IStakingService} from "./IStakingService.sol";
@@ -113,7 +114,7 @@ contract StakingService is
113
114
 
114
115
  // update reward reserve book keeping
115
116
  StakingServiceStorage storage $ = _getStakingServiceStorage();
116
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
117
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
117
118
  newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
118
119
 
119
120
  emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
@@ -130,7 +131,7 @@ contract StakingService is
130
131
  _checkNftType(instanceNftId, INSTANCE());
131
132
  // update reward reserve book keeping
132
133
  StakingServiceStorage storage $ = _getStakingServiceStorage();
133
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
134
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
134
135
  newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
135
136
 
136
137
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
@@ -157,12 +158,11 @@ contract StakingService is
157
158
  nftId: NftIdLib.zero(),
158
159
  parentNftId: targetNftId,
159
160
  objectType: STAKE(),
160
- release: getRelease(),
161
161
  isInterceptor: false,
162
- objectAddress: address(0)}),
163
- stakeOwner, // initialOwner
164
- "" // data
165
- );
162
+ objectAddress: address(0),
163
+ initialOwner: stakeOwner,
164
+ data: ""
165
+ }));
166
166
 
167
167
  emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
168
168
  }
@@ -255,18 +255,18 @@ contract StakingService is
255
255
  )
256
256
  internal
257
257
  virtual override
258
- onlyInitializing()
258
+ initializer()
259
259
  {
260
260
  (
261
261
  address authority,
262
+ address registry,
262
263
  address staking
263
- ) = abi.decode(data, (address, address));
264
+ ) = abi.decode(data, (address, address, address));
264
265
 
265
- __Service_init(authority, owner);
266
+ __Service_init(authority, registry, owner);
266
267
 
267
268
  StakingServiceStorage storage $ = _getStakingServiceStorage();
268
269
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
269
- // TODO staking is registered in registry.initialize(), just check if address is registered staking
270
270
  $._staking = _registerStaking(staking);
271
271
  $._dip = $._staking.getToken();
272
272
  $._tokenHandler = $._staking.getTokenHandler();
@@ -283,7 +283,7 @@ contract StakingService is
283
283
  {
284
284
  // check if provided staking contract is already registred
285
285
  // staking contract may have been already registered by a previous major relase
286
- IRegistry.ObjectInfo memory stakingInfo = _getRegistry().getObjectInfo(stakingAddress);
286
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
287
287
  if (stakingInfo.nftId.gtz()) {
288
288
  // registered object but wrong type
289
289
  if (stakingInfo.objectType != STAKING()) {
@@ -294,9 +294,6 @@ 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
-
300
297
  // check that contract implements IStaking
301
298
  if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
302
299
  revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
@@ -304,7 +301,7 @@ contract StakingService is
304
301
 
305
302
  address owner = msg.sender;
306
303
  _getStakingServiceStorage()._registryService.registerStaking(
307
- IStaking(stakingAddress),
304
+ IRegisterable(stakingAddress),
308
305
  owner);
309
306
 
310
307
  return IStaking(stakingAddress);
@@ -2,7 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+
6
7
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
8
  import {StakingService} from "./StakingService.sol";
8
9
 
@@ -15,20 +16,23 @@ contract StakingServiceManager is
15
16
  /// @dev initializes proxy manager with service implementation
16
17
  constructor(
17
18
  address authority,
19
+ address registry,
18
20
  bytes32 salt
19
21
  )
20
22
  {
21
23
  StakingService svc = new StakingService();
22
24
  bytes memory data = abi.encode(
23
25
  authority,
24
- _getRegistry().getStakingAddress());
26
+ registry,
27
+ IRegistry(registry).getStakingAddress());
25
28
 
26
- IUpgradeable upgradeable = initialize(
29
+ IVersionable versionable = initialize(
30
+ registry,
27
31
  address(svc),
28
32
  data,
29
33
  salt);
30
34
 
31
- _stakingService = StakingService(address(upgradeable));
35
+ _stakingService = StakingService(address(versionable));
32
36
  }
33
37
 
34
38
  //--- view functions ----------------------------------------------------//
@@ -18,7 +18,6 @@ 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";
22
21
  import {TargetManagerLib} from "./TargetManagerLib.sol";
23
22
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
23
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
@@ -26,8 +25,7 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
26
25
 
27
26
  contract StakingStore is
28
27
  Initializable,
29
- AccessManaged,
30
- RegistryLinked
28
+ AccessManaged
31
29
  {
32
30
 
33
31
  // token
@@ -55,6 +53,7 @@ contract StakingStore is
55
53
  error ErrorStakingStoreTvlBalanceAlreadyInitialized(NftId nftId, address token);
56
54
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId, address token);
57
55
 
56
+ IRegistry private _registry;
58
57
  ITargetLimitHandler private _targetLimitHandler;
59
58
  StakingReader private _reader;
60
59
  NftIdSet private _targetNftIdSet;
@@ -76,15 +75,16 @@ contract StakingStore is
76
75
 
77
76
 
78
77
  constructor(
78
+ IRegistry registry,
79
79
  StakingReader reader
80
80
  )
81
81
  AccessManaged(msg.sender)
82
82
  {
83
-
84
83
  // set final authority
85
- setAuthority(_getRegistry().getAuthority());
84
+ setAuthority(registry.getAuthority());
86
85
 
87
86
  // set internal variables
87
+ _registry = registry;
88
88
  _reader = reader;
89
89
  _targetNftIdSet = new NftIdSet();
90
90
 
@@ -495,7 +495,7 @@ contract StakingStore is
495
495
  emit IStaking.LogStakingRewardReservesRefilled(
496
496
  targetNftId,
497
497
  dipAmount,
498
- _getRegistry().ownerOf(targetNftId),
498
+ _registry.ownerOf(targetNftId),
499
499
  newReserveBalance,
500
500
  lastUpdateIn);
501
501
  }
@@ -520,7 +520,7 @@ contract StakingStore is
520
520
  emit IStaking.LogStakingRewardReservesWithdrawn(
521
521
  targetNftId,
522
522
  dipAmount,
523
- _getRegistry().ownerOf(targetNftId),
523
+ _registry.ownerOf(targetNftId),
524
524
  newReserveBalance,
525
525
  lastUpdateIn);
526
526
  }
@@ -929,7 +929,7 @@ contract StakingStore is
929
929
  // checks
930
930
  if (checkParameters) {
931
931
  TargetManagerLib.checkTargetParameters(
932
- _getRegistry(),
932
+ _registry,
933
933
  _reader,
934
934
  targetNftId,
935
935
  objectType,
@@ -10,7 +10,6 @@ import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
10
10
  import {Amount, AmountLib} from "../type/Amount.sol";
11
11
  import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
12
12
  import {NftId} from "../type/NftId.sol";
13
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
14
13
  import {StakingStore} from "./StakingStore.sol";
15
14
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
16
15
 
@@ -18,12 +17,12 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
18
17
  contract TargetHandler is
19
18
  Initializable,
20
19
  AccessManaged,
21
- ITargetLimitHandler,
22
- RegistryLinked
20
+ ITargetLimitHandler
23
21
  {
24
22
 
25
23
  event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
26
24
 
25
+ IRegistry private _registry;
27
26
  StakingStore private _store;
28
27
 
29
28
  /// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
@@ -34,12 +33,14 @@ contract TargetHandler is
34
33
 
35
34
 
36
35
  constructor (
36
+ IRegistry registry,
37
37
  StakingStore stakingStore
38
38
  )
39
39
  AccessManaged(msg.sender)
40
40
  {
41
41
  // set final authority and registry
42
- setAuthority(_getRegistry().getAuthority());
42
+ setAuthority(registry.getAuthority());
43
+ _registry = registry;
43
44
  _store = stakingStore;
44
45
 
45
46
  // set default trigger values
@@ -5,9 +5,6 @@ type VersionPart is uint8;
5
5
 
6
6
  using {
7
7
  versionPartGt as >,
8
- versionPartGte as >=,
9
- versionPartLt as <,
10
- versionPartLte as <=,
11
8
  versionPartEq as ==,
12
9
  versionPartNe as !=,
13
10
  VersionPartLib.eqz,
@@ -19,9 +16,6 @@ using {
19
16
  for VersionPart global;
20
17
 
21
18
  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); }
25
19
  function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
26
20
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
27
21
 
@@ -33,7 +27,8 @@ library VersionPartLib {
33
27
  function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
34
28
 
35
29
  function isValidRelease(VersionPart release) external pure returns(bool) {
36
- return releaseMin() <= release && release <= releaseMax();
30
+ uint256 releaseInt = VersionPart.unwrap(release);
31
+ return 3 <= releaseInt && releaseInt <= 99;
37
32
  }
38
33
 
39
34
  function toString(VersionPart a) external pure returns (string memory) {
@@ -71,9 +66,8 @@ library VersionPartLib {
71
66
 
72
67
  function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
73
68
  function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
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); }
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)); }
77
71
  }
78
72
 
79
73
  type Version is uint24; // contains major,minor,patch version parts
@@ -93,7 +87,7 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
93
87
 
94
88
  library VersionLib {
95
89
 
96
- function toInt(Version version) external pure returns(uint24) { return Version.unwrap(version); }
90
+ function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
97
91
 
98
92
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
99
93
 
@@ -130,19 +124,26 @@ library VersionLib {
130
124
  );
131
125
  }
132
126
 
127
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
128
+ // return VersionPart.wrap(uint8(versionPart));
129
+ // }
130
+
133
131
  function toVersion(
134
- uint8 major,
135
- uint8 minor,
136
- uint8 patch
132
+ uint256 major,
133
+ uint256 minor,
134
+ uint256 patch
137
135
  )
138
136
  external
139
137
  pure
140
138
  returns(Version)
141
139
  {
140
+ require(
141
+ major < 256 && minor < 256 && patch < 256,
142
+ "ERROR:VRS-010:VERSION_PART_TOO_BIG");
142
143
 
143
144
  return Version.wrap(
144
145
  uint24(
145
- (uint24(major) << 16) + (uint24(minor) << 8) + patch));
146
+ (major << 16) + (minor << 8) + patch));
146
147
  }
147
148
 
148
149
  // TODO check for overflow?