@etherisc/gif-next 3.0.0-1b49bd6-565 → 3.0.0-1c2086e-623

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 (545) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +46 -91
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  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 +85 -83
  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 +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
  39. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
  40. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
  41. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
  43. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2433 -0
  47. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
  49. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -0
  51. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  52. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  53. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -245
  55. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  57. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +141 -283
  59. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  61. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  62. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  63. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +221 -86
  65. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  67. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  69. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +253 -275
  71. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  73. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +112 -249
  75. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  77. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +461 -866
  79. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  80. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  81. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  82. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  83. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  84. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  85. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  86. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  87. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  89. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  90. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  91. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  92. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +177 -226
  93. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  94. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +124 -256
  95. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  96. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  97. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  98. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +124 -261
  99. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  100. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  101. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  102. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  103. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  104. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  105. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  107. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  108. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +52 -91
  109. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -92
  111. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  112. package/artifacts/contracts/instance/Instance.sol/Instance.json +82 -158
  113. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  114. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +226 -248
  115. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  116. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  117. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  118. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +186 -44
  119. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  120. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +201 -149
  121. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  123. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  124. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
  125. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  126. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +166 -107
  127. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  128. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  129. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  130. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +98 -106
  131. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  132. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  133. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  134. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  135. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  136. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  137. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  138. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  139. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  140. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  141. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  142. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +40 -4
  143. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  144. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  145. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  146. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  147. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  148. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  149. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  150. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  151. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -195
  152. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  153. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  154. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  155. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  156. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +132 -152
  157. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  158. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +102 -93
  159. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  160. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +138 -145
  161. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  162. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +167 -162
  163. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  165. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +77 -167
  167. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  168. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  169. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +149 -203
  171. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  173. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  174. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +64 -98
  175. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  176. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +75 -178
  177. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  178. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -132
  179. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  180. package/artifacts/contracts/pool/Pool.sol/Pool.json +77 -167
  181. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  182. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  183. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  184. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +215 -271
  185. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  187. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  188. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +81 -156
  189. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  191. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  192. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +61 -151
  193. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  194. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  195. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  196. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +139 -200
  197. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  199. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  200. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +50 -89
  201. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  202. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -89
  203. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  204. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +85 -91
  205. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  206. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +47 -86
  207. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  208. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +60 -163
  209. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +63 -120
  211. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  212. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +148 -182
  213. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  214. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +25 -17
  215. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  217. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  218. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -165
  219. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  221. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  222. package/artifacts/contracts/product/Product.sol/Product.json +61 -151
  223. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  224. package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -205
  225. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +110 -120
  227. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  228. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
  229. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +86 -179
  231. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  232. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  233. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  234. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  235. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  236. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/Registry.sol/Registry.json +176 -328
  238. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  239. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  240. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  241. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  242. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  243. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  244. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  245. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  246. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  247. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  248. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  249. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  250. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  251. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +219 -158
  252. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  253. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  254. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  255. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +38 -22
  256. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  258. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +552 -180
  260. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  261. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  262. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  263. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  264. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  265. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  266. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  267. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  268. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  269. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +40 -173
  271. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  272. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  273. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  274. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +455 -95
  275. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  276. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  277. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  278. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  279. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  280. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  281. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  282. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  283. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  284. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  285. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  286. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  287. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  288. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  289. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  290. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  291. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  292. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  293. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  294. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  295. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  296. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  297. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  298. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  299. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  300. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  301. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  302. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  303. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  304. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  305. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  306. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  307. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  308. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  309. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  310. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  311. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  312. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +147 -248
  313. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  314. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +51 -296
  315. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  316. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  317. package/artifacts/contracts/staking/Staking.sol/Staking.json +200 -317
  318. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  320. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  321. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  322. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  323. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  324. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  325. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +80 -353
  326. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  327. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  328. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  329. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +234 -242
  330. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  331. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +20 -33
  332. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  333. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  334. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  335. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  336. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  338. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  340. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  342. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  344. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  346. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  348. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  350. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  351. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  352. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  354. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  355. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  356. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  358. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  360. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  362. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  364. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  365. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  366. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +17 -22
  368. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  370. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  372. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  374. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  375. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  376. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  377. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  378. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  379. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  380. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  381. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  382. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  383. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  384. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  385. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  386. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  387. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  388. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  389. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  390. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  391. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  392. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  393. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  394. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  395. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  396. package/contracts/accounting/AccountingService.sol +22 -33
  397. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  398. package/contracts/accounting/IAccountingService.sol +7 -8
  399. package/contracts/authorization/AccessAdmin.sol +35 -55
  400. package/contracts/authorization/AccessAdminLib.sol +27 -13
  401. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  402. package/contracts/authorization/Authorization.sol +2 -2
  403. package/contracts/authorization/IAccessAdmin.sol +11 -10
  404. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  405. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  406. package/contracts/distribution/BasicDistribution.sol +2 -0
  407. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  408. package/contracts/distribution/Distribution.sol +2 -0
  409. package/contracts/distribution/DistributionService.sol +44 -43
  410. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  411. package/contracts/distribution/IDistributionComponent.sol +0 -2
  412. package/contracts/distribution/IDistributionService.sol +8 -7
  413. package/contracts/examples/crop/AccountingToken.sol +26 -0
  414. package/contracts/examples/crop/CropPool.sol +89 -0
  415. package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
  416. package/contracts/examples/crop/CropProduct.sol +512 -0
  417. package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
  418. package/contracts/examples/crop/Location.sol +50 -0
  419. package/contracts/examples/fire/FirePool.sol +4 -0
  420. package/contracts/examples/fire/FireProduct.sol +5 -1
  421. package/contracts/examples/flight/FlightLib.sol +95 -108
  422. package/contracts/examples/flight/FlightNft.sol +234 -0
  423. package/contracts/examples/flight/FlightOracle.sol +26 -60
  424. package/contracts/examples/flight/FlightOracleAuthorization.sol +27 -5
  425. package/contracts/examples/flight/FlightPool.sol +5 -1
  426. package/contracts/examples/flight/FlightProduct.sol +292 -252
  427. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  428. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  429. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  430. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  431. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  432. package/contracts/examples/unpermissioned/SimpleProduct.sol +5 -5
  433. package/contracts/instance/BaseStore.sol +4 -0
  434. package/contracts/instance/BundleSet.sol +7 -8
  435. package/contracts/instance/IBaseStore.sol +8 -0
  436. package/contracts/instance/IInstance.sol +10 -7
  437. package/contracts/instance/IInstanceService.sol +11 -4
  438. package/contracts/instance/Instance.sol +19 -7
  439. package/contracts/instance/InstanceAdmin.sol +18 -11
  440. package/contracts/instance/InstanceAuthorizationV3.sol +17 -5
  441. package/contracts/instance/InstanceReader.sol +70 -23
  442. package/contracts/instance/InstanceService.sol +88 -54
  443. package/contracts/instance/InstanceServiceManager.sol +6 -4
  444. package/contracts/instance/InstanceStore.sol +14 -14
  445. package/contracts/instance/ProductStore.sol +16 -15
  446. package/contracts/instance/RequestSet.sol +63 -0
  447. package/contracts/instance/RiskSet.sol +6 -7
  448. package/contracts/instance/TargetNames.sol +1 -0
  449. package/contracts/instance/base/BalanceStore.sol +7 -7
  450. package/contracts/instance/base/Cloneable.sol +10 -4
  451. package/contracts/instance/base/ObjectCounter.sol +7 -5
  452. package/contracts/instance/base/ObjectSet.sol +11 -3
  453. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  454. package/contracts/oracle/BasicOracle.sol +3 -0
  455. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  456. package/contracts/oracle/IOracleComponent.sol +10 -0
  457. package/contracts/oracle/IOracleService.sol +9 -5
  458. package/contracts/oracle/Oracle.sol +54 -29
  459. package/contracts/oracle/OracleService.sol +89 -56
  460. package/contracts/oracle/OracleServiceManager.sol +6 -4
  461. package/contracts/pool/BasicPool.sol +4 -2
  462. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  463. package/contracts/pool/BundleService.sol +22 -28
  464. package/contracts/pool/BundleServiceManager.sol +7 -5
  465. package/contracts/pool/IBundleService.sol +9 -10
  466. package/contracts/pool/IPoolComponent.sol +1 -1
  467. package/contracts/pool/IPoolService.sol +14 -13
  468. package/contracts/pool/Pool.sol +3 -1
  469. package/contracts/pool/PoolLib.sol +102 -5
  470. package/contracts/pool/PoolService.sol +101 -67
  471. package/contracts/pool/PoolServiceManager.sol +6 -4
  472. package/contracts/product/ApplicationService.sol +34 -13
  473. package/contracts/product/ApplicationServiceManager.sol +6 -4
  474. package/contracts/product/BasicProduct.sol +2 -0
  475. package/contracts/product/BasicProductAuthorization.sol +4 -5
  476. package/contracts/product/ClaimService.sol +35 -11
  477. package/contracts/product/ClaimServiceManager.sol +7 -5
  478. package/contracts/product/IApplicationService.sol +8 -8
  479. package/contracts/product/IClaimService.sol +9 -9
  480. package/contracts/product/IPolicyService.sol +8 -7
  481. package/contracts/product/IRiskService.sol +4 -6
  482. package/contracts/product/PolicyService.sol +58 -45
  483. package/contracts/product/PolicyServiceLib.sol +5 -3
  484. package/contracts/product/PolicyServiceManager.sol +6 -4
  485. package/contracts/product/PricingService.sol +8 -7
  486. package/contracts/product/PricingServiceManager.sol +6 -4
  487. package/contracts/product/Product.sol +3 -5
  488. package/contracts/product/RiskService.sol +43 -16
  489. package/contracts/product/RiskServiceManager.sol +6 -4
  490. package/contracts/registry/ChainNft.sol +10 -9
  491. package/contracts/registry/IRegistry.sol +23 -28
  492. package/contracts/registry/IRegistryService.sol +14 -10
  493. package/contracts/registry/IRelease.sol +3 -0
  494. package/contracts/registry/Registry.sol +93 -136
  495. package/contracts/registry/RegistryAdmin.sol +29 -12
  496. package/contracts/registry/RegistryAuthorization.sol +3 -6
  497. package/contracts/registry/RegistryService.sol +82 -99
  498. package/contracts/registry/RegistryServiceManager.sol +11 -4
  499. package/contracts/registry/ReleaseAdmin.sol +27 -13
  500. package/contracts/registry/ReleaseRegistry.sol +81 -72
  501. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  502. package/contracts/registry/TokenRegistry.sol +18 -9
  503. package/contracts/shared/Component.sol +22 -27
  504. package/contracts/shared/ComponentService.sol +168 -49
  505. package/contracts/shared/ComponentServiceManager.sol +7 -5
  506. package/contracts/shared/ContractLib.sol +93 -359
  507. package/contracts/shared/IComponent.sol +3 -9
  508. package/contracts/shared/IComponentService.sol +44 -8
  509. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  510. package/contracts/shared/INftOwnable.sol +3 -1
  511. package/contracts/shared/IRegisterable.sol +3 -14
  512. package/contracts/shared/IRegistryLinked.sol +3 -1
  513. package/contracts/shared/IService.sol +2 -2
  514. package/contracts/shared/InstanceLinkedComponent.sol +65 -30
  515. package/contracts/shared/NftOwnable.sol +22 -9
  516. package/contracts/shared/PolicyHolder.sol +4 -2
  517. package/contracts/shared/Registerable.sol +20 -37
  518. package/contracts/shared/RegistryLinked.sol +23 -4
  519. package/contracts/shared/Service.sol +9 -8
  520. package/contracts/shared/TokenHandler.sol +6 -9
  521. package/contracts/staking/IStaking.sol +35 -33
  522. package/contracts/staking/IStakingService.sol +7 -16
  523. package/contracts/staking/Staking.sol +38 -32
  524. package/contracts/staking/StakingLib.sol +1 -3
  525. package/contracts/staking/StakingManager.sol +6 -3
  526. package/contracts/staking/StakingReader.sol +17 -9
  527. package/contracts/staking/StakingService.sol +15 -19
  528. package/contracts/staking/StakingServiceManager.sol +8 -4
  529. package/contracts/staking/StakingStore.sol +11 -11
  530. package/contracts/staking/TargetHandler.sol +7 -6
  531. package/contracts/type/RequestId.sol +6 -0
  532. package/contracts/type/RiskId.sol +8 -8
  533. package/contracts/type/Version.sol +16 -15
  534. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  535. package/contracts/upgradeability/ProxyManager.sol +54 -46
  536. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  537. package/package.json +3 -3
  538. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  539. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  540. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  542. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  543. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  544. package/contracts/shared/IVersionable.sol +0 -19
  545. package/contracts/shared/Versionable.sol +0 -47
@@ -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";
@@ -51,14 +52,13 @@ contract StakingService is
51
52
  virtual
52
53
  restricted()
53
54
  {
54
- uint256 chainId = block.chainid;
55
55
  _getStakingServiceStorage()._staking.registerTarget(
56
56
  targetNftId,
57
57
  INSTANCE(),
58
58
  initialLockingPeriod,
59
59
  initialRewardRate);
60
60
 
61
- emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
61
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, initialLockingPeriod, initialRewardRate);
62
62
  }
63
63
 
64
64
 
@@ -113,7 +113,7 @@ contract StakingService is
113
113
 
114
114
  // update reward reserve book keeping
115
115
  StakingServiceStorage storage $ = _getStakingServiceStorage();
116
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
116
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
117
117
  newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
118
118
 
119
119
  emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
@@ -130,7 +130,7 @@ contract StakingService is
130
130
  _checkNftType(instanceNftId, INSTANCE());
131
131
  // update reward reserve book keeping
132
132
  StakingServiceStorage storage $ = _getStakingServiceStorage();
133
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
133
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
134
134
  newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
135
135
 
136
136
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
@@ -157,14 +157,13 @@ contract StakingService is
157
157
  nftId: NftIdLib.zero(),
158
158
  parentNftId: targetNftId,
159
159
  objectType: STAKE(),
160
- release: getRelease(),
161
160
  isInterceptor: false,
162
- objectAddress: address(0)}),
163
- stakeOwner, // initialOwner
164
- "" // data
165
- );
161
+ objectAddress: address(0),
162
+ initialOwner: stakeOwner,
163
+ data: ""
164
+ }));
166
165
 
167
- emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
166
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner);
168
167
  }
169
168
 
170
169
 
@@ -255,18 +254,18 @@ contract StakingService is
255
254
  )
256
255
  internal
257
256
  virtual override
258
- onlyInitializing()
257
+ initializer()
259
258
  {
260
259
  (
261
260
  address authority,
261
+ address registry,
262
262
  address staking
263
- ) = abi.decode(data, (address, address));
263
+ ) = abi.decode(data, (address, address, address));
264
264
 
265
- __Service_init(authority, owner);
265
+ __Service_init(authority, registry, owner);
266
266
 
267
267
  StakingServiceStorage storage $ = _getStakingServiceStorage();
268
268
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
269
- // TODO staking is registered in registry.initialize(), just check if address is registered staking
270
269
  $._staking = _registerStaking(staking);
271
270
  $._dip = $._staking.getToken();
272
271
  $._tokenHandler = $._staking.getTokenHandler();
@@ -283,7 +282,7 @@ contract StakingService is
283
282
  {
284
283
  // check if provided staking contract is already registred
285
284
  // staking contract may have been already registered by a previous major relase
286
- IRegistry.ObjectInfo memory stakingInfo = _getRegistry().getObjectInfo(stakingAddress);
285
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
287
286
  if (stakingInfo.nftId.gtz()) {
288
287
  // registered object but wrong type
289
288
  if (stakingInfo.objectType != STAKING()) {
@@ -294,9 +293,6 @@ contract StakingService is
294
293
  return IStaking(stakingAddress);
295
294
  }
296
295
 
297
- // TODO staking is registered in registry.initialize()
298
- // consider deleting the rest of the function
299
-
300
296
  // check that contract implements IStaking
301
297
  if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
302
298
  revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
@@ -304,7 +300,7 @@ contract StakingService is
304
300
 
305
301
  address owner = msg.sender;
306
302
  _getStakingServiceStorage()._registryService.registerStaking(
307
- IStaking(stakingAddress),
303
+ IRegisterable(stakingAddress),
308
304
  owner);
309
305
 
310
306
  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
 
@@ -151,7 +151,7 @@ contract StakingStore is
151
151
  address oldReader = address(_reader);
152
152
  _reader = StakingReader(reader);
153
153
 
154
- emit IStaking.LogStakingStakingReaderSet(reader, oldReader);
154
+ emit IStaking.LogStakingStakingReaderSet(oldReader, reader);
155
155
  }
156
156
 
157
157
 
@@ -162,7 +162,7 @@ contract StakingStore is
162
162
  address oldTargetHandler = address(_targetLimitHandler);
163
163
  _targetLimitHandler = ITargetLimitHandler(targetLimitHandler );
164
164
 
165
- emit IStaking.LogStakingTargetHandlerSet(targetLimitHandler , oldTargetHandler);
165
+ emit IStaking.LogStakingTargetHandlerSet(oldTargetHandler, targetLimitHandler);
166
166
  }
167
167
 
168
168
  //--- target support management -----------------------------------------//
@@ -387,7 +387,7 @@ contract StakingStore is
387
387
  targetInfo.lastUpdateIn = BlocknumberLib.current();
388
388
 
389
389
  // logging
390
- emit IStaking.LogStakingTargetRewardRateSet(targetNftId, rewardRate, oldRewardRate, lastUpdateIn);
390
+ emit IStaking.LogStakingTargetRewardRateSet(targetNftId, oldRewardRate, rewardRate, lastUpdateIn);
391
391
  }
392
392
 
393
393
 
@@ -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
- event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
23
+ event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber indexed 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,17 +33,19 @@ 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
46
47
  _setUpdateTriggers(
47
- 10, // check after 2 TVL updates
48
+ 10, // check after 10 TVL updates
48
49
  UFixedLib.toUFixed(1, -1)); // 10% deviation from baseline TVL
49
50
  }
50
51
 
@@ -72,4 +72,10 @@ library RequestIdLib {
72
72
  function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
73
  return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
74
  }
75
+
76
+ function toRequestId(KeyId keyId) public pure returns (RequestId requestId) {
77
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
78
+ assert(keyIdInt < type(uint64).max);
79
+ return RequestId.wrap(uint64(keyIdInt));
80
+ }
75
81
  }
@@ -2,10 +2,9 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
- import {NftId} from "./NftId.sol";
6
5
  import {RISK} from "./ObjectType.sol";
7
6
 
8
- type RiskId is bytes8;
7
+ type RiskId is uint64;
9
8
 
10
9
  // type bindings
11
10
  using {
@@ -33,7 +32,7 @@ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
33
32
 
34
33
  library RiskIdLib {
35
34
  function zero() public pure returns (RiskId) {
36
- return RiskId.wrap(bytes8(0));
35
+ return RiskId.wrap(uint64(0));
37
36
  }
38
37
 
39
38
  // @dev Converts a risk id into a uint256.
@@ -42,8 +41,8 @@ library RiskIdLib {
42
41
  }
43
42
 
44
43
  // @dev Converts a risk id string with a product NftId into a risk id.
45
- function toRiskId(NftId productNftId, bytes32 risk) public pure returns (RiskId) {
46
- return RiskId.wrap(bytes8(keccak256(abi.encode(productNftId, risk))));
44
+ function toRiskId(uint256 id) public pure returns (RiskId) {
45
+ return RiskId.wrap(uint64(id));
47
46
  }
48
47
 
49
48
  /// @dev Returns the key32 value for the specified risk id.
@@ -53,12 +52,13 @@ library RiskIdLib {
53
52
 
54
53
  /// @dev Returns the key id value for the specified nft id
55
54
  function toKeyId(RiskId id) public pure returns (KeyId keyId) {
56
- return KeyId.wrap(bytes31(RiskId.unwrap(id)));
55
+ return KeyId.wrap(bytes31(uint248(RiskId.unwrap(id))));
57
56
  }
58
57
 
59
58
  function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
60
- riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
61
- assert(toInt(riskId) < 2**64);
59
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
60
+ assert(keyIdInt < type(uint64).max);
61
+ return RiskId.wrap(uint64(keyIdInt));
62
62
  }
63
63
 
64
64
  function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
@@ -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?
@@ -1,21 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
4
+ import {Version} from "../type/Version.sol";
5
5
 
6
6
  /// IMPORTANT
7
7
  // Upgradeable contract MUST:
8
- // 1) inherit Upgradeable
9
- // 2) implement getVersion() function
8
+ // 1) inherit from Versionable
9
+ // 2) implement version() 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()
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)
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
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 functions
18
+ // otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new fucntions
19
19
  // in some cases this ok but not in the others...
20
20
  //
21
21
  // IMPORTANT
@@ -26,25 +26,31 @@ import {IVersionable} from "../shared/IVersionable.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 IUpgradeable is IVersionable {
29
+ interface 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
37
36
  * implementation MUST be guarded by initializer modifier
38
37
  * new version MUST inherit from previous version
39
38
  */
40
- function initialize(address activatedBy, bytes memory activationData) external;
39
+ function initializeVersionable(address activatedBy, bytes memory activationData) external;
41
40
 
42
41
  /**
43
42
  * @dev
44
- * top level reinitializer for each upgradeable
45
43
  * implementation MUST be guarded by reinitializer(version().toUint64()) modifier
46
44
  * new version MUST inherit from previous version
47
45
  * the first verion MUST revert
48
46
  */
49
- function upgrade(bytes memory upgradeData) external;
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
+
50
56
  }