@etherisc/gif-next 3.0.0-d7939fe-905 → 3.0.0-f90c901-018

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