@etherisc/gif-next 3.0.0-d6cf78d-199 → 3.0.0-f90c901-018

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/README.md +2 -2
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +139 -72
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +20 -10
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +126 -75
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +72 -57
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +166 -104
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +200 -138
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +159 -102
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +163 -106
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +171 -114
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +49 -54
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -25
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -50
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +34 -34
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -75
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  101. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -81
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -66
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +176 -117
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +182 -115
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +122 -128
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +72 -57
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +202 -216
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +163 -142
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +285 -244
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +127 -185
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -29
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +1 -28
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
  236. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
  238. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +72 -57
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -34
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  262. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +101 -56
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
  268. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.json +170 -109
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +4 -4
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  328. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +63 -86
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  334. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  335. package/contracts/accounting/AccountingService.sol +5 -6
  336. package/contracts/accounting/AccountingServiceManager.sol +4 -6
  337. package/contracts/accounting/IAccountingService.sol +1 -1
  338. package/contracts/authorization/AccessAdmin.sol +22 -18
  339. package/contracts/authorization/AccessAdminLib.sol +12 -9
  340. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  341. package/contracts/authorization/Authorization.sol +2 -2
  342. package/contracts/authorization/IAccessAdmin.sol +3 -3
  343. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  344. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  345. package/contracts/distribution/BasicDistribution.sol +0 -2
  346. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  347. package/contracts/distribution/Distribution.sol +0 -2
  348. package/contracts/distribution/DistributionService.sol +24 -20
  349. package/contracts/distribution/DistributionServiceManager.sol +4 -6
  350. package/contracts/examples/fire/FirePool.sol +0 -4
  351. package/contracts/examples/fire/FireProduct.sol +0 -4
  352. package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
  353. package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
  354. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  355. package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
  356. package/contracts/instance/Instance.sol +7 -11
  357. package/contracts/instance/InstanceAdmin.sol +10 -17
  358. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  359. package/contracts/instance/InstanceReader.sol +15 -15
  360. package/contracts/instance/InstanceService.sol +18 -20
  361. package/contracts/instance/InstanceServiceManager.sol +4 -6
  362. package/contracts/instance/base/Cloneable.sol +4 -10
  363. package/contracts/instance/base/ObjectSet.sol +2 -2
  364. package/contracts/oracle/BasicOracle.sol +0 -2
  365. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  366. package/contracts/oracle/IOracleService.sol +0 -4
  367. package/contracts/oracle/Oracle.sol +3 -4
  368. package/contracts/oracle/OracleService.sol +37 -67
  369. package/contracts/oracle/OracleServiceManager.sol +4 -6
  370. package/contracts/pool/BasicPool.sol +2 -4
  371. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  372. package/contracts/pool/BundleService.sol +25 -19
  373. package/contracts/pool/BundleServiceManager.sol +5 -7
  374. package/contracts/pool/IPoolService.sol +5 -6
  375. package/contracts/pool/Pool.sol +1 -3
  376. package/contracts/pool/PoolLib.sol +5 -102
  377. package/contracts/pool/PoolService.sol +67 -101
  378. package/contracts/pool/PoolServiceManager.sol +4 -6
  379. package/contracts/product/ApplicationService.sol +13 -34
  380. package/contracts/product/ApplicationServiceManager.sol +4 -6
  381. package/contracts/product/BasicProduct.sol +0 -2
  382. package/contracts/product/BasicProductAuthorization.sol +5 -4
  383. package/contracts/product/ClaimService.sol +10 -34
  384. package/contracts/product/ClaimServiceManager.sol +5 -7
  385. package/contracts/product/IPolicyService.sol +0 -1
  386. package/contracts/product/PolicyService.sol +44 -57
  387. package/contracts/product/PolicyServiceManager.sol +4 -6
  388. package/contracts/product/PricingService.sol +7 -8
  389. package/contracts/product/PricingServiceManager.sol +4 -6
  390. package/contracts/product/Product.sol +0 -2
  391. package/contracts/product/RiskService.sol +8 -40
  392. package/contracts/product/RiskServiceManager.sol +4 -6
  393. package/contracts/registry/IRegistry.sol +20 -14
  394. package/contracts/registry/IRegistryService.sol +10 -14
  395. package/contracts/registry/IRelease.sol +0 -3
  396. package/contracts/registry/Registry.sol +124 -78
  397. package/contracts/registry/RegistryAdmin.sol +11 -22
  398. package/contracts/registry/RegistryAuthorization.sol +4 -3
  399. package/contracts/registry/RegistryService.sol +99 -82
  400. package/contracts/registry/RegistryServiceManager.sol +4 -11
  401. package/contracts/registry/ReleaseAdmin.sol +9 -16
  402. package/contracts/registry/ReleaseRegistry.sol +64 -74
  403. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  404. package/contracts/registry/TokenRegistry.sol +6 -15
  405. package/contracts/shared/Component.sol +27 -22
  406. package/contracts/shared/ComponentService.sol +45 -130
  407. package/contracts/shared/ComponentServiceManager.sol +5 -7
  408. package/contracts/shared/ContractLib.sol +359 -93
  409. package/contracts/shared/IComponent.sol +5 -3
  410. package/contracts/shared/IComponentService.sol +0 -14
  411. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  412. package/contracts/shared/INftOwnable.sol +0 -2
  413. package/contracts/shared/IRegisterable.sol +14 -3
  414. package/contracts/shared/IRegistryLinked.sol +1 -3
  415. package/contracts/shared/IService.sol +2 -2
  416. package/contracts/shared/IVersionable.sol +19 -0
  417. package/contracts/shared/InstanceLinkedComponent.sol +32 -82
  418. package/contracts/shared/NftOwnable.sol +9 -22
  419. package/contracts/shared/PolicyHolder.sol +2 -4
  420. package/contracts/shared/Registerable.sol +37 -20
  421. package/contracts/shared/RegistryLinked.sol +4 -23
  422. package/contracts/shared/Service.sol +8 -9
  423. package/contracts/shared/TokenHandler.sol +4 -1
  424. package/contracts/shared/Versionable.sol +47 -0
  425. package/contracts/staking/IStaking.sol +2 -2
  426. package/contracts/staking/Staking.sol +28 -33
  427. package/contracts/staking/StakingLib.sol +3 -1
  428. package/contracts/staking/StakingManager.sol +3 -6
  429. package/contracts/staking/StakingReader.sol +9 -17
  430. package/contracts/staking/StakingService.sol +16 -13
  431. package/contracts/staking/StakingServiceManager.sol +4 -8
  432. package/contracts/staking/StakingStore.sol +8 -8
  433. package/contracts/staking/TargetHandler.sol +4 -5
  434. package/contracts/type/Version.sol +15 -16
  435. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  436. package/contracts/upgradeability/ProxyManager.sol +46 -54
  437. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  438. package/package.json +1 -1
  439. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
  440. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
  441. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
  442. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
  443. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  444. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -10,6 +10,7 @@ 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";
13
14
  import {StakingStore} from "./StakingStore.sol";
14
15
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
16
 
@@ -17,12 +18,12 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
18
  contract TargetHandler is
18
19
  Initializable,
19
20
  AccessManaged,
20
- ITargetLimitHandler
21
+ ITargetLimitHandler,
22
+ RegistryLinked
21
23
  {
22
24
 
23
25
  event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
24
26
 
25
- IRegistry private _registry;
26
27
  StakingStore private _store;
27
28
 
28
29
  /// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
@@ -33,14 +34,12 @@ contract TargetHandler is
33
34
 
34
35
 
35
36
  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(registry.getAuthority());
43
- _registry = registry;
42
+ setAuthority(_getRegistry().getAuthority());
44
43
  _store = stakingStore;
45
44
 
46
45
  // set default trigger values
@@ -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
 
@@ -44,17 +45,19 @@ contract ProxyManager is
44
45
 
45
46
  /// @dev convencience initializer
46
47
  function initialize(
47
- address registry,
48
48
  address implementation,
49
49
  bytes memory data,
50
50
  bytes32 salt
51
51
  )
52
52
  public
53
53
  initializer()
54
- returns (IVersionable versionable)
54
+ returns (IUpgradeable upgradeable)
55
55
  {
56
- versionable = deployDetermenistic(
57
- registry,
56
+ address initialOwner = msg.sender;
57
+
58
+ __NftOwnable_init(initialOwner);
59
+
60
+ upgradeable = deployDetermenistic(
58
61
  implementation,
59
62
  data,
60
63
  salt);
@@ -62,19 +65,20 @@ contract ProxyManager is
62
65
 
63
66
  /// @dev deploy initial contract
64
67
  function deploy(
65
- address registry,
66
68
  address initialImplementation,
67
69
  bytes memory initializationData
68
70
  )
69
71
  public
70
72
  virtual
71
73
  onlyInitializing()
72
- returns (IVersionable versionable)
74
+ returns (IUpgradeable upgradeable)
73
75
  {
74
- (
75
- address currentProxyOwner,
76
- address initialProxyAdminOwner
77
- ) = _preDeployChecksAndSetup(registry);
76
+ if (_versions.length > 0) {
77
+ revert ErrorProxyManagerAlreadyDeployed();
78
+ }
79
+
80
+ address currentProxyOwner = getOwner(); // used by implementation
81
+ address initialProxyAdminOwner = address(this); // used by proxy
78
82
 
79
83
  _proxy = new UpgradableProxyWithAdmin(
80
84
  initialImplementation,
@@ -82,15 +86,14 @@ contract ProxyManager is
82
86
  getDeployData(currentProxyOwner, initializationData)
83
87
  );
84
88
 
85
- versionable = _updateVersionHistory(
89
+ upgradeable = _updateVersionHistory(
86
90
  initialImplementation,
87
91
  currentProxyOwner);
88
92
 
89
- emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
93
+ emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
90
94
  }
91
95
 
92
96
  function deployDetermenistic(
93
- address registry,
94
97
  address initialImplementation,
95
98
  bytes memory initializationData,
96
99
  bytes32 salt
@@ -98,12 +101,14 @@ contract ProxyManager is
98
101
  public
99
102
  virtual
100
103
  onlyInitializing()
101
- returns (IVersionable versionable)
104
+ returns (IUpgradeable upgradeable)
102
105
  {
103
- (
104
- address currentProxyOwner,
105
- address initialProxyAdminOwner
106
- ) = _preDeployChecksAndSetup(registry);
106
+ if (_versions.length > 0) {
107
+ revert ErrorProxyManagerAlreadyDeployed();
108
+ }
109
+
110
+ address currentProxyOwner = getOwner(); // used by implementation
111
+ address initialProxyAdminOwner = address(this); // used by proxy
107
112
 
108
113
  _proxy = new UpgradableProxyWithAdmin{salt: salt}(
109
114
  initialImplementation,
@@ -111,11 +116,11 @@ contract ProxyManager is
111
116
  getDeployData(currentProxyOwner, initializationData)
112
117
  );
113
118
 
114
- versionable = _updateVersionHistory(
119
+ upgradeable = _updateVersionHistory(
115
120
  initialImplementation,
116
121
  currentProxyOwner);
117
122
 
118
- emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
123
+ emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
119
124
  }
120
125
 
121
126
  /// @dev upgrade existing contract.
@@ -124,7 +129,7 @@ contract ProxyManager is
124
129
  public
125
130
  virtual
126
131
  onlyOwner()
127
- returns (IVersionable versionable)
132
+ returns (IUpgradeable upgradeable)
128
133
  {
129
134
  bytes memory emptyUpgradeData;
130
135
  return upgrade(newImplementation, emptyUpgradeData);
@@ -135,7 +140,7 @@ contract ProxyManager is
135
140
  public
136
141
  virtual
137
142
  onlyOwner()
138
- returns (IVersionable versionable)
143
+ returns (IUpgradeable upgradeable)
139
144
  {
140
145
  if (_versions.length == 0) {
141
146
  revert ErrorProxyManagerNotYetDeployed();
@@ -150,11 +155,11 @@ contract ProxyManager is
150
155
  newImplementation,
151
156
  getUpgradeData(upgradeData));
152
157
 
153
- versionable = _updateVersionHistory(
158
+ upgradeable = _updateVersionHistory(
154
159
  newImplementation,
155
160
  currentProxyOwner);
156
161
 
157
- emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
162
+ emit LogProxyManagerProxyUpgraded(address(upgradeable), newImplementation);
158
163
 
159
164
  }
160
165
 
@@ -164,14 +169,14 @@ contract ProxyManager is
164
169
 
165
170
  function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
166
171
  return abi.encodeWithSelector(
167
- IVersionable.initializeVersionable.selector,
172
+ IUpgradeable.initialize.selector,
168
173
  proxyOwner,
169
174
  deployData);
170
175
  }
171
176
 
172
177
  function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
173
178
  return abi.encodeWithSelector(
174
- IVersionable.upgradeVersionable.selector,
179
+ IUpgradeable.upgrade.selector,
175
180
  upgradeData);
176
181
  }
177
182
 
@@ -180,7 +185,7 @@ contract ProxyManager is
180
185
  }
181
186
 
182
187
  function getVersion() external view virtual returns(Version) {
183
- return IVersionable(address(_proxy)).getVersion();
188
+ return _versionHistory[_versions[_versions.length]].version;
184
189
  }
185
190
 
186
191
  function getVersionCount() external view returns(uint256) {
@@ -195,42 +200,29 @@ contract ProxyManager is
195
200
  return _versionHistory[_version];
196
201
  }
197
202
 
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
203
  function _updateVersionHistory(
217
204
  address implementation,
218
205
  address activatedBy
219
206
  )
220
207
  private
221
- returns (IVersionable versionable)
208
+ returns (IUpgradeable upgradeable)
222
209
  {
223
- versionable = IVersionable(address(_proxy));
224
- Version newVersion = versionable.getVersion();
210
+ upgradeable = IUpgradeable(address(_proxy));
211
+ Version newVersion = upgradeable.getVersion();
225
212
 
226
213
  if(newVersion == VersionLib.zeroVersion()) {
227
214
  revert ErrorProxyManagerZeroVersion();
228
215
  }
229
216
 
230
217
  if(_versions.length > 0) {
231
- if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
218
+ Version version = _versions[_versions.length-1];
219
+ if(newVersion.toInt() <= version.toInt()) {
232
220
  revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
233
221
  }
222
+
223
+ if(newVersion.toMajorPart() != version.toMajorPart()) {
224
+ revert ErrorProxyManagerNextVersionReleaseInvalid(newVersion);
225
+ }
234
226
  }
235
227
 
236
228
  // update version history
@@ -3,39 +3,40 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {IVersionable} from "./IVersionable.sol";
7
- import {Version, VersionLib} from "../type/Version.sol";
6
+ import {IUpgradeable} from "./IUpgradeable.sol";
7
+ import {Version} from "../type/Version.sol";
8
+ import {Versionable} from "../shared/Versionable.sol";
8
9
 
9
-
10
- abstract contract Versionable is
11
- Initializable,
12
- IVersionable
10
+ abstract contract Upgradeable is
11
+ Initializable,
12
+ Versionable,
13
+ IUpgradeable
13
14
  {
14
15
  constructor() {
15
16
  _disableInitializers();
16
17
  }
17
18
 
18
- function initializeVersionable(
19
+ function initialize(
19
20
  address activatedBy,
20
21
  bytes memory data
21
22
  )
22
- public
23
- initializer()
23
+ external
24
24
  {
25
- _initialize(activatedBy, data);
25
+ if(_getInitializedVersion() != 0) {
26
+ revert InvalidInitialization();
27
+ }
28
+ __Upgradeable_init(activatedBy, data);
26
29
  }
27
30
 
28
- function upgradeVersionable(
31
+ function upgrade(
29
32
  bytes memory data
30
33
  )
31
34
  external
32
- reinitializer(VersionLib.toUint64(getVersion()))
35
+ reinitializer(getVersion().toInt())
33
36
  {
34
37
  _upgrade(data);
35
38
  }
36
39
 
37
- function getVersion() public pure virtual returns(Version);
38
-
39
40
  // IMPORTANT each version must implement this function
40
41
  // each implementation MUST use onlyInitialising modifier
41
42
  // each implementation MUST call intializers of all base contracts...
@@ -59,4 +60,14 @@ abstract contract Versionable is
59
60
  {
60
61
  revert ErrorVersionableUpgradeNotImplemented();
61
62
  }
63
+
64
+ function __Upgradeable_init(
65
+ address activatedBy,
66
+ bytes memory data
67
+ )
68
+ private
69
+ reinitializer(getVersion().toInt())
70
+ {
71
+ _initialize(activatedBy, data);
72
+ }
62
73
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "3.0.0-d6cf78d-199",
3
+ "version": "3.0.0-f90c901-018",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
4
- }
@@ -1,24 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "IInstanceAdminHelper",
4
- "sourceName": "contracts/shared/ContractLib.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "name": "getInstanceAdmin",
9
- "outputs": [
10
- {
11
- "internalType": "contract ITargetHelper",
12
- "name": "",
13
- "type": "address"
14
- }
15
- ],
16
- "stateMutability": "view",
17
- "type": "function"
18
- }
19
- ],
20
- "bytecode": "0x",
21
- "deployedBytecode": "0x",
22
- "linkReferences": {},
23
- "deployedLinkReferences": {}
24
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
4
- }
@@ -1,40 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ITokenRegistryHelper",
4
- "sourceName": "contracts/shared/ContractLib.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "ChainId",
10
- "name": "chainId",
11
- "type": "uint96"
12
- },
13
- {
14
- "internalType": "address",
15
- "name": "token",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "VersionPart",
20
- "name": "release",
21
- "type": "uint8"
22
- }
23
- ],
24
- "name": "isActive",
25
- "outputs": [
26
- {
27
- "internalType": "bool",
28
- "name": "",
29
- "type": "bool"
30
- }
31
- ],
32
- "stateMutability": "view",
33
- "type": "function"
34
- }
35
- ],
36
- "bytecode": "0x",
37
- "deployedBytecode": "0x",
38
- "linkReferences": {},
39
- "deployedLinkReferences": {}
40
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
4
- }