@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765

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 (530) hide show
  1. package/README.md +10 -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 +48 -93
  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/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  77. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
  83. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
  87. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  89. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  91. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  93. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  95. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  128. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  129. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  133. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  135. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  140. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  180. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +59 -149
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  220. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +217 -156
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  263. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  289. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  290. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  382. package/contracts/accounting/AccountingService.sol +22 -33
  383. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  384. package/contracts/accounting/IAccountingService.sol +7 -8
  385. package/contracts/authorization/AccessAdmin.sol +34 -55
  386. package/contracts/authorization/AccessAdminLib.sol +29 -15
  387. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  388. package/contracts/authorization/Authorization.sol +2 -2
  389. package/contracts/authorization/IAccessAdmin.sol +11 -10
  390. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  391. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  392. package/contracts/distribution/BasicDistribution.sol +2 -0
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  394. package/contracts/distribution/Distribution.sol +2 -0
  395. package/contracts/distribution/DistributionService.sol +44 -43
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  397. package/contracts/distribution/IDistributionComponent.sol +0 -2
  398. package/contracts/distribution/IDistributionService.sol +8 -7
  399. package/contracts/examples/fire/FirePool.sol +4 -0
  400. package/contracts/examples/fire/FireProduct.sol +4 -0
  401. package/contracts/examples/flight/FlightLib.sol +337 -0
  402. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  403. package/contracts/examples/flight/FlightNft.sol +234 -0
  404. package/contracts/examples/flight/FlightOracle.sol +226 -0
  405. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  406. package/contracts/examples/flight/FlightPool.sol +89 -0
  407. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  408. package/contracts/examples/flight/FlightProduct.sol +687 -0
  409. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  410. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  411. package/contracts/examples/flight/FlightUSD.sol +28 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  414. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  415. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  416. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  417. package/contracts/instance/BaseStore.sol +4 -0
  418. package/contracts/instance/BundleSet.sol +7 -8
  419. package/contracts/instance/IBaseStore.sol +8 -0
  420. package/contracts/instance/IInstance.sol +8 -8
  421. package/contracts/instance/IInstanceService.sol +6 -4
  422. package/contracts/instance/Instance.sol +12 -8
  423. package/contracts/instance/InstanceAdmin.sol +17 -11
  424. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  425. package/contracts/instance/InstanceReader.sol +59 -23
  426. package/contracts/instance/InstanceService.sol +28 -18
  427. package/contracts/instance/InstanceServiceManager.sol +6 -4
  428. package/contracts/instance/InstanceStore.sol +14 -14
  429. package/contracts/instance/ProductStore.sol +14 -14
  430. package/contracts/instance/RiskSet.sol +6 -7
  431. package/contracts/instance/base/BalanceStore.sol +7 -7
  432. package/contracts/instance/base/Cloneable.sol +10 -4
  433. package/contracts/instance/base/ObjectSet.sol +3 -3
  434. package/contracts/oracle/BasicOracle.sol +3 -0
  435. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  436. package/contracts/oracle/IOracleService.sol +21 -17
  437. package/contracts/oracle/Oracle.sol +6 -5
  438. package/contracts/oracle/OracleService.sol +68 -38
  439. package/contracts/oracle/OracleServiceManager.sol +6 -4
  440. package/contracts/pool/BasicPool.sol +4 -2
  441. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  442. package/contracts/pool/BundleService.sol +22 -28
  443. package/contracts/pool/BundleServiceManager.sol +7 -5
  444. package/contracts/pool/IBundleService.sol +9 -10
  445. package/contracts/pool/IPoolComponent.sol +1 -1
  446. package/contracts/pool/IPoolService.sol +14 -13
  447. package/contracts/pool/Pool.sol +3 -1
  448. package/contracts/pool/PoolLib.sol +102 -5
  449. package/contracts/pool/PoolService.sol +101 -67
  450. package/contracts/pool/PoolServiceManager.sol +6 -4
  451. package/contracts/product/ApplicationService.sol +34 -13
  452. package/contracts/product/ApplicationServiceManager.sol +6 -4
  453. package/contracts/product/BasicProduct.sol +2 -0
  454. package/contracts/product/BasicProductAuthorization.sol +7 -7
  455. package/contracts/product/ClaimService.sol +35 -11
  456. package/contracts/product/ClaimServiceManager.sol +7 -5
  457. package/contracts/product/IApplicationService.sol +8 -8
  458. package/contracts/product/IClaimService.sol +9 -9
  459. package/contracts/product/IPolicyService.sol +8 -7
  460. package/contracts/product/IRiskService.sol +4 -5
  461. package/contracts/product/PolicyService.sol +58 -45
  462. package/contracts/product/PolicyServiceLib.sol +5 -3
  463. package/contracts/product/PolicyServiceManager.sol +6 -4
  464. package/contracts/product/PricingService.sol +8 -7
  465. package/contracts/product/PricingServiceManager.sol +6 -4
  466. package/contracts/product/Product.sol +2 -0
  467. package/contracts/product/RiskService.sol +42 -10
  468. package/contracts/product/RiskServiceManager.sol +6 -4
  469. package/contracts/registry/ChainNft.sol +2 -2
  470. package/contracts/registry/IRegistry.sol +15 -21
  471. package/contracts/registry/IRegistryService.sol +14 -10
  472. package/contracts/registry/IRelease.sol +3 -0
  473. package/contracts/registry/Registry.sol +82 -126
  474. package/contracts/registry/RegistryAdmin.sol +29 -12
  475. package/contracts/registry/RegistryAuthorization.sol +3 -6
  476. package/contracts/registry/RegistryService.sol +82 -99
  477. package/contracts/registry/RegistryServiceManager.sol +11 -4
  478. package/contracts/registry/ReleaseAdmin.sol +27 -13
  479. package/contracts/registry/ReleaseRegistry.sol +81 -72
  480. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  481. package/contracts/registry/TokenRegistry.sol +18 -9
  482. package/contracts/shared/Component.sol +22 -27
  483. package/contracts/shared/ComponentService.sol +168 -49
  484. package/contracts/shared/ComponentServiceManager.sol +7 -5
  485. package/contracts/shared/ContractLib.sol +93 -359
  486. package/contracts/shared/EcdsaChecker.sol +5 -0
  487. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  488. package/contracts/shared/IComponent.sol +3 -9
  489. package/contracts/shared/IComponentService.sol +46 -10
  490. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  491. package/contracts/shared/INftOwnable.sol +3 -1
  492. package/contracts/shared/IRegisterable.sol +3 -14
  493. package/contracts/shared/IRegistryLinked.sol +3 -1
  494. package/contracts/shared/IService.sol +2 -2
  495. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  496. package/contracts/shared/NftOwnable.sol +22 -9
  497. package/contracts/shared/PolicyHolder.sol +4 -2
  498. package/contracts/shared/Registerable.sol +20 -37
  499. package/contracts/shared/RegistryLinked.sol +23 -4
  500. package/contracts/shared/Service.sol +9 -8
  501. package/contracts/shared/TokenHandler.sol +6 -9
  502. package/contracts/staking/IStaking.sol +35 -33
  503. package/contracts/staking/IStakingService.sol +7 -16
  504. package/contracts/staking/Staking.sol +38 -32
  505. package/contracts/staking/StakingLib.sol +1 -3
  506. package/contracts/staking/StakingManager.sol +6 -3
  507. package/contracts/staking/StakingReader.sol +17 -9
  508. package/contracts/staking/StakingService.sol +15 -18
  509. package/contracts/staking/StakingServiceManager.sol +8 -4
  510. package/contracts/staking/StakingStore.sol +11 -11
  511. package/contracts/staking/TargetHandler.sol +6 -5
  512. package/contracts/type/ObjectType.sol +2 -31
  513. package/contracts/type/Referral.sol +6 -0
  514. package/contracts/type/RequestIdSet.sol +62 -0
  515. package/contracts/type/Seconds.sol +4 -0
  516. package/contracts/type/String.sol +30 -0
  517. package/contracts/type/Timestamp.sol +10 -1
  518. package/contracts/type/Version.sol +16 -15
  519. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  520. package/contracts/upgradeability/ProxyManager.sol +54 -46
  521. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  522. package/package.json +4 -3
  523. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  527. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  528. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  529. package/contracts/shared/IVersionable.sol +0 -19
  530. package/contracts/shared/Versionable.sol +0 -47
@@ -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
  }
@@ -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 {IUpgradeable} from "./IUpgradeable.sol";
8
+ import {IVersionable} from "./IVersionable.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, VersionPart, VersionLib} from "../type/Version.sol";
13
+ import {Version, VersionLib} from "../type/Version.sol";
14
14
 
15
- /// @dev manages proxy deployments for upgradable contracs of type IUpgradeable
15
+ /// @dev manages proxy deployments for upgradable contracs of type IVersionable
16
16
  contract ProxyManager is
17
17
  NftOwnable
18
18
  {
@@ -27,15 +27,14 @@ contract ProxyManager is
27
27
  address activatedBy;
28
28
  }
29
29
 
30
- event LogProxyManagerProxyDeployed(address indexed proxy, address initialImplementation);
31
- event LogProxyManagerProxyUpgraded(address indexed proxy, address upgradedImplementation);
30
+ event LogProxyManagerVersionableDeployed(address indexed proxy, address indexed initialImplementation);
31
+ event LogProxyManagerVersionableUpgraded(address indexed proxy, address indexed 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);
39
38
 
40
39
  UpgradableProxyWithAdmin internal _proxy;
41
40
 
@@ -45,19 +44,17 @@ contract ProxyManager is
45
44
 
46
45
  /// @dev convencience initializer
47
46
  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 (IUpgradeable upgradeable)
54
+ returns (IVersionable versionable)
55
55
  {
56
- address initialOwner = msg.sender;
57
-
58
- __NftOwnable_init(initialOwner);
59
-
60
- upgradeable = deployDetermenistic(
56
+ versionable = deployDetermenistic(
57
+ registry,
61
58
  implementation,
62
59
  data,
63
60
  salt);
@@ -65,20 +62,19 @@ contract ProxyManager is
65
62
 
66
63
  /// @dev deploy initial contract
67
64
  function deploy(
65
+ address registry,
68
66
  address initialImplementation,
69
67
  bytes memory initializationData
70
68
  )
71
69
  public
72
70
  virtual
73
71
  onlyInitializing()
74
- returns (IUpgradeable upgradeable)
72
+ returns (IVersionable versionable)
75
73
  {
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
74
+ (
75
+ address currentProxyOwner,
76
+ address initialProxyAdminOwner
77
+ ) = _preDeployChecksAndSetup(registry);
82
78
 
83
79
  _proxy = new UpgradableProxyWithAdmin(
84
80
  initialImplementation,
@@ -86,14 +82,15 @@ contract ProxyManager is
86
82
  getDeployData(currentProxyOwner, initializationData)
87
83
  );
88
84
 
89
- upgradeable = _updateVersionHistory(
85
+ versionable = _updateVersionHistory(
90
86
  initialImplementation,
91
87
  currentProxyOwner);
92
88
 
93
- emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
89
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
94
90
  }
95
91
 
96
92
  function deployDetermenistic(
93
+ address registry,
97
94
  address initialImplementation,
98
95
  bytes memory initializationData,
99
96
  bytes32 salt
@@ -101,14 +98,12 @@ contract ProxyManager is
101
98
  public
102
99
  virtual
103
100
  onlyInitializing()
104
- returns (IUpgradeable upgradeable)
101
+ returns (IVersionable versionable)
105
102
  {
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
103
+ (
104
+ address currentProxyOwner,
105
+ address initialProxyAdminOwner
106
+ ) = _preDeployChecksAndSetup(registry);
112
107
 
113
108
  _proxy = new UpgradableProxyWithAdmin{salt: salt}(
114
109
  initialImplementation,
@@ -116,11 +111,11 @@ contract ProxyManager is
116
111
  getDeployData(currentProxyOwner, initializationData)
117
112
  );
118
113
 
119
- upgradeable = _updateVersionHistory(
114
+ versionable = _updateVersionHistory(
120
115
  initialImplementation,
121
116
  currentProxyOwner);
122
117
 
123
- emit LogProxyManagerProxyDeployed(address(upgradeable), initialImplementation);
118
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
124
119
  }
125
120
 
126
121
  /// @dev upgrade existing contract.
@@ -129,7 +124,7 @@ contract ProxyManager is
129
124
  public
130
125
  virtual
131
126
  onlyOwner()
132
- returns (IUpgradeable upgradeable)
127
+ returns (IVersionable versionable)
133
128
  {
134
129
  bytes memory emptyUpgradeData;
135
130
  return upgrade(newImplementation, emptyUpgradeData);
@@ -140,7 +135,7 @@ contract ProxyManager is
140
135
  public
141
136
  virtual
142
137
  onlyOwner()
143
- returns (IUpgradeable upgradeable)
138
+ returns (IVersionable versionable)
144
139
  {
145
140
  if (_versions.length == 0) {
146
141
  revert ErrorProxyManagerNotYetDeployed();
@@ -155,11 +150,11 @@ contract ProxyManager is
155
150
  newImplementation,
156
151
  getUpgradeData(upgradeData));
157
152
 
158
- upgradeable = _updateVersionHistory(
153
+ versionable = _updateVersionHistory(
159
154
  newImplementation,
160
155
  currentProxyOwner);
161
156
 
162
- emit LogProxyManagerProxyUpgraded(address(upgradeable), newImplementation);
157
+ emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
163
158
 
164
159
  }
165
160
 
@@ -169,14 +164,14 @@ contract ProxyManager is
169
164
 
170
165
  function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
171
166
  return abi.encodeWithSelector(
172
- IUpgradeable.initialize.selector,
167
+ IVersionable.initializeVersionable.selector,
173
168
  proxyOwner,
174
169
  deployData);
175
170
  }
176
171
 
177
172
  function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
178
173
  return abi.encodeWithSelector(
179
- IUpgradeable.upgrade.selector,
174
+ IVersionable.upgradeVersionable.selector,
180
175
  upgradeData);
181
176
  }
182
177
 
@@ -185,7 +180,7 @@ contract ProxyManager is
185
180
  }
186
181
 
187
182
  function getVersion() external view virtual returns(Version) {
188
- return _versionHistory[_versions[_versions.length]].version;
183
+ return IVersionable(address(_proxy)).getVersion();
189
184
  }
190
185
 
191
186
  function getVersionCount() external view returns(uint256) {
@@ -200,29 +195,42 @@ contract ProxyManager is
200
195
  return _versionHistory[_version];
201
196
  }
202
197
 
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
+
203
216
  function _updateVersionHistory(
204
217
  address implementation,
205
218
  address activatedBy
206
219
  )
207
220
  private
208
- returns (IUpgradeable upgradeable)
221
+ returns (IVersionable versionable)
209
222
  {
210
- upgradeable = IUpgradeable(address(_proxy));
211
- Version newVersion = upgradeable.getVersion();
223
+ versionable = IVersionable(address(_proxy));
224
+ Version newVersion = versionable.getVersion();
212
225
 
213
226
  if(newVersion == VersionLib.zeroVersion()) {
214
227
  revert ErrorProxyManagerZeroVersion();
215
228
  }
216
229
 
217
230
  if(_versions.length > 0) {
218
- Version version = _versions[_versions.length-1];
219
- if(newVersion.toInt() <= version.toInt()) {
231
+ if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
220
232
  revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
221
233
  }
222
-
223
- if(newVersion.toMajorPart() != version.toMajorPart()) {
224
- revert ErrorProxyManagerNextVersionReleaseInvalid(newVersion);
225
- }
226
234
  }
227
235
 
228
236
  // update version history
@@ -3,40 +3,39 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {IUpgradeable} from "./IUpgradeable.sol";
7
- import {Version} from "../type/Version.sol";
8
- import {Versionable} from "../shared/Versionable.sol";
6
+ import {IVersionable} from "./IVersionable.sol";
7
+ import {Version, VersionLib} from "../type/Version.sol";
9
8
 
10
- abstract contract Upgradeable is
11
- Initializable,
12
- Versionable,
13
- IUpgradeable
9
+
10
+ abstract contract Versionable is
11
+ Initializable,
12
+ IVersionable
14
13
  {
15
14
  constructor() {
16
15
  _disableInitializers();
17
16
  }
18
17
 
19
- function initialize(
18
+ function initializeVersionable(
20
19
  address activatedBy,
21
20
  bytes memory data
22
21
  )
23
- external
22
+ public
23
+ initializer()
24
24
  {
25
- if(_getInitializedVersion() != 0) {
26
- revert InvalidInitialization();
27
- }
28
- __Upgradeable_init(activatedBy, data);
25
+ _initialize(activatedBy, data);
29
26
  }
30
27
 
31
- function upgrade(
28
+ function upgradeVersionable(
32
29
  bytes memory data
33
30
  )
34
31
  external
35
- reinitializer(getVersion().toInt())
32
+ reinitializer(VersionLib.toUint64(getVersion()))
36
33
  {
37
34
  _upgrade(data);
38
35
  }
39
36
 
37
+ function getVersion() public pure virtual returns(Version);
38
+
40
39
  // IMPORTANT each version must implement this function
41
40
  // each implementation MUST use onlyInitialising modifier
42
41
  // each implementation MUST call intializers of all base contracts...
@@ -60,14 +59,4 @@ abstract contract Upgradeable is
60
59
  {
61
60
  revert ErrorVersionableUpgradeNotImplemented();
62
61
  }
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
- }
73
62
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "3.0.0-cf1abe2-268",
3
+ "version": "3.0.0-cf20ffd-765",
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": {
@@ -43,13 +43,14 @@
43
43
  "typescript": "^5"
44
44
  },
45
45
  "dependencies": {
46
- "@openzeppelin/contracts": "5.0.2",
47
- "@openzeppelin/contracts-upgradeable": "5.0.2",
46
+ "@openzeppelin/contracts": "5.1.0",
47
+ "@openzeppelin/contracts-upgradeable": "5.1.0",
48
48
  "@openzeppelin/upgrades-core": "^1.34.1",
49
49
  "abi-coder": "^5.0.0",
50
50
  "antlr4ng": "^3.0.4",
51
51
  "ethers": "^6.7.1",
52
52
  "ethers-decode-error": "^2.1.3",
53
+ "simple-git": "^3.27.0",
53
54
  "solidity-docgen": "^0.6.0-beta.36",
54
55
  "winston": "^3.10.0"
55
56
  }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/be7cfe028a0fefecf661f822422ccabd.json"
4
- }
@@ -1,74 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "IVersionable",
4
- "sourceName": "contracts/shared/IVersionable.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "target",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "VersionPart",
15
- "name": "invalidRelease",
16
- "type": "uint8"
17
- }
18
- ],
19
- "name": "ErrorVersionableReleaseInvalid",
20
- "type": "error"
21
- },
22
- {
23
- "inputs": [
24
- {
25
- "internalType": "address",
26
- "name": "target",
27
- "type": "address"
28
- },
29
- {
30
- "internalType": "VersionPart",
31
- "name": "expected",
32
- "type": "uint8"
33
- },
34
- {
35
- "internalType": "VersionPart",
36
- "name": "actual",
37
- "type": "uint8"
38
- }
39
- ],
40
- "name": "ErrorVersionableReleaseMismatch",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [],
45
- "name": "getRelease",
46
- "outputs": [
47
- {
48
- "internalType": "VersionPart",
49
- "name": "",
50
- "type": "uint8"
51
- }
52
- ],
53
- "stateMutability": "pure",
54
- "type": "function"
55
- },
56
- {
57
- "inputs": [],
58
- "name": "getVersion",
59
- "outputs": [
60
- {
61
- "internalType": "Version",
62
- "name": "",
63
- "type": "uint24"
64
- }
65
- ],
66
- "stateMutability": "pure",
67
- "type": "function"
68
- }
69
- ],
70
- "bytecode": "0x",
71
- "deployedBytecode": "0x",
72
- "linkReferences": {},
73
- "deployedLinkReferences": {}
74
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/be7cfe028a0fefecf661f822422ccabd.json"
4
- }
@@ -1,74 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "Versionable",
4
- "sourceName": "contracts/shared/Versionable.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "target",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "VersionPart",
15
- "name": "invalidRelease",
16
- "type": "uint8"
17
- }
18
- ],
19
- "name": "ErrorVersionableReleaseInvalid",
20
- "type": "error"
21
- },
22
- {
23
- "inputs": [
24
- {
25
- "internalType": "address",
26
- "name": "target",
27
- "type": "address"
28
- },
29
- {
30
- "internalType": "VersionPart",
31
- "name": "expected",
32
- "type": "uint8"
33
- },
34
- {
35
- "internalType": "VersionPart",
36
- "name": "actual",
37
- "type": "uint8"
38
- }
39
- ],
40
- "name": "ErrorVersionableReleaseMismatch",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [],
45
- "name": "getRelease",
46
- "outputs": [
47
- {
48
- "internalType": "VersionPart",
49
- "name": "",
50
- "type": "uint8"
51
- }
52
- ],
53
- "stateMutability": "pure",
54
- "type": "function"
55
- },
56
- {
57
- "inputs": [],
58
- "name": "getVersion",
59
- "outputs": [
60
- {
61
- "internalType": "Version",
62
- "name": "",
63
- "type": "uint24"
64
- }
65
- ],
66
- "stateMutability": "pure",
67
- "type": "function"
68
- }
69
- ],
70
- "bytecode": "0x",
71
- "deployedBytecode": "0x",
72
- "linkReferences": {},
73
- "deployedLinkReferences": {}
74
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/be7cfe028a0fefecf661f822422ccabd.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/be7cfe028a0fefecf661f822422ccabd.json"
4
- }
@@ -1,19 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Version, VersionPart} from "../type/Version.sol";
5
-
6
- interface IVersionable {
7
-
8
- error ErrorVersionableReleaseInvalid(address target, VersionPart invalidRelease);
9
- error ErrorVersionableReleaseMismatch(address target, VersionPart expected, VersionPart actual);
10
-
11
- /**
12
- * @dev returns version of this contract
13
- * implementation MUST define version in this function
14
- * version number MUST increase
15
- */
16
- function getVersion() external pure returns(Version);
17
-
18
- function getRelease() external pure returns(VersionPart);
19
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "./IVersionable.sol";
5
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
6
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
7
-
8
-
9
- abstract contract Versionable is
10
- IVersionable
11
- {
12
- // TODO use arg of type Version
13
- function __Versionable_init(
14
- VersionPart release // wants to initialize to this release version
15
- )
16
- internal
17
- view
18
- virtual
19
- {
20
- VersionPart currentRelease = getRelease();
21
- if (!currentRelease.isValidRelease()) {
22
- revert ErrorVersionableReleaseInvalid(address(this), currentRelease);
23
- }
24
-
25
- //Version initializedVersion = VersionLib.toVersion(_getInitializedVersion());
26
- //if(initializedVersion != getVersion()) {}
27
-
28
- _checkRelease(release);
29
- }
30
-
31
- function getVersion() public pure virtual returns(Version)
32
- {
33
- return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0, 0);
34
- }
35
-
36
- function getRelease() public pure returns(VersionPart)
37
- {
38
- return getVersion().toMajorPart();
39
- }
40
-
41
- function _checkRelease(VersionPart release) internal view {
42
- VersionPart currentRelease = getRelease();
43
- if(currentRelease != release) {
44
- revert ErrorVersionableReleaseMismatch(address(this), release, currentRelease);
45
- }
46
- }
47
- }