@etherisc/gif-next 3.0.0-ab0fcb2-112 → 3.0.0-ab43904-022

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 (518) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +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 +254 -240
  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 +147 -113
  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 +1 -1
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  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 +1 -1
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +262 -239
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +113 -250
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +449 -870
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  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 +1 -1
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  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 +95 -36
  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 +153 -200
  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 +68 -95
  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 +1 -1
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +40 -173
  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 +6 -6
  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 +2 -2
  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 +1 -1
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  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 +2 -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 +2 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  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 +35 -55
  386. package/contracts/authorization/AccessAdminLib.sol +27 -13
  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 +90 -75
  402. package/contracts/examples/flight/FlightNft.sol +234 -0
  403. package/contracts/examples/flight/FlightOracle.sol +72 -9
  404. package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
  405. package/contracts/examples/flight/FlightPool.sol +5 -1
  406. package/contracts/examples/flight/FlightProduct.sol +283 -246
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  408. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  409. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  410. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  411. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  412. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  413. package/contracts/instance/BaseStore.sol +4 -0
  414. package/contracts/instance/BundleSet.sol +7 -8
  415. package/contracts/instance/IBaseStore.sol +8 -0
  416. package/contracts/instance/IInstance.sol +7 -7
  417. package/contracts/instance/IInstanceService.sol +6 -4
  418. package/contracts/instance/Instance.sol +11 -7
  419. package/contracts/instance/InstanceAdmin.sol +17 -11
  420. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  421. package/contracts/instance/InstanceReader.sol +34 -20
  422. package/contracts/instance/InstanceService.sol +28 -18
  423. package/contracts/instance/InstanceServiceManager.sol +6 -4
  424. package/contracts/instance/InstanceStore.sol +14 -14
  425. package/contracts/instance/ProductStore.sol +14 -14
  426. package/contracts/instance/RiskSet.sol +6 -7
  427. package/contracts/instance/base/BalanceStore.sol +7 -7
  428. package/contracts/instance/base/Cloneable.sol +10 -4
  429. package/contracts/instance/base/ObjectSet.sol +3 -3
  430. package/contracts/oracle/BasicOracle.sol +3 -0
  431. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  432. package/contracts/oracle/IOracleService.sol +9 -5
  433. package/contracts/oracle/Oracle.sol +6 -5
  434. package/contracts/oracle/OracleService.sol +68 -38
  435. package/contracts/oracle/OracleServiceManager.sol +6 -4
  436. package/contracts/pool/BasicPool.sol +4 -2
  437. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  438. package/contracts/pool/BundleService.sol +20 -26
  439. package/contracts/pool/BundleServiceManager.sol +7 -5
  440. package/contracts/pool/IBundleService.sol +10 -10
  441. package/contracts/pool/IPoolComponent.sol +1 -1
  442. package/contracts/pool/IPoolService.sol +14 -13
  443. package/contracts/pool/Pool.sol +3 -1
  444. package/contracts/pool/PoolLib.sol +102 -5
  445. package/contracts/pool/PoolService.sol +101 -67
  446. package/contracts/pool/PoolServiceManager.sol +6 -4
  447. package/contracts/product/ApplicationService.sol +34 -13
  448. package/contracts/product/ApplicationServiceManager.sol +6 -4
  449. package/contracts/product/BasicProduct.sol +2 -0
  450. package/contracts/product/BasicProductAuthorization.sol +4 -5
  451. package/contracts/product/ClaimService.sol +35 -11
  452. package/contracts/product/ClaimServiceManager.sol +7 -5
  453. package/contracts/product/IApplicationService.sol +8 -8
  454. package/contracts/product/IClaimService.sol +9 -9
  455. package/contracts/product/IPolicyService.sol +8 -7
  456. package/contracts/product/IRiskService.sol +4 -5
  457. package/contracts/product/PolicyService.sol +58 -45
  458. package/contracts/product/PolicyServiceLib.sol +5 -3
  459. package/contracts/product/PolicyServiceManager.sol +6 -4
  460. package/contracts/product/PricingService.sol +8 -7
  461. package/contracts/product/PricingServiceManager.sol +6 -4
  462. package/contracts/product/Product.sol +2 -0
  463. package/contracts/product/RiskService.sol +42 -10
  464. package/contracts/product/RiskServiceManager.sol +6 -4
  465. package/contracts/registry/ChainNft.sol +2 -2
  466. package/contracts/registry/IRegistry.sol +15 -21
  467. package/contracts/registry/IRegistryService.sol +14 -10
  468. package/contracts/registry/IRelease.sol +3 -0
  469. package/contracts/registry/Registry.sol +82 -126
  470. package/contracts/registry/RegistryAdmin.sol +29 -12
  471. package/contracts/registry/RegistryAuthorization.sol +3 -6
  472. package/contracts/registry/RegistryService.sol +82 -99
  473. package/contracts/registry/RegistryServiceManager.sol +11 -4
  474. package/contracts/registry/ReleaseAdmin.sol +27 -13
  475. package/contracts/registry/ReleaseRegistry.sol +81 -72
  476. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  477. package/contracts/registry/TokenRegistry.sol +18 -9
  478. package/contracts/shared/Component.sol +22 -27
  479. package/contracts/shared/ComponentService.sol +168 -49
  480. package/contracts/shared/ComponentServiceManager.sol +7 -5
  481. package/contracts/shared/ContractLib.sol +93 -359
  482. package/contracts/shared/IComponent.sol +3 -9
  483. package/contracts/shared/IComponentService.sol +46 -10
  484. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  485. package/contracts/shared/INftOwnable.sol +3 -1
  486. package/contracts/shared/IRegisterable.sol +3 -14
  487. package/contracts/shared/IRegistryLinked.sol +3 -1
  488. package/contracts/shared/IService.sol +2 -2
  489. package/contracts/shared/InstanceLinkedComponent.sol +64 -29
  490. package/contracts/shared/NftOwnable.sol +22 -9
  491. package/contracts/shared/PolicyHolder.sol +4 -2
  492. package/contracts/shared/Registerable.sol +20 -37
  493. package/contracts/shared/RegistryLinked.sol +23 -4
  494. package/contracts/shared/Service.sol +9 -8
  495. package/contracts/shared/TokenHandler.sol +6 -9
  496. package/contracts/staking/IStaking.sol +35 -33
  497. package/contracts/staking/IStakingService.sol +7 -16
  498. package/contracts/staking/Staking.sol +38 -32
  499. package/contracts/staking/StakingLib.sol +1 -3
  500. package/contracts/staking/StakingManager.sol +6 -3
  501. package/contracts/staking/StakingReader.sol +17 -9
  502. package/contracts/staking/StakingService.sol +15 -18
  503. package/contracts/staking/StakingServiceManager.sol +8 -4
  504. package/contracts/staking/StakingStore.sol +11 -11
  505. package/contracts/staking/TargetHandler.sol +6 -5
  506. package/contracts/type/Version.sol +16 -15
  507. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  508. package/contracts/upgradeability/ProxyManager.sol +54 -46
  509. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  510. package/package.json +3 -3
  511. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  513. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  514. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  515. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  516. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  517. package/contracts/shared/IVersionable.sol +0 -19
  518. package/contracts/shared/Versionable.sol +0 -47
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
+ import {IRegisterable} from "../shared/IRegisterable.sol";
6
7
  import {IRegistry} from "../registry/IRegistry.sol";
7
8
  import {IStaking} from "./IStaking.sol";
8
9
  import {IStakingService} from "./IStakingService.sol";
@@ -58,7 +59,7 @@ contract StakingService is
58
59
  initialLockingPeriod,
59
60
  initialRewardRate);
60
61
 
61
- emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
62
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, initialLockingPeriod, initialRewardRate);
62
63
  }
63
64
 
64
65
 
@@ -113,7 +114,7 @@ contract StakingService is
113
114
 
114
115
  // update reward reserve book keeping
115
116
  StakingServiceStorage storage $ = _getStakingServiceStorage();
116
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
117
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
117
118
  newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
118
119
 
119
120
  emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
@@ -130,7 +131,7 @@ contract StakingService is
130
131
  _checkNftType(instanceNftId, INSTANCE());
131
132
  // update reward reserve book keeping
132
133
  StakingServiceStorage storage $ = _getStakingServiceStorage();
133
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
134
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
134
135
  newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
135
136
 
136
137
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
@@ -157,14 +158,13 @@ contract StakingService is
157
158
  nftId: NftIdLib.zero(),
158
159
  parentNftId: targetNftId,
159
160
  objectType: STAKE(),
160
- release: getRelease(),
161
161
  isInterceptor: false,
162
- objectAddress: address(0)}),
163
- stakeOwner, // initialOwner
164
- "" // data
165
- );
162
+ objectAddress: address(0),
163
+ initialOwner: stakeOwner,
164
+ data: ""
165
+ }));
166
166
 
167
- emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
167
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner);
168
168
  }
169
169
 
170
170
 
@@ -255,18 +255,18 @@ contract StakingService is
255
255
  )
256
256
  internal
257
257
  virtual override
258
- onlyInitializing()
258
+ initializer()
259
259
  {
260
260
  (
261
261
  address authority,
262
+ address registry,
262
263
  address staking
263
- ) = abi.decode(data, (address, address));
264
+ ) = abi.decode(data, (address, address, address));
264
265
 
265
- __Service_init(authority, owner);
266
+ __Service_init(authority, registry, owner);
266
267
 
267
268
  StakingServiceStorage storage $ = _getStakingServiceStorage();
268
269
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
269
- // TODO staking is registered in registry.initialize(), just check if address is registered staking
270
270
  $._staking = _registerStaking(staking);
271
271
  $._dip = $._staking.getToken();
272
272
  $._tokenHandler = $._staking.getTokenHandler();
@@ -283,7 +283,7 @@ contract StakingService is
283
283
  {
284
284
  // check if provided staking contract is already registred
285
285
  // staking contract may have been already registered by a previous major relase
286
- IRegistry.ObjectInfo memory stakingInfo = _getRegistry().getObjectInfo(stakingAddress);
286
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
287
287
  if (stakingInfo.nftId.gtz()) {
288
288
  // registered object but wrong type
289
289
  if (stakingInfo.objectType != STAKING()) {
@@ -294,9 +294,6 @@ contract StakingService is
294
294
  return IStaking(stakingAddress);
295
295
  }
296
296
 
297
- // TODO staking is registered in registry.initialize()
298
- // consider deleting the rest of the function
299
-
300
297
  // check that contract implements IStaking
301
298
  if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
302
299
  revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
@@ -304,7 +301,7 @@ contract StakingService is
304
301
 
305
302
  address owner = msg.sender;
306
303
  _getStakingServiceStorage()._registryService.registerStaking(
307
- IStaking(stakingAddress),
304
+ IRegisterable(stakingAddress),
308
305
  owner);
309
306
 
310
307
  return IStaking(stakingAddress);
@@ -2,7 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+
6
7
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
8
  import {StakingService} from "./StakingService.sol";
8
9
 
@@ -15,20 +16,23 @@ contract StakingServiceManager is
15
16
  /// @dev initializes proxy manager with service implementation
16
17
  constructor(
17
18
  address authority,
19
+ address registry,
18
20
  bytes32 salt
19
21
  )
20
22
  {
21
23
  StakingService svc = new StakingService();
22
24
  bytes memory data = abi.encode(
23
25
  authority,
24
- _getRegistry().getStakingAddress());
26
+ registry,
27
+ IRegistry(registry).getStakingAddress());
25
28
 
26
- IUpgradeable upgradeable = initialize(
29
+ IVersionable versionable = initialize(
30
+ registry,
27
31
  address(svc),
28
32
  data,
29
33
  salt);
30
34
 
31
- _stakingService = StakingService(address(upgradeable));
35
+ _stakingService = StakingService(address(versionable));
32
36
  }
33
37
 
34
38
  //--- view functions ----------------------------------------------------//
@@ -18,7 +18,6 @@ import {PROTOCOL, INSTANCE} from "../type/ObjectType.sol";
18
18
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
19
19
  import {StakingLib} from "./StakingLib.sol";
20
20
  import {StakingReader} from "./StakingReader.sol";
21
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
22
21
  import {TargetManagerLib} from "./TargetManagerLib.sol";
23
22
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
23
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
@@ -26,8 +25,7 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
26
25
 
27
26
  contract StakingStore is
28
27
  Initializable,
29
- AccessManaged,
30
- RegistryLinked
28
+ AccessManaged
31
29
  {
32
30
 
33
31
  // token
@@ -55,6 +53,7 @@ contract StakingStore is
55
53
  error ErrorStakingStoreTvlBalanceAlreadyInitialized(NftId nftId, address token);
56
54
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId, address token);
57
55
 
56
+ IRegistry private _registry;
58
57
  ITargetLimitHandler private _targetLimitHandler;
59
58
  StakingReader private _reader;
60
59
  NftIdSet private _targetNftIdSet;
@@ -76,15 +75,16 @@ contract StakingStore is
76
75
 
77
76
 
78
77
  constructor(
78
+ IRegistry registry,
79
79
  StakingReader reader
80
80
  )
81
81
  AccessManaged(msg.sender)
82
82
  {
83
-
84
83
  // set final authority
85
- setAuthority(_getRegistry().getAuthority());
84
+ setAuthority(registry.getAuthority());
86
85
 
87
86
  // set internal variables
87
+ _registry = registry;
88
88
  _reader = reader;
89
89
  _targetNftIdSet = new NftIdSet();
90
90
 
@@ -151,7 +151,7 @@ contract StakingStore is
151
151
  address oldReader = address(_reader);
152
152
  _reader = StakingReader(reader);
153
153
 
154
- emit IStaking.LogStakingStakingReaderSet(reader, oldReader);
154
+ emit IStaking.LogStakingStakingReaderSet(oldReader, reader);
155
155
  }
156
156
 
157
157
 
@@ -162,7 +162,7 @@ contract StakingStore is
162
162
  address oldTargetHandler = address(_targetLimitHandler);
163
163
  _targetLimitHandler = ITargetLimitHandler(targetLimitHandler );
164
164
 
165
- emit IStaking.LogStakingTargetHandlerSet(targetLimitHandler , oldTargetHandler);
165
+ emit IStaking.LogStakingTargetHandlerSet(oldTargetHandler, targetLimitHandler);
166
166
  }
167
167
 
168
168
  //--- target support management -----------------------------------------//
@@ -387,7 +387,7 @@ contract StakingStore is
387
387
  targetInfo.lastUpdateIn = BlocknumberLib.current();
388
388
 
389
389
  // logging
390
- emit IStaking.LogStakingTargetRewardRateSet(targetNftId, rewardRate, oldRewardRate, lastUpdateIn);
390
+ emit IStaking.LogStakingTargetRewardRateSet(targetNftId, oldRewardRate, rewardRate, lastUpdateIn);
391
391
  }
392
392
 
393
393
 
@@ -495,7 +495,7 @@ contract StakingStore is
495
495
  emit IStaking.LogStakingRewardReservesRefilled(
496
496
  targetNftId,
497
497
  dipAmount,
498
- _getRegistry().ownerOf(targetNftId),
498
+ _registry.ownerOf(targetNftId),
499
499
  newReserveBalance,
500
500
  lastUpdateIn);
501
501
  }
@@ -520,7 +520,7 @@ contract StakingStore is
520
520
  emit IStaking.LogStakingRewardReservesWithdrawn(
521
521
  targetNftId,
522
522
  dipAmount,
523
- _getRegistry().ownerOf(targetNftId),
523
+ _registry.ownerOf(targetNftId),
524
524
  newReserveBalance,
525
525
  lastUpdateIn);
526
526
  }
@@ -929,7 +929,7 @@ contract StakingStore is
929
929
  // checks
930
930
  if (checkParameters) {
931
931
  TargetManagerLib.checkTargetParameters(
932
- _getRegistry(),
932
+ _registry,
933
933
  _reader,
934
934
  targetNftId,
935
935
  objectType,
@@ -10,7 +10,6 @@ import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
10
10
  import {Amount, AmountLib} from "../type/Amount.sol";
11
11
  import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
12
12
  import {NftId} from "../type/NftId.sol";
13
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
14
13
  import {StakingStore} from "./StakingStore.sol";
15
14
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
16
15
 
@@ -18,12 +17,12 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
18
17
  contract TargetHandler is
19
18
  Initializable,
20
19
  AccessManaged,
21
- ITargetLimitHandler,
22
- RegistryLinked
20
+ ITargetLimitHandler
23
21
  {
24
22
 
25
- event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
23
+ event LogTargetHandlerUpdateTriggersSet(uint16 indexed tvlUpdatesTrigger, UFixed indexed minTvlRatioTrigger, Blocknumber indexed lastUpdateIn);
26
24
 
25
+ IRegistry private _registry;
27
26
  StakingStore private _store;
28
27
 
29
28
  /// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
@@ -34,12 +33,14 @@ contract TargetHandler is
34
33
 
35
34
 
36
35
  constructor (
36
+ IRegistry registry,
37
37
  StakingStore stakingStore
38
38
  )
39
39
  AccessManaged(msg.sender)
40
40
  {
41
41
  // set final authority and registry
42
- setAuthority(_getRegistry().getAuthority());
42
+ setAuthority(registry.getAuthority());
43
+ _registry = registry;
43
44
  _store = stakingStore;
44
45
 
45
46
  // set default trigger values
@@ -5,9 +5,6 @@ type VersionPart is uint8;
5
5
 
6
6
  using {
7
7
  versionPartGt as >,
8
- versionPartGte as >=,
9
- versionPartLt as <,
10
- versionPartLte as <=,
11
8
  versionPartEq as ==,
12
9
  versionPartNe as !=,
13
10
  VersionPartLib.eqz,
@@ -19,9 +16,6 @@ using {
19
16
  for VersionPart global;
20
17
 
21
18
  function versionPartGt(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) > VersionPart.unwrap(b); }
22
- function versionPartGte(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) >= VersionPart.unwrap(b); }
23
- function versionPartLt(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) < VersionPart.unwrap(b); }
24
- function versionPartLte(VersionPart a, VersionPart b) pure returns(bool isLessThan) { return VersionPart.unwrap(a) <= VersionPart.unwrap(b); }
25
19
  function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
26
20
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
27
21
 
@@ -33,7 +27,8 @@ library VersionPartLib {
33
27
  function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
34
28
 
35
29
  function isValidRelease(VersionPart release) external pure returns(bool) {
36
- return releaseMin() <= release && release <= releaseMax();
30
+ uint256 releaseInt = VersionPart.unwrap(release);
31
+ return 3 <= releaseInt && releaseInt <= 99;
37
32
  }
38
33
 
39
34
  function toString(VersionPart a) external pure returns (string memory) {
@@ -71,9 +66,8 @@ library VersionPartLib {
71
66
 
72
67
  function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
73
68
  function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
74
- function toInt(VersionPart a) external pure returns(uint8) { return VersionPart.unwrap(a); }
75
- function toVersionPart(uint8 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
76
- function zero() external pure returns(VersionPart) { return VersionPart.wrap(0); }
69
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
70
+ function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
77
71
  }
78
72
 
79
73
  type Version is uint24; // contains major,minor,patch version parts
@@ -93,7 +87,7 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
93
87
 
94
88
  library VersionLib {
95
89
 
96
- function toInt(Version version) external pure returns(uint24) { return Version.unwrap(version); }
90
+ function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
97
91
 
98
92
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
99
93
 
@@ -130,19 +124,26 @@ library VersionLib {
130
124
  );
131
125
  }
132
126
 
127
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
128
+ // return VersionPart.wrap(uint8(versionPart));
129
+ // }
130
+
133
131
  function toVersion(
134
- uint8 major,
135
- uint8 minor,
136
- uint8 patch
132
+ uint256 major,
133
+ uint256 minor,
134
+ uint256 patch
137
135
  )
138
136
  external
139
137
  pure
140
138
  returns(Version)
141
139
  {
140
+ require(
141
+ major < 256 && minor < 256 && patch < 256,
142
+ "ERROR:VRS-010:VERSION_PART_TOO_BIG");
142
143
 
143
144
  return Version.wrap(
144
145
  uint24(
145
- (uint24(major) << 16) + (uint24(minor) << 8) + patch));
146
+ (major << 16) + (minor << 8) + patch));
146
147
  }
147
148
 
148
149
  // TODO check for overflow?
@@ -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