@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-f9ec743-307

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 (520) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +115 -113
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +46 -91
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +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 +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 +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 +224 -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 +117 -71
  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 +104 -166
  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 +135 -202
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  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 +106 -163
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  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 +114 -171
  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 +54 -49
  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 +26 -78
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -83
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +154 -140
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  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 +8 -3
  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 +81 -132
  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 +66 -94
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  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 +129 -176
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -71
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +98 -94
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  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 +177 -233
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  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 +115 -182
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +76 -82
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -173
  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 +128 -122
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  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 +102 -314
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  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 +208 -140
  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 +29 -13
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +573 -164
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +479 -82
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  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 +28 -1
  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 +25 -77
  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 +32 -71
  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 +57 -72
  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 +34 -15
  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 +24 -76
  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 +31 -70
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -69
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -57
  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 +81 -101
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +48 -75
  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 +134 -170
  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 +124 -112
  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 +77 -132
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -32
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  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 +24 -47
  386. package/contracts/authorization/AccessAdminLib.sol +29 -15
  387. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  388. package/contracts/authorization/Authorization.sol +2 -2
  389. package/contracts/authorization/IAccessAdmin.sol +3 -3
  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 +25 -27
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  397. package/contracts/distribution/IDistributionService.sol +4 -3
  398. package/contracts/examples/fire/FirePool.sol +4 -0
  399. package/contracts/examples/fire/FireProduct.sol +4 -0
  400. package/contracts/examples/flight/FlightLib.sol +337 -0
  401. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  402. package/contracts/examples/flight/FlightNft.sol +234 -0
  403. package/contracts/examples/flight/FlightOracle.sol +226 -0
  404. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  405. package/contracts/examples/flight/FlightPool.sol +89 -0
  406. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  407. package/contracts/examples/flight/FlightProduct.sol +687 -0
  408. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  409. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  410. package/contracts/examples/flight/FlightUSD.sol +28 -0
  411. package/contracts/examples/flight/originalV1.sol +396 -0
  412. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  413. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  414. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  415. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  416. package/contracts/instance/BaseStore.sol +4 -0
  417. package/contracts/instance/IBaseStore.sol +8 -0
  418. package/contracts/instance/IInstance.sol +1 -1
  419. package/contracts/instance/IInstanceService.sol +2 -0
  420. package/contracts/instance/Instance.sol +12 -8
  421. package/contracts/instance/InstanceAdmin.sol +17 -11
  422. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  423. package/contracts/instance/InstanceReader.sol +59 -23
  424. package/contracts/instance/InstanceService.sol +24 -18
  425. package/contracts/instance/InstanceServiceManager.sol +6 -4
  426. package/contracts/instance/base/Cloneable.sol +10 -4
  427. package/contracts/instance/base/ObjectSet.sol +2 -2
  428. package/contracts/oracle/BasicOracle.sol +3 -0
  429. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  430. package/contracts/oracle/IOracleService.sol +16 -12
  431. package/contracts/oracle/Oracle.sol +6 -5
  432. package/contracts/oracle/OracleService.sol +67 -37
  433. package/contracts/oracle/OracleServiceManager.sol +6 -4
  434. package/contracts/pool/BasicPool.sol +4 -2
  435. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  436. package/contracts/pool/BundleService.sol +20 -26
  437. package/contracts/pool/BundleServiceManager.sol +7 -5
  438. package/contracts/pool/IBundleService.sol +1 -1
  439. package/contracts/pool/IPoolService.sol +6 -5
  440. package/contracts/pool/Pool.sol +3 -1
  441. package/contracts/pool/PoolLib.sol +102 -5
  442. package/contracts/pool/PoolService.sol +101 -67
  443. package/contracts/pool/PoolServiceManager.sol +6 -4
  444. package/contracts/product/ApplicationService.sol +34 -13
  445. package/contracts/product/ApplicationServiceManager.sol +6 -4
  446. package/contracts/product/BasicProduct.sol +2 -0
  447. package/contracts/product/BasicProductAuthorization.sol +7 -7
  448. package/contracts/product/ClaimService.sol +34 -10
  449. package/contracts/product/ClaimServiceManager.sol +7 -5
  450. package/contracts/product/IPolicyService.sol +2 -1
  451. package/contracts/product/PolicyService.sol +58 -45
  452. package/contracts/product/PolicyServiceLib.sol +5 -3
  453. package/contracts/product/PolicyServiceManager.sol +6 -4
  454. package/contracts/product/PricingService.sol +8 -7
  455. package/contracts/product/PricingServiceManager.sol +6 -4
  456. package/contracts/product/Product.sol +2 -0
  457. package/contracts/product/RiskService.sol +40 -8
  458. package/contracts/product/RiskServiceManager.sol +6 -4
  459. package/contracts/registry/ChainNft.sol +1 -1
  460. package/contracts/registry/IRegistry.sol +14 -20
  461. package/contracts/registry/IRegistryService.sol +14 -10
  462. package/contracts/registry/IRelease.sol +3 -0
  463. package/contracts/registry/Registry.sol +78 -124
  464. package/contracts/registry/RegistryAdmin.sol +29 -12
  465. package/contracts/registry/RegistryAuthorization.sol +3 -4
  466. package/contracts/registry/RegistryService.sol +82 -99
  467. package/contracts/registry/RegistryServiceManager.sol +11 -4
  468. package/contracts/registry/ReleaseAdmin.sol +23 -9
  469. package/contracts/registry/ReleaseRegistry.sol +74 -64
  470. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  471. package/contracts/registry/TokenRegistry.sol +15 -6
  472. package/contracts/shared/Component.sol +22 -27
  473. package/contracts/shared/ComponentService.sol +164 -47
  474. package/contracts/shared/ComponentServiceManager.sol +7 -5
  475. package/contracts/shared/ContractLib.sol +93 -359
  476. package/contracts/shared/EcdsaChecker.sol +5 -0
  477. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  478. package/contracts/shared/IComponent.sol +3 -5
  479. package/contracts/shared/IComponentService.sol +36 -0
  480. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  481. package/contracts/shared/INftOwnable.sol +2 -0
  482. package/contracts/shared/IRegisterable.sol +3 -14
  483. package/contracts/shared/IRegistryLinked.sol +3 -1
  484. package/contracts/shared/IService.sol +2 -2
  485. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  486. package/contracts/shared/NftOwnable.sol +22 -9
  487. package/contracts/shared/PolicyHolder.sol +4 -2
  488. package/contracts/shared/Registerable.sol +20 -37
  489. package/contracts/shared/RegistryLinked.sol +23 -4
  490. package/contracts/shared/Service.sol +9 -8
  491. package/contracts/shared/TokenHandler.sol +1 -4
  492. package/contracts/staking/IStaking.sol +4 -2
  493. package/contracts/staking/IStakingService.sol +1 -1
  494. package/contracts/staking/Staking.sol +34 -28
  495. package/contracts/staking/StakingLib.sol +1 -3
  496. package/contracts/staking/StakingManager.sol +6 -3
  497. package/contracts/staking/StakingReader.sol +17 -9
  498. package/contracts/staking/StakingService.sol +14 -17
  499. package/contracts/staking/StakingServiceManager.sol +8 -4
  500. package/contracts/staking/StakingStore.sol +8 -8
  501. package/contracts/staking/TargetHandler.sol +5 -4
  502. package/contracts/type/ObjectType.sol +2 -31
  503. package/contracts/type/Referral.sol +6 -0
  504. package/contracts/type/RequestIdSet.sol +62 -0
  505. package/contracts/type/Seconds.sol +4 -0
  506. package/contracts/type/String.sol +30 -0
  507. package/contracts/type/Timestamp.sol +10 -1
  508. package/contracts/type/Version.sol +16 -15
  509. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  510. package/contracts/upgradeability/ProxyManager.sol +54 -46
  511. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  512. package/package.json +4 -3
  513. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  514. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  515. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  516. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  517. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  518. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  519. package/contracts/shared/IVersionable.sol +0 -19
  520. package/contracts/shared/Versionable.sol +0 -47
@@ -18,7 +18,6 @@ import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
18
18
  import {PayoutId} from "../type/PayoutId.sol";
19
19
  import {TokenHandler} from "../shared/TokenHandler.sol";
20
20
  import {UFixed} from "../type/UFixed.sol";
21
- import {VersionPart} from "../type/Version.sol";
22
21
 
23
22
  library PoolLib {
24
23
 
@@ -77,6 +76,7 @@ library PoolLib {
77
76
 
78
77
 
79
78
  function calculateStakingAmounts(
79
+ IRegistry registry,
80
80
  InstanceReader instanceReader,
81
81
  NftId poolNftId,
82
82
  Amount stakingAmount
@@ -88,7 +88,7 @@ library PoolLib {
88
88
  Amount netStakingAmount
89
89
  )
90
90
  {
91
- NftId productNftId = ContractLib.getRegistry().getParentNftId(poolNftId);
91
+ NftId productNftId = registry.getParentNftId(poolNftId);
92
92
  Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
93
93
  (
94
94
  feeAmount,
@@ -100,6 +100,7 @@ library PoolLib {
100
100
 
101
101
 
102
102
  function calculatePayoutAmounts(
103
+ IRegistry registry,
103
104
  InstanceReader instanceReader,
104
105
  NftId productNftId,
105
106
  NftId policyNftId,
@@ -120,7 +121,7 @@ library PoolLib {
120
121
  netPayoutAmount = payoutAmount;
121
122
 
122
123
  if (payoutBeneficiary == address(0)) {
123
- beneficiary = ContractLib.getRegistry().ownerOf(policyNftId);
124
+ beneficiary = registry.ownerOf(policyNftId);
124
125
  } else {
125
126
  beneficiary = payoutBeneficiary;
126
127
  }
@@ -135,13 +136,14 @@ library PoolLib {
135
136
 
136
137
 
137
138
  function getPolicyHolder(
139
+ IRegistry registry,
138
140
  NftId policyNftId
139
141
  )
140
142
  internal
141
143
  view
142
144
  returns (IPolicyHolder policyHolder)
143
145
  {
144
- address policyHolderAddress = ContractLib.getRegistry().ownerOf(policyNftId);
146
+ address policyHolderAddress = registry.ownerOf(policyNftId);
145
147
  policyHolder = IPolicyHolder(policyHolderAddress);
146
148
 
147
149
  if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
@@ -149,7 +151,99 @@ library PoolLib {
149
151
  }
150
152
  }
151
153
 
154
+
155
+ function checkAndGetPoolInfo(
156
+ IRegistry registry,
157
+ address sender,
158
+ NftId bundleNftId
159
+ )
160
+ public
161
+ view
162
+ returns (
163
+ InstanceReader instanceReader,
164
+ InstanceStore instanceStore,
165
+ NftId instanceNftId,
166
+ NftId poolNftId,
167
+ IComponents.PoolInfo memory poolInfo
168
+ )
169
+ {
170
+ checkNftType(registry, bundleNftId, BUNDLE());
171
+
172
+ IInstance instance;
173
+ (poolNftId, instance) = getAndVerifyActivePool(registry, sender);
174
+ instanceReader = instance.getInstanceReader();
175
+ instanceStore = instance.getInstanceStore();
176
+ instanceNftId = instance.getNftId();
177
+ poolInfo = instanceReader.getPoolInfo(poolNftId);
178
+
179
+ if (registry.getParentNftId(bundleNftId) != poolNftId) {
180
+ revert IPoolService.ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
181
+ }
182
+ }
183
+
184
+
185
+ function getAndVerifyActivePool(
186
+ IRegistry registry,
187
+ address sender
188
+ )
189
+ public
190
+ view
191
+ returns (
192
+ NftId poolNftId,
193
+ IInstance instance
194
+ )
195
+ {
196
+ (
197
+ IRegistry.ObjectInfo memory info,
198
+ address instanceAddress
199
+ ) = ContractLib.getAndVerifyComponent(
200
+ registry,
201
+ sender,
202
+ POOL(),
203
+ true); // only active pools
204
+
205
+ poolNftId = info.nftId;
206
+ instance = IInstance(instanceAddress);
207
+ }
208
+
209
+
210
+ function getAndVerifyActiveComponent(
211
+ IRegistry registry,
212
+ address sender,
213
+ ObjectType expectedComponentType
214
+ )
215
+ public
216
+ view
217
+ returns (
218
+ NftId componentNftId,
219
+ IInstance instance
220
+ )
221
+ {
222
+ (
223
+ IRegistry.ObjectInfo memory info,
224
+ address instanceAddress
225
+ ) = ContractLib.getAndVerifyComponent(
226
+ registry,
227
+ sender,
228
+ expectedComponentType,
229
+ true); // only active components
230
+
231
+ componentNftId = info.nftId;
232
+ instance = IInstance(instanceAddress);
233
+ }
234
+
235
+ function checkNftType(
236
+ IRegistry registry,
237
+ NftId nftId,
238
+ ObjectType expectedObjectType
239
+ ) internal view {
240
+ if(!registry.isObjectType(nftId, expectedObjectType)) {
241
+ revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
242
+ }
243
+ }
244
+
152
245
  function transferTokenAndNotifyPolicyHolder(
246
+ IRegistry registry,
153
247
  InstanceReader instanceReader,
154
248
  TokenHandler poolTokenHandler,
155
249
  NftId productNftId,
@@ -171,6 +265,7 @@ library PoolLib {
171
265
  processingFeeAmount,
172
266
  beneficiary
173
267
  ) = calculatePayoutAmounts(
268
+ registry,
174
269
  instanceReader,
175
270
  productNftId,
176
271
  policyNftId,
@@ -192,6 +287,7 @@ library PoolLib {
192
287
 
193
288
  // callback to policy holder if applicable
194
289
  policyHolderPayoutExecuted(
290
+ registry,
195
291
  policyNftId,
196
292
  payoutId,
197
293
  beneficiary,
@@ -199,6 +295,7 @@ library PoolLib {
199
295
  }
200
296
 
201
297
  function policyHolderPayoutExecuted(
298
+ IRegistry registry,
202
299
  NftId policyNftId,
203
300
  PayoutId payoutId,
204
301
  address beneficiary,
@@ -206,7 +303,7 @@ library PoolLib {
206
303
  )
207
304
  private
208
305
  {
209
- IPolicyHolder policyHolder = getPolicyHolder(policyNftId);
306
+ IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
210
307
  if(address(policyHolder) != address(0)) {
211
308
  policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
212
309
  }
@@ -42,18 +42,19 @@ contract PoolService is
42
42
  )
43
43
  internal
44
44
  virtual override
45
- onlyInitializing()
45
+ initializer()
46
46
  {
47
47
  (
48
- address authority
49
- ) = abi.decode(data, (address));
48
+ address authority,
49
+ address registry
50
+ ) = abi.decode(data, (address, address));
50
51
 
51
- __Service_init(authority, owner);
52
+ __Service_init(authority, registry, owner);
52
53
 
53
54
  _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
54
55
  _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
55
56
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
56
- _staking = IStaking(_getRegistry().getStakingAddress());
57
+ _staking = IStaking(getRegistry().getStakingAddress());
57
58
 
58
59
  _registerInterface(type(IPoolService).interfaceId);
59
60
  }
@@ -65,11 +66,7 @@ contract PoolService is
65
66
  virtual
66
67
  restricted()
67
68
  {
68
- (
69
- NftId poolNftId,
70
- IInstance instance
71
- ) = ContractLib.getAndVerifyPool(getRelease());
72
-
69
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
73
70
  InstanceReader instanceReader = instance.getInstanceReader();
74
71
  IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
75
72
 
@@ -81,20 +78,15 @@ contract PoolService is
81
78
  }
82
79
 
83
80
 
84
- // TODO closing bundle here but creating in bundle service
85
81
  function closeBundle(NftId bundleNftId)
86
82
  external
87
83
  restricted()
88
84
  virtual
89
85
  {
90
- // checks
91
- (
92
- NftId poolNftId,
93
- IInstance instance
94
- ) = ContractLib.getAndVerifyPoolForBundle(
95
- bundleNftId, getRelease());
86
+ _checkNftType(bundleNftId, BUNDLE());
87
+
88
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
96
89
 
97
- // effects
98
90
  // TODO get performance fee for pool (#477)
99
91
 
100
92
  // releasing collateral in bundle
@@ -103,15 +95,15 @@ contract PoolService is
103
95
  _accountingService.decreasePoolBalance(
104
96
  instance.getInstanceStore(),
105
97
  poolNftId,
106
- unstakedAmount + feeAmount,
98
+ unstakedAmount + feeAmount,
107
99
  AmountLib.zero());
108
100
 
109
- emit LogPoolServiceBundleClosed(poolNftId, bundleNftId);
101
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, feeAmount);
110
102
 
111
- if ((unstakedAmount + feeAmount).gtz()) {
112
- TokenHandler tokenHandler = instance.getInstanceReader().getTokenHandler(poolNftId);
113
- tokenHandler.pushToken(
114
- _getRegistry().ownerOf(bundleNftId),
103
+ if ((unstakedAmount + feeAmount).gtz()){
104
+ IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
105
+ poolComponentInfo.tokenHandler.pushToken(
106
+ getRegistry().ownerOf(bundleNftId),
115
107
  unstakedAmount + feeAmount);
116
108
  }
117
109
  }
@@ -127,25 +119,56 @@ contract PoolService is
127
119
  restricted()
128
120
  virtual
129
121
  {
130
- (
131
- NftId poolNftId,
132
- IInstance instance
133
- ) = ContractLib.getAndVerifyPoolForPolicy(
134
- policyNftId, getRelease());
122
+ _checkNftType(policyNftId, POLICY());
135
123
 
124
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
136
125
  InstanceReader instanceReader = instance.getInstanceReader();
137
- NftId productNftId = _getRegistry().getParentNftId(poolNftId);
126
+ NftId productNftId = getRegistry().getParentNftId(poolNftId);
127
+
128
+ // check policy matches with calling pool
129
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
130
+ if(policyInfo.productNftId != productNftId) {
131
+ revert ErrorPoolServicePolicyPoolMismatch(
132
+ policyNftId,
133
+ policyInfo.productNftId,
134
+ productNftId);
135
+ }
138
136
 
139
- emit LogPoolServiceProcessFundedClaim(poolNftId, policyNftId, claimId, availableAmount);
137
+ emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
140
138
 
141
- // TODO reading the whole struct for just 1 check
142
139
  // callback to product component if applicable
143
140
  if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
144
- address productAddress = _getRegistry().getObjectAddress(productNftId);
141
+ address productAddress = getRegistry().getObjectAddress(productNftId);
145
142
  IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
146
143
  }
147
144
  }
148
145
 
146
+
147
+ // function _checkAndGetPoolInfo(NftId bundleNftId)
148
+ // internal
149
+ // view
150
+ // returns (
151
+ // InstanceReader instanceReader,
152
+ // InstanceStore instanceStore,
153
+ // NftId instanceNftId,
154
+ // NftId poolNftId,
155
+ // IComponents.PoolInfo memory poolInfo
156
+ // )
157
+ // {
158
+ // _checkNftType(bundleNftId, BUNDLE());
159
+
160
+ // (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
161
+ // instanceReader = instance.getInstanceReader();
162
+ // instanceStore = instance.getInstanceStore();
163
+ // instanceNftId = instance.getNftId();
164
+ // poolInfo = instanceReader.getPoolInfo(poolNftId);
165
+
166
+ // if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
167
+ // revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
168
+ // }
169
+ // }
170
+
171
+
149
172
  /// @inheritdoc IPoolService
150
173
  function stake(NftId bundleNftId, Amount amount)
151
174
  external
@@ -156,14 +179,12 @@ contract PoolService is
156
179
  )
157
180
  {
158
181
  (
159
- NftId poolNftId,
160
- IInstance instance
161
- ) = ContractLib.getAndVerifyPoolForBundle(
162
- bundleNftId, getRelease());
163
-
164
- InstanceReader instanceReader = instance.getInstanceReader();
165
- InstanceStore instanceStore = instance.getInstanceStore();
166
- IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
182
+ InstanceReader instanceReader,
183
+ InstanceStore instanceStore,
184
+ NftId instanceNftId,
185
+ NftId poolNftId,
186
+ IComponents.PoolInfo memory poolInfo
187
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
167
188
 
168
189
  {
169
190
  Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
@@ -178,6 +199,7 @@ contract PoolService is
178
199
  feeAmount,
179
200
  netAmount
180
201
  ) = PoolLib.calculateStakingAmounts(
202
+ getRegistry(),
181
203
  instanceReader,
182
204
  poolNftId,
183
205
  amount);
@@ -191,13 +213,13 @@ contract PoolService is
191
213
 
192
214
  _bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
193
215
 
194
- emit LogPoolServiceBundleStaked(poolNftId, bundleNftId, amount, netAmount);
216
+ emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
195
217
 
196
218
  // only collect staking amount when pool is not externally managed
197
219
  if (!poolInfo.isExternallyManaged) {
198
220
 
199
221
  // collect tokens from bundle owner
200
- address bundleOwner = _getRegistry().ownerOf(bundleNftId);
222
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
201
223
  PoolLib.pullStakingAmount(
202
224
  instanceReader,
203
225
  poolNftId,
@@ -215,13 +237,11 @@ contract PoolService is
215
237
  returns(Amount netAmount)
216
238
  {
217
239
  (
218
- NftId poolNftId,
219
- IInstance instance
220
- ) = ContractLib.getAndVerifyPoolForBundle(
221
- bundleNftId, getRelease());
222
-
223
- InstanceReader instanceReader = instance.getInstanceReader();
224
- InstanceStore instanceStore = instance.getInstanceStore();
240
+ InstanceReader instanceReader,
241
+ InstanceStore instanceStore,
242
+ NftId instanceNftId,
243
+ NftId poolNftId,
244
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
225
245
 
226
246
  // call bundle service for bookkeeping and additional checks
227
247
  Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
@@ -240,13 +260,13 @@ contract PoolService is
240
260
  AmountLib.zero());
241
261
 
242
262
 
243
- emit LogPoolServiceBundleUnstaked(poolNftId, bundleNftId, unstakedAmount, netAmount);
263
+ emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
244
264
 
245
265
  // only distribute staking amount when pool is not externally managed
246
266
  if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
247
267
 
248
268
  // transfer amount to bundle owner
249
- address bundleOwner = _getRegistry().ownerOf(bundleNftId);
269
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
250
270
  PoolLib.pushUnstakingAmount(
251
271
  instanceReader,
252
272
  poolNftId,
@@ -264,7 +284,7 @@ contract PoolService is
264
284
  (
265
285
  NftId poolNftId,
266
286
  IInstance instance
267
- ) = ContractLib.getAndVerifyPool(getRelease());
287
+ ) = _getAndVerifyActivePool();
268
288
 
269
289
  // check that pool is externally managed
270
290
  InstanceReader reader = instance.getInstanceReader();
@@ -272,7 +292,7 @@ contract PoolService is
272
292
  revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
273
293
  }
274
294
 
275
- address poolOwner = _getRegistry().ownerOf(poolNftId);
295
+ address poolOwner = getRegistry().ownerOf(poolNftId);
276
296
  emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
277
297
 
278
298
  PoolLib.pullStakingAmount(
@@ -291,7 +311,7 @@ contract PoolService is
291
311
  (
292
312
  NftId poolNftId,
293
313
  IInstance instance
294
- ) = ContractLib.getAndVerifyPool(getRelease());
314
+ ) = _getAndVerifyActivePool();
295
315
 
296
316
  // check that pool is externally managed
297
317
  InstanceReader reader = instance.getInstanceReader();
@@ -299,7 +319,7 @@ contract PoolService is
299
319
  revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
300
320
  }
301
321
 
302
- address poolOwner = _getRegistry().ownerOf(poolNftId);
322
+ address poolOwner = getRegistry().ownerOf(poolNftId);
303
323
  emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
304
324
 
305
325
  PoolLib.pushUnstakingAmount(
@@ -320,8 +340,10 @@ contract PoolService is
320
340
  {
321
341
  _checkNftType(bundleNftId, BUNDLE());
322
342
 
323
- NftId poolNftId = _getRegistry().getParentNftId(bundleNftId);
324
- (, IInstance instance) = ContractLib.getInfoAndInstance(poolNftId, getRelease(), true);
343
+ IRegistry registry = getRegistry();
344
+ NftId poolNftId = registry.getParentNftId(bundleNftId);
345
+ (, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
346
+ IInstance instance = IInstance(instanceAddress);
325
347
 
326
348
  Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
327
349
  Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
@@ -392,7 +414,7 @@ contract PoolService is
392
414
  // pool callback when required
393
415
  if (poolIsVerifyingApplications) {
394
416
  IPoolComponent pool = IPoolComponent(
395
- _getRegistry().getObjectAddress(poolNftId));
417
+ getRegistry().getObjectAddress(poolNftId));
396
418
 
397
419
  pool.verifyApplication(
398
420
  applicationNftId,
@@ -432,7 +454,7 @@ contract PoolService is
432
454
  _checkNftType(policyNftId, POLICY());
433
455
 
434
456
  // effects
435
- NftId poolNftId = _getRegistry().getParentNftId(bundleNftId);
457
+ NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
436
458
 
437
459
  _accountingService.decreasePoolBalance(
438
460
  instanceStore,
@@ -462,6 +484,7 @@ contract PoolService is
462
484
 
463
485
  // interactions
464
486
  (netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
487
+ getRegistry(),
465
488
  instanceReader,
466
489
  poolTokenHandler,
467
490
  productNftId,
@@ -499,12 +522,9 @@ contract PoolService is
499
522
  returns (Amount withdrawnAmount)
500
523
  {
501
524
  // checks
502
- (
503
- NftId poolNftId,
504
- IInstance instance
505
- ) = ContractLib.getAndVerifyPoolForBundle(
506
- bundleNftId, getRelease());
525
+ _checkNftType(bundleNftId, BUNDLE());
507
526
 
527
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
508
528
  InstanceReader reader = instance.getInstanceReader();
509
529
 
510
530
  // determine withdrawn amount
@@ -530,10 +550,10 @@ contract PoolService is
530
550
  // interactions
531
551
  // transfer amount to bundle owner
532
552
  {
533
- address bundleOwner = _getRegistry().ownerOf(bundleNftId);
553
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
534
554
  TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
535
555
  address token = address(tokenHandler.TOKEN());
536
- emit LogPoolServiceFeesWithdrawn(poolNftId, bundleNftId, bundleOwner, token, withdrawnAmount);
556
+ emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
537
557
 
538
558
  tokenHandler.pushToken(bundleOwner, withdrawnAmount);
539
559
  }
@@ -574,6 +594,20 @@ contract PoolService is
574
594
  remainingCollateralAmount);
575
595
  }
576
596
 
597
+
598
+ function _getAndVerifyActivePool()
599
+ internal
600
+ virtual
601
+ view
602
+ returns (
603
+ NftId poolNftId,
604
+ IInstance instance
605
+ )
606
+ {
607
+ return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
608
+ }
609
+
610
+
577
611
  function _getDomain() internal pure override returns(ObjectType) {
578
612
  return POOL();
579
613
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PoolService} from "./PoolService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract PoolServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with pool service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  PoolService poolSrv = new PoolService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(poolSrv),
22
24
  data,
23
25
  salt);
24
26
 
25
- _poolService = PoolService(address(upgradeable));
27
+ _poolService = PoolService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -38,13 +38,14 @@ contract ApplicationService is
38
38
  )
39
39
  internal
40
40
  virtual override
41
- onlyInitializing()
41
+ initializer()
42
42
  {
43
43
  (
44
- address authority
45
- ) = abi.decode(data, (address));
44
+ address authority,
45
+ address registry
46
+ ) = abi.decode(data, (address, address));
46
47
 
47
- __Service_init(authority, owner);
48
+ __Service_init(authority, registry, owner);
48
49
 
49
50
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
50
51
  _pricingService = IPricingService(_getServiceAddress(PRICE()));
@@ -53,9 +54,7 @@ contract ApplicationService is
53
54
  _registerInterface(type(IApplicationService).interfaceId);
54
55
  }
55
56
 
56
- // TODO product - bundle - risk - refferal - distribution
57
- // checkBundle() is faster then checking with registry but first need to know poolNftId
58
- // check pool, get its nftIdf and instance -> instacne.getBundleSet.checkBundle(bundsleNftId) ????
57
+
59
58
  function _checkLinkedApplicationParameters(
60
59
  InstanceReader instanceReader,
61
60
  NftId productNftId,
@@ -109,11 +108,12 @@ contract ApplicationService is
109
108
  NftIdLib.zero(),
110
109
  productNftId,
111
110
  POLICY(),
112
- getRelease(),
113
111
  false, // intercepting property for policies is defined on product
114
- address(0));
112
+ address(0),
113
+ applicationOwner,
114
+ "");
115
115
 
116
- applicationNftId = _registryService.registerPolicy(objectInfo, applicationOwner, "");
116
+ applicationNftId = _registryService.registerPolicy(objectInfo);
117
117
  }
118
118
 
119
119
 
@@ -155,7 +155,7 @@ contract ApplicationService is
155
155
  {
156
156
  _checkNftType(bundleNftId, BUNDLE());
157
157
 
158
- (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
158
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveProduct();
159
159
 
160
160
  // check if provided references are valid and linked to calling product contract
161
161
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -290,15 +290,36 @@ contract ApplicationService is
290
290
  restricted()
291
291
  nonReentrant()
292
292
  {
293
- (, IInstance instance) = ContractLib.getAndVerifyProductForPolicy(
294
- applicationNftId, getRelease());
293
+ _checkNftType(applicationNftId, POLICY());
295
294
 
295
+ (, IInstance instance) = _getAndVerifyActiveProduct();
296
296
  instance.getProductStore().updateApplicationState(applicationNftId, REVOKED());
297
297
  emit LogApplicationServiceApplicationRevoked(applicationNftId);
298
298
  }
299
299
 
300
300
  // internal functions
301
301
 
302
+ function _getAndVerifyActiveProduct()
303
+ internal
304
+ view
305
+ returns (
306
+ NftId productNftId,
307
+ IInstance instance
308
+ )
309
+ {
310
+ (
311
+ IRegistry.ObjectInfo memory info,
312
+ address instanceAddress
313
+ ) = ContractLib.getAndVerifyComponent(
314
+ getRegistry(),
315
+ msg.sender,
316
+ PRODUCT(),
317
+ true); // only active pools
318
+
319
+ productNftId = info.nftId;
320
+ instance = IInstance(instanceAddress);
321
+ }
322
+
302
323
 
303
324
  function _getDomain() internal pure override returns(ObjectType) {
304
325
  return APPLICATION();
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ApplicationService} from "./ApplicationService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract ApplicationServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  ApplicationService svc = new ApplicationService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _applicationService = ApplicationService(address(upgradeable));
27
+ _applicationService = ApplicationService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//