@etherisc/gif-next 3.0.0-d6cf78d-199 → 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
@@ -20,7 +20,6 @@ interface IPolicyService is IService {
20
20
  event LogPolicyServicePolicyClosed(NftId policyNftId);
21
21
 
22
22
  error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
23
- error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
24
23
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
25
24
  error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
26
25
  error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
@@ -45,21 +45,20 @@ contract PolicyService is
45
45
  )
46
46
  internal
47
47
  virtual override
48
- initializer
48
+ onlyInitializing()
49
49
  {
50
50
  (
51
- address authority,
52
- address registry
53
- ) = abi.decode(data, (address, address));
51
+ address authority
52
+ ) = abi.decode(data, (address));
54
53
 
55
- __Service_init(authority, registry, owner);
54
+ __Service_init(authority, owner);
56
55
 
57
56
  VersionPart majorVersion = getVersion().toMajorPart();
58
- _accountingService = IAccountingService(getRegistry().getServiceAddress(ACCOUNTING(), majorVersion));
59
- _componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
60
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
61
- _distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
62
- _pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
57
+ _accountingService = IAccountingService(_getRegistry().getServiceAddress(ACCOUNTING(), majorVersion));
58
+ _componentService = IComponentService(_getRegistry().getServiceAddress(COMPONENT(), majorVersion));
59
+ _poolService = IPoolService(_getRegistry().getServiceAddress(POOL(), majorVersion));
60
+ _distributionService = IDistributionService(_getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
61
+ _pricingService = IPricingService(_getRegistry().getServiceAddress(PRICE(), majorVersion));
63
62
 
64
63
  _registerInterface(type(IPolicyService).interfaceId);
65
64
  }
@@ -74,7 +73,8 @@ contract PolicyService is
74
73
  nonReentrant()
75
74
  {
76
75
  // checks
77
- (IInstance instance,,) = _getAndVerifyCallerForPolicy(applicationNftId);
76
+ (, IInstance instance) = ContractLib.getAndVerifyProductForPolicy(
77
+ applicationNftId, getRelease());
78
78
 
79
79
  // check policy is in state applied
80
80
  if (instance.getInstanceReader().getPolicyState(applicationNftId) != APPLIED()) {
@@ -105,10 +105,10 @@ contract PolicyService is
105
105
  {
106
106
  // checks
107
107
  (
108
- IInstance instance,
109
108
  NftId productNftId,
110
- IPolicy.PolicyInfo memory applicationInfo
111
- ) = _getAndVerifyCallerForPolicy(applicationNftId);
109
+ IPolicy.PolicyInfo memory applicationInfo,
110
+ IInstance instance
111
+ ) = _getAndVerifyCallerAndInfoForPolicy(applicationNftId);
112
112
 
113
113
  // check policy is in state applied
114
114
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -173,7 +173,7 @@ contract PolicyService is
173
173
  }
174
174
 
175
175
  // link policy to risk and bundle
176
- NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
176
+ NftId poolNftId = _getRegistry().getParentNftId(bundleNftId);
177
177
  instance.getRiskSet().linkPolicy(productNftId, riskId, applicationNftId);
178
178
  instance.getBundleSet().linkPolicy(poolNftId, bundleNftId, applicationNftId);
179
179
 
@@ -198,10 +198,10 @@ contract PolicyService is
198
198
  {
199
199
  // checks
200
200
  (
201
- IInstance instance,
202
201
  NftId productNftId,
203
- IPolicy.PolicyInfo memory policyInfo
204
- ) = _getAndVerifyCallerForPolicy(policyNftId);
202
+ IPolicy.PolicyInfo memory policyInfo,
203
+ IInstance instance
204
+ ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
205
205
 
206
206
  // check policy is in state collateralized
207
207
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -218,7 +218,7 @@ contract PolicyService is
218
218
  IPolicy.PremiumInfo memory premium = instanceReader.getPremiumInfo(policyNftId);
219
219
  instanceReader.getTokenHandler(
220
220
  productNftId).checkBalanceAndAllowance(
221
- getRegistry().ownerOf(policyNftId),
221
+ _getRegistry().ownerOf(policyNftId),
222
222
  premium.premiumAmount,
223
223
  false);
224
224
 
@@ -226,7 +226,7 @@ contract PolicyService is
226
226
  // _checkPremiumBalanceAndAllowance(
227
227
  // tokenHandler.TOKEN(),
228
228
  // address(tokenHandler),
229
- // getRegistry().ownerOf(policyNftId),
229
+ // _getRegistry().ownerOf(policyNftId),
230
230
  // premium.premiumAmount);
231
231
 
232
232
  // effects
@@ -263,9 +263,10 @@ contract PolicyService is
263
263
  {
264
264
  // checks
265
265
  (
266
- IInstance instance,,
267
- IPolicy.PolicyInfo memory policyInfo
268
- ) = _getAndVerifyCallerForPolicy(policyNftId);
266
+ , // NftId productNftId,
267
+ IPolicy.PolicyInfo memory policyInfo,
268
+ IInstance instance
269
+ ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
269
270
 
270
271
  // effects
271
272
  policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
@@ -291,9 +292,10 @@ contract PolicyService is
291
292
  {
292
293
  // checks
293
294
  (
294
- IInstance instance,,
295
- IPolicy.PolicyInfo memory policyInfo
296
- ) = _getAndVerifyCallerForPolicy(policyNftId);
295
+ , // NftId productNftId,
296
+ IPolicy.PolicyInfo memory policyInfo,
297
+ IInstance instance
298
+ ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
297
299
 
298
300
  if (policyInfo.activatedAt.eqz()) {
299
301
  revert ErrorPolicyServicePolicyNotActivated(policyNftId);
@@ -333,9 +335,10 @@ contract PolicyService is
333
335
  {
334
336
  // checks
335
337
  (
336
- IInstance instance,,
337
- IPolicy.PolicyInfo memory policyInfo
338
- ) = _getAndVerifyCallerForPolicy(policyNftId);
338
+ , // NftId productNftId,
339
+ IPolicy.PolicyInfo memory policyInfo,
340
+ IInstance instance
341
+ ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
339
342
 
340
343
  // more checks, effects + interactions
341
344
  return _expire(
@@ -385,10 +388,10 @@ contract PolicyService is
385
388
  {
386
389
  // checks
387
390
  (
388
- IInstance instance,
389
391
  NftId productNftId,
390
- IPolicy.PolicyInfo memory policyInfo
391
- ) = _getAndVerifyCallerForPolicy(policyNftId);
392
+ IPolicy.PolicyInfo memory policyInfo,
393
+ IInstance instance
394
+ ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
392
395
  InstanceReader instanceReader = instance.getInstanceReader();
393
396
 
394
397
  // check policy is in a closeable state
@@ -418,7 +421,7 @@ contract PolicyService is
418
421
  instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
419
422
 
420
423
  // unlink policy from risk and bundle
421
- NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
424
+ NftId poolNftId = _getRegistry().getParentNftId(bundleNftId);
422
425
  instance.getRiskSet().unlinkPolicy(productNftId, riskId, policyNftId);
423
426
  instance.getBundleSet().unlinkPolicy(poolNftId, bundleNftId, policyNftId);
424
427
 
@@ -500,7 +503,7 @@ contract PolicyService is
500
503
  internal
501
504
  virtual
502
505
  {
503
- address policyHolder = getRegistry().ownerOf(policyNftId);
506
+ address policyHolder = _getRegistry().ownerOf(policyNftId);
504
507
 
505
508
  (
506
509
  ,
@@ -574,7 +577,7 @@ contract PolicyService is
574
577
  view
575
578
  returns (IPolicyHolder policyHolder)
576
579
  {
577
- address policyHolderAddress = getRegistry().ownerOf(policyNftId);
580
+ address policyHolderAddress = _getRegistry().ownerOf(policyNftId);
578
581
  policyHolder = IPolicyHolder(policyHolderAddress);
579
582
 
580
583
  if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
@@ -606,36 +609,20 @@ contract PolicyService is
606
609
  }
607
610
  }
608
611
 
609
-
610
- function _getAndVerifyCallerForPolicy(NftId policyNftId)
612
+ function _getAndVerifyCallerAndInfoForPolicy(NftId policyNftId)
611
613
  internal
612
614
  virtual
613
615
  view
614
616
  returns (
615
- IInstance instance,
616
617
  NftId productNftId,
617
- IPolicy.PolicyInfo memory policyInfo
618
+ IPolicy.PolicyInfo memory policyInfo,
619
+ IInstance instance
618
620
  )
619
621
  {
620
- (
621
- IRegistry.ObjectInfo memory productInfo,
622
- address instanceAddress
623
- ) = ContractLib.getAndVerifyComponent(
624
- getRegistry(),
625
- msg.sender, // caller contract
626
- PRODUCT(), // caller must be product
627
- true); // only active caller
628
-
629
- productNftId = productInfo.nftId; // calling product nft id
630
- instance = IInstance(instanceAddress);
631
- policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
622
+ (productNftId, instance) = ContractLib.getAndVerifyProductForPolicy(
623
+ policyNftId, getRelease());
632
624
 
633
- if (policyInfo.productNftId != productNftId) {
634
- revert ErrorPolicyServicePolicyProductMismatch(
635
- policyNftId,
636
- productNftId,
637
- policyInfo.productNftId);
638
- }
625
+ policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
639
626
  }
640
627
 
641
628
 
@@ -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 {PolicyService} from "./PolicyService.sol";
7
7
 
@@ -12,19 +12,17 @@ contract PolicyServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with product service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registry,
16
15
  bytes32 salt
17
16
  )
18
17
  {
19
18
  PolicyService svc = new PolicyService{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
- _policyService = PolicyService(address(versionable));
25
+ _policyService = PolicyService(address(upgradeable));
28
26
  }
29
27
 
30
28
  //--- view functions ----------------------------------------------------//
@@ -36,14 +36,13 @@ contract PricingService is
36
36
  )
37
37
  internal
38
38
  virtual override
39
- initializer()
39
+ onlyInitializing()
40
40
  {
41
41
  (
42
- address authority,
43
- address registry
44
- ) = abi.decode(data, (address, address));
42
+ address authority
43
+ ) = abi.decode(data, (address));
45
44
 
46
- __Service_init(authority, registry, owner);
45
+ __Service_init(authority, owner);
47
46
 
48
47
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
49
48
 
@@ -78,11 +77,11 @@ contract PricingService is
78
77
  // verify product
79
78
  (
80
79
  IRegistry.ObjectInfo memory registryInfo,
81
- address instanceAddress
82
- ) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
80
+ IInstance instance
81
+ ) = ContractLib.getInfoAndInstance(productNftId, getRelease(), false);
83
82
 
84
83
  // get instance reader from local instance variable
85
- reader = IInstance(instanceAddress).getInstanceReader();
84
+ reader = instance.getInstanceReader();
86
85
 
87
86
  NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
88
87
  if (productNftId != riskProductNftId) {
@@ -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 {PricingService} from "./PricingService.sol";
7
7
 
@@ -12,19 +12,17 @@ contract PricingServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with pricing service implementation and deploys instance
13
13
  constructor(
14
14
  address authority,
15
- address registry,
16
15
  bytes32 salt
17
16
  )
18
17
  {
19
18
  PricingService pricingSrv = new PricingService{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(pricingSrv),
24
22
  data,
25
23
  salt);
26
24
 
27
- _pricingService = PricingService(address(versionable));
25
+ _pricingService = PricingService(address(upgradeable));
28
26
  }
29
27
 
30
28
  //--- view functions ----------------------------------------------------//
@@ -134,7 +134,6 @@ abstract contract Product is
134
134
 
135
135
 
136
136
  function __Product_init(
137
- address registry,
138
137
  NftId instanceNftId,
139
138
  string memory name,
140
139
  IComponents.ProductInfo memory productInfo,
@@ -147,7 +146,6 @@ abstract contract Product is
147
146
  onlyInitializing()
148
147
  {
149
148
  __InstanceLinkedComponent_init(
150
- registry,
151
149
  instanceNftId,
152
150
  name,
153
151
  PRODUCT(),
@@ -26,15 +26,14 @@ contract RiskService is
26
26
  bytes memory data
27
27
  )
28
28
  internal
29
- initializer
30
29
  virtual override
30
+ onlyInitializing()
31
31
  {
32
32
  (
33
- address authority,
34
- address registry
35
- ) = abi.decode(data, (address, address));
33
+ address authority
34
+ ) = abi.decode(data, (address));
36
35
 
37
- __Service_init(authority, registry, owner);
36
+ __Service_init(authority, owner);
38
37
  _registerInterface(type(IRiskService).interfaceId);
39
38
  }
40
39
 
@@ -49,7 +48,7 @@ contract RiskService is
49
48
  returns (RiskId riskId)
50
49
  {
51
50
  // checks
52
- (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
51
+ (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
53
52
 
54
53
  // effects
55
54
  riskId = RiskIdLib.toRiskId(productNftId, id);
@@ -80,7 +79,7 @@ contract RiskService is
80
79
  restricted()
81
80
  {
82
81
  // checks
83
- (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
82
+ (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
84
83
 
85
84
  // effects
86
85
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -107,7 +106,7 @@ contract RiskService is
107
106
  restricted()
108
107
  {
109
108
  // checks
110
- (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
109
+ (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
111
110
 
112
111
  if (!instance.getRiskSet().hasRisk(productNftId, riskId)) {
113
112
  revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
@@ -135,7 +134,7 @@ contract RiskService is
135
134
  restricted()
136
135
  {
137
136
  // checks
138
- (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
137
+ (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
139
138
  (bool exists, bool active) = instance.getRiskSet().checkRisk(productNftId, riskId);
140
139
 
141
140
  if (!exists) {
@@ -152,37 +151,6 @@ contract RiskService is
152
151
  emit LogRiskServiceRiskClosed(productNftId, riskId);
153
152
  }
154
153
 
155
- function _getAndVerifyActiveComponent(ObjectType expectedType)
156
- internal
157
- view
158
- returns (
159
- NftId componentNftId,
160
- IInstance instance
161
- )
162
- {
163
- IRegistry.ObjectInfo memory info;
164
- address instanceAddress;
165
- bool isActive = true;
166
-
167
- if (expectedType != COMPONENT()) {
168
- (info, instanceAddress) = ContractLib.getAndVerifyComponent(
169
- getRegistry(),
170
- msg.sender, // caller
171
- expectedType,
172
- isActive);
173
- } else {
174
- (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
175
- getRegistry(),
176
- msg.sender,
177
- isActive);
178
- }
179
-
180
- // get component nft id and instance
181
- componentNftId = info.nftId;
182
- instance = IInstance(instanceAddress);
183
- }
184
-
185
-
186
154
  function _getDomain() internal pure override returns(ObjectType) {
187
155
  return RISK();
188
156
  }
@@ -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 {RiskService} from "./RiskService.sol";
7
7
 
@@ -12,19 +12,17 @@ contract RiskServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with product service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registry,
16
15
  bytes32 salt
17
16
  )
18
17
  {
19
18
  RiskService svc = new RiskService{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
- _riskService = RiskService(address(versionable));
25
+ _riskService = RiskService(address(upgradeable));
28
26
  }
29
27
 
30
28
  //--- view functions ----------------------------------------------------//
@@ -19,8 +19,8 @@ interface IRegistry is
19
19
  IERC165
20
20
  {
21
21
 
22
- event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
22
+ event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, VersionPart objectVersion, bool isInterceptor, address objectAddress, address initialOwner);
23
+ event LogRegistryServiceRegistered(VersionPart release, ObjectType domain);
24
24
  event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
25
 
26
26
  // initialize
@@ -49,6 +49,7 @@ interface IRegistry is
49
49
  error ErrorRegistryCoreTypeRegistration();
50
50
 
51
51
  // _register()
52
+ error ErrorRegistryReleaseMismatch(VersionPart objectrelease, VersionPart parentRelease, VersionPart senderRelease);
52
53
  error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
53
54
  error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
54
55
  error ErrorRegistryContractAlreadyRegistered(address objectAddress);
@@ -58,13 +59,10 @@ interface IRegistry is
58
59
  NftId nftId;
59
60
  NftId parentNftId;
60
61
  ObjectType objectType;
62
+ VersionPart release;
61
63
  bool isInterceptor;
62
64
  // slot 1
63
65
  address objectAddress;
64
- // slot 2
65
- address initialOwner;
66
- // slot 3
67
- bytes data;
68
66
  }
69
67
 
70
68
  /// @dev Registers a registry contract for a specified chain.
@@ -72,28 +70,30 @@ interface IRegistry is
72
70
  function registerRegistry(
73
71
  NftId nftId,
74
72
  uint256 chainId,
75
- address chainRegistryAddress
73
+ address chainRegistryAddress,
74
+ VersionPart release
76
75
  ) external;
77
76
 
78
77
  /// @dev Register a service with using the provided domain and version.
79
78
  /// The function returns a newly minted service NFT ID.
80
79
  /// May only be used to register services.
81
80
  function registerService(
82
- ObjectInfo memory serviceInfo,
83
- VersionPart serviceVersion,
84
- ObjectType serviceDomain
81
+ ObjectInfo memory info,
82
+ address initialOwner,
83
+ ObjectType domain,
84
+ bytes memory data
85
85
  ) external returns(NftId nftId);
86
86
 
87
87
  /// @dev Register an object with a known core type.
88
88
  /// The function returns a newly minted object NFT ID.
89
89
  /// May not be used to register services.
90
- function register(ObjectInfo memory info) external returns (NftId nftId);
90
+ function register(ObjectInfo memory info, address initialOwner, bytes memory data) external returns (NftId nftId);
91
91
 
92
92
  /// @dev Register an object with a custom type.
93
93
  /// The function returns a newly minted object NFT ID.
94
94
  /// This function is reserved for GIF releases > 3.
95
95
  /// May not be used to register known core types.
96
- function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
96
+ function registerWithCustomType(ObjectInfo memory info, address initialOwner, bytes memory data) external returns (NftId nftId);
97
97
 
98
98
  function getInitialRelease() external view returns (VersionPart);
99
99
 
@@ -126,9 +126,15 @@ interface IRegistry is
126
126
 
127
127
  function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
128
128
 
129
- function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
129
+ function getObjectData(NftId nftId) external view returns (bytes memory data);
130
130
 
131
- function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
131
+ function getObjectData(address objectAddress) external view returns (bytes memory data);
132
+
133
+ function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
134
+
135
+ function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
136
+
137
+ function getObjectRelease(NftId nftId) external view returns (VersionPart release);
132
138
 
133
139
  function getObjectAddress(NftId nftId) external view returns (address objectAddress);
134
140
 
@@ -19,13 +19,12 @@ interface IRegistryService is
19
19
  {
20
20
  error ErrorRegistryServiceNotRegistryOwner();
21
21
 
22
- error ErrorRegistryServiceNotService(address notService);
23
- error ErrorRegistryServiceNotInstance(address notInstance);
24
- error ErrorRegistryServiceNotProduct(address notProduct);
25
- error ErrorRegistryServiceNotComponent(address notComponent);
26
- error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
22
+ // _checkInterface()
23
+ error ErrorRegistryServiceNotContract(address notContract);
24
+ error ErrorRegistryServiceInterfaceNotSupported(address registerable, bytes4 interfaceId);
27
25
 
28
26
  error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
27
+ error ErrorRegistryServiceRegisterableParentInvalid(IRegisterable registerable, NftId expected, NftId found);
29
28
  error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
30
29
  error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
31
30
  error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
@@ -40,23 +39,20 @@ interface IRegistryService is
40
39
  error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
41
40
  error ErrorRegistryServiceInvalidAddress(address registerableAddress);
42
41
 
43
- function registerStake(IRegistry.ObjectInfo memory info)
42
+ function registerStake(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data)
44
43
  external returns(NftId nftId);
45
44
 
46
- function registerInstance(IRegisterable instance, address owner)
45
+ function registerInstance(IRegisterable instance, address initialOwner)
47
46
  external returns(IRegistry.ObjectInfo memory info);
48
47
 
49
- function registerProduct(IComponent product, address owner)
48
+ function registerComponent(IRegisterable component, NftId parenNftId, ObjectType componentType, address initialOwner)
50
49
  external returns(IRegistry.ObjectInfo memory info);
51
50
 
52
- function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
53
- external returns(IRegistry.ObjectInfo memory info);
54
-
55
- function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
51
+ function registerDistributor(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
56
52
 
57
- function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
53
+ function registerPolicy(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
58
54
 
59
- function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
55
+ function registerBundle(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
60
56
 
61
57
  }
62
58
 
@@ -23,7 +23,4 @@ interface IRelease {
23
23
  bytes32 salt;
24
24
  }
25
25
 
26
- /// @dev Registers a registry contract for a specified chain.
27
- /// Only one chain registry may be registered per chain
28
- function getRelease() external view returns (VersionPart release);
29
26
  }