@etherisc/gif-next 3.0.0-ab0fcb2-112 → 3.0.0-bd6db59-832

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 (471) hide show
  1. package/README.md +1 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
  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 +65 -20
  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 +10 -20
  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 +75 -126
  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 +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +160 -36
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +152 -173
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +108 -170
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +251 -389
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  66. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  70. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  72. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  74. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  76. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  80. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  83. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -77
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
  88. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -144
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +60 -36
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  102. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  103. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  104. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  105. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  106. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  108. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  109. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  110. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  111. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  112. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  116. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  118. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  123. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  128. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  154. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  166. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  195. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  196. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  201. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  202. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  204. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  206. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  208. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  214. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  216. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  220. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  222. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  224. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  226. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  228. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  229. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  236. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  237. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  240. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  242. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -96
  244. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  246. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
  248. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  250. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  253. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  255. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  257. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  264. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  275. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  332. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  333. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  334. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  336. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  338. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  356. package/contracts/accounting/AccountingService.sol +6 -5
  357. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  358. package/contracts/accounting/IAccountingService.sol +1 -1
  359. package/contracts/authorization/AccessAdmin.sol +44 -45
  360. package/contracts/authorization/AccessAdminLib.sol +27 -13
  361. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  362. package/contracts/authorization/Authorization.sol +2 -2
  363. package/contracts/authorization/IAccessAdmin.sol +3 -3
  364. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  365. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  366. package/contracts/distribution/BasicDistribution.sol +2 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  368. package/contracts/distribution/Distribution.sol +2 -0
  369. package/contracts/distribution/DistributionService.sol +20 -24
  370. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  371. package/contracts/examples/fire/FirePool.sol +4 -0
  372. package/contracts/examples/fire/FireProduct.sol +4 -0
  373. package/contracts/examples/flight/FlightLib.sol +41 -63
  374. package/contracts/examples/flight/FlightOracle.sol +8 -0
  375. package/contracts/examples/flight/FlightOracleAuthorization.sol +24 -5
  376. package/contracts/examples/flight/FlightPool.sol +4 -0
  377. package/contracts/examples/flight/FlightProduct.sol +162 -127
  378. package/contracts/examples/flight/FlightProductAuthorization.sol +32 -8
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  383. package/contracts/instance/Instance.sol +11 -7
  384. package/contracts/instance/InstanceAdmin.sol +17 -11
  385. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  386. package/contracts/instance/InstanceReader.sol +21 -15
  387. package/contracts/instance/InstanceService.sol +20 -18
  388. package/contracts/instance/InstanceServiceManager.sol +6 -4
  389. package/contracts/instance/base/Cloneable.sol +10 -4
  390. package/contracts/instance/base/ObjectSet.sol +2 -2
  391. package/contracts/oracle/BasicOracle.sol +2 -0
  392. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  393. package/contracts/oracle/IOracleService.sol +4 -0
  394. package/contracts/oracle/Oracle.sol +4 -3
  395. package/contracts/oracle/OracleService.sol +67 -37
  396. package/contracts/oracle/OracleServiceManager.sol +6 -4
  397. package/contracts/pool/BasicPool.sol +4 -2
  398. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  399. package/contracts/pool/BundleService.sol +19 -25
  400. package/contracts/pool/BundleServiceManager.sol +7 -5
  401. package/contracts/pool/IPoolService.sol +6 -5
  402. package/contracts/pool/Pool.sol +3 -1
  403. package/contracts/pool/PoolLib.sol +102 -5
  404. package/contracts/pool/PoolService.sol +101 -67
  405. package/contracts/pool/PoolServiceManager.sol +6 -4
  406. package/contracts/product/ApplicationService.sol +34 -13
  407. package/contracts/product/ApplicationServiceManager.sol +6 -4
  408. package/contracts/product/BasicProduct.sol +2 -0
  409. package/contracts/product/BasicProductAuthorization.sol +4 -5
  410. package/contracts/product/ClaimService.sol +34 -10
  411. package/contracts/product/ClaimServiceManager.sol +7 -5
  412. package/contracts/product/IPolicyService.sol +1 -0
  413. package/contracts/product/PolicyService.sol +57 -44
  414. package/contracts/product/PolicyServiceManager.sol +6 -4
  415. package/contracts/product/PricingService.sol +8 -7
  416. package/contracts/product/PricingServiceManager.sol +6 -4
  417. package/contracts/product/Product.sol +2 -0
  418. package/contracts/product/RiskService.sol +40 -8
  419. package/contracts/product/RiskServiceManager.sol +6 -4
  420. package/contracts/registry/IRegistry.sol +14 -20
  421. package/contracts/registry/IRegistryService.sol +14 -10
  422. package/contracts/registry/IRelease.sol +3 -0
  423. package/contracts/registry/Registry.sol +78 -124
  424. package/contracts/registry/RegistryAdmin.sol +29 -12
  425. package/contracts/registry/RegistryAuthorization.sol +3 -4
  426. package/contracts/registry/RegistryService.sol +82 -99
  427. package/contracts/registry/RegistryServiceManager.sol +11 -4
  428. package/contracts/registry/ReleaseAdmin.sol +23 -9
  429. package/contracts/registry/ReleaseRegistry.sol +74 -64
  430. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  431. package/contracts/registry/TokenRegistry.sol +15 -6
  432. package/contracts/shared/Component.sol +22 -27
  433. package/contracts/shared/ComponentService.sol +130 -45
  434. package/contracts/shared/ComponentServiceManager.sol +7 -5
  435. package/contracts/shared/ContractLib.sol +93 -359
  436. package/contracts/shared/IComponent.sol +3 -5
  437. package/contracts/shared/IComponentService.sol +14 -0
  438. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  439. package/contracts/shared/INftOwnable.sol +2 -0
  440. package/contracts/shared/IRegisterable.sol +3 -14
  441. package/contracts/shared/IRegistryLinked.sol +3 -1
  442. package/contracts/shared/IService.sol +2 -2
  443. package/contracts/shared/InstanceLinkedComponent.sol +64 -29
  444. package/contracts/shared/NftOwnable.sol +22 -9
  445. package/contracts/shared/PolicyHolder.sol +4 -2
  446. package/contracts/shared/Registerable.sol +20 -37
  447. package/contracts/shared/RegistryLinked.sol +23 -4
  448. package/contracts/shared/Service.sol +9 -8
  449. package/contracts/shared/TokenHandler.sol +1 -4
  450. package/contracts/staking/IStaking.sol +2 -2
  451. package/contracts/staking/Staking.sol +33 -28
  452. package/contracts/staking/StakingLib.sol +1 -3
  453. package/contracts/staking/StakingManager.sol +6 -3
  454. package/contracts/staking/StakingReader.sol +17 -9
  455. package/contracts/staking/StakingService.sol +13 -16
  456. package/contracts/staking/StakingServiceManager.sol +8 -4
  457. package/contracts/staking/StakingStore.sol +8 -8
  458. package/contracts/staking/TargetHandler.sol +5 -4
  459. package/contracts/type/Version.sol +16 -15
  460. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  461. package/contracts/upgradeability/ProxyManager.sol +54 -46
  462. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  463. package/package.json +1 -1
  464. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  465. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  466. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  467. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  468. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  469. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  470. package/contracts/shared/IVersionable.sol +0 -19
  471. 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 initialImplementation);
31
+ event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
32
32
 
33
33
  error ErrorProxyManagerAlreadyDeployed();
34
34
  error ErrorProxyManagerNotYetDeployed();
35
35
 
36
36
  error ErrorProxyManagerZeroVersion();
37
37
  error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
38
- error ErrorProxyManagerNextVersionReleaseInvalid(Version nextVersion);
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-ab0fcb2-112",
3
+ "version": "3.0.0-bd6db59-832",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e52bf3dd99c69d20906871487df6bded.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/e52bf3dd99c69d20906871487df6bded.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/e52bf3dd99c69d20906871487df6bded.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e52bf3dd99c69d20906871487df6bded.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
- }