@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765

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 (530) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +85 -83
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  77. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
  83. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
  87. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  89. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  91. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  93. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  95. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  128. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  129. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  133. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  135. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  140. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  180. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +59 -149
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  220. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +217 -156
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  263. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  289. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  290. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  382. package/contracts/accounting/AccountingService.sol +22 -33
  383. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  384. package/contracts/accounting/IAccountingService.sol +7 -8
  385. package/contracts/authorization/AccessAdmin.sol +34 -55
  386. package/contracts/authorization/AccessAdminLib.sol +29 -15
  387. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  388. package/contracts/authorization/Authorization.sol +2 -2
  389. package/contracts/authorization/IAccessAdmin.sol +11 -10
  390. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  391. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  392. package/contracts/distribution/BasicDistribution.sol +2 -0
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  394. package/contracts/distribution/Distribution.sol +2 -0
  395. package/contracts/distribution/DistributionService.sol +44 -43
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  397. package/contracts/distribution/IDistributionComponent.sol +0 -2
  398. package/contracts/distribution/IDistributionService.sol +8 -7
  399. package/contracts/examples/fire/FirePool.sol +4 -0
  400. package/contracts/examples/fire/FireProduct.sol +4 -0
  401. package/contracts/examples/flight/FlightLib.sol +337 -0
  402. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  403. package/contracts/examples/flight/FlightNft.sol +234 -0
  404. package/contracts/examples/flight/FlightOracle.sol +226 -0
  405. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  406. package/contracts/examples/flight/FlightPool.sol +89 -0
  407. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  408. package/contracts/examples/flight/FlightProduct.sol +687 -0
  409. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  410. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  411. package/contracts/examples/flight/FlightUSD.sol +28 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  414. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  415. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  416. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  417. package/contracts/instance/BaseStore.sol +4 -0
  418. package/contracts/instance/BundleSet.sol +7 -8
  419. package/contracts/instance/IBaseStore.sol +8 -0
  420. package/contracts/instance/IInstance.sol +8 -8
  421. package/contracts/instance/IInstanceService.sol +6 -4
  422. package/contracts/instance/Instance.sol +12 -8
  423. package/contracts/instance/InstanceAdmin.sol +17 -11
  424. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  425. package/contracts/instance/InstanceReader.sol +59 -23
  426. package/contracts/instance/InstanceService.sol +28 -18
  427. package/contracts/instance/InstanceServiceManager.sol +6 -4
  428. package/contracts/instance/InstanceStore.sol +14 -14
  429. package/contracts/instance/ProductStore.sol +14 -14
  430. package/contracts/instance/RiskSet.sol +6 -7
  431. package/contracts/instance/base/BalanceStore.sol +7 -7
  432. package/contracts/instance/base/Cloneable.sol +10 -4
  433. package/contracts/instance/base/ObjectSet.sol +3 -3
  434. package/contracts/oracle/BasicOracle.sol +3 -0
  435. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  436. package/contracts/oracle/IOracleService.sol +21 -17
  437. package/contracts/oracle/Oracle.sol +6 -5
  438. package/contracts/oracle/OracleService.sol +68 -38
  439. package/contracts/oracle/OracleServiceManager.sol +6 -4
  440. package/contracts/pool/BasicPool.sol +4 -2
  441. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  442. package/contracts/pool/BundleService.sol +22 -28
  443. package/contracts/pool/BundleServiceManager.sol +7 -5
  444. package/contracts/pool/IBundleService.sol +9 -10
  445. package/contracts/pool/IPoolComponent.sol +1 -1
  446. package/contracts/pool/IPoolService.sol +14 -13
  447. package/contracts/pool/Pool.sol +3 -1
  448. package/contracts/pool/PoolLib.sol +102 -5
  449. package/contracts/pool/PoolService.sol +101 -67
  450. package/contracts/pool/PoolServiceManager.sol +6 -4
  451. package/contracts/product/ApplicationService.sol +34 -13
  452. package/contracts/product/ApplicationServiceManager.sol +6 -4
  453. package/contracts/product/BasicProduct.sol +2 -0
  454. package/contracts/product/BasicProductAuthorization.sol +7 -7
  455. package/contracts/product/ClaimService.sol +35 -11
  456. package/contracts/product/ClaimServiceManager.sol +7 -5
  457. package/contracts/product/IApplicationService.sol +8 -8
  458. package/contracts/product/IClaimService.sol +9 -9
  459. package/contracts/product/IPolicyService.sol +8 -7
  460. package/contracts/product/IRiskService.sol +4 -5
  461. package/contracts/product/PolicyService.sol +58 -45
  462. package/contracts/product/PolicyServiceLib.sol +5 -3
  463. package/contracts/product/PolicyServiceManager.sol +6 -4
  464. package/contracts/product/PricingService.sol +8 -7
  465. package/contracts/product/PricingServiceManager.sol +6 -4
  466. package/contracts/product/Product.sol +2 -0
  467. package/contracts/product/RiskService.sol +42 -10
  468. package/contracts/product/RiskServiceManager.sol +6 -4
  469. package/contracts/registry/ChainNft.sol +2 -2
  470. package/contracts/registry/IRegistry.sol +15 -21
  471. package/contracts/registry/IRegistryService.sol +14 -10
  472. package/contracts/registry/IRelease.sol +3 -0
  473. package/contracts/registry/Registry.sol +82 -126
  474. package/contracts/registry/RegistryAdmin.sol +29 -12
  475. package/contracts/registry/RegistryAuthorization.sol +3 -6
  476. package/contracts/registry/RegistryService.sol +82 -99
  477. package/contracts/registry/RegistryServiceManager.sol +11 -4
  478. package/contracts/registry/ReleaseAdmin.sol +27 -13
  479. package/contracts/registry/ReleaseRegistry.sol +81 -72
  480. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  481. package/contracts/registry/TokenRegistry.sol +18 -9
  482. package/contracts/shared/Component.sol +22 -27
  483. package/contracts/shared/ComponentService.sol +168 -49
  484. package/contracts/shared/ComponentServiceManager.sol +7 -5
  485. package/contracts/shared/ContractLib.sol +93 -359
  486. package/contracts/shared/EcdsaChecker.sol +5 -0
  487. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  488. package/contracts/shared/IComponent.sol +3 -9
  489. package/contracts/shared/IComponentService.sol +46 -10
  490. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  491. package/contracts/shared/INftOwnable.sol +3 -1
  492. package/contracts/shared/IRegisterable.sol +3 -14
  493. package/contracts/shared/IRegistryLinked.sol +3 -1
  494. package/contracts/shared/IService.sol +2 -2
  495. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  496. package/contracts/shared/NftOwnable.sol +22 -9
  497. package/contracts/shared/PolicyHolder.sol +4 -2
  498. package/contracts/shared/Registerable.sol +20 -37
  499. package/contracts/shared/RegistryLinked.sol +23 -4
  500. package/contracts/shared/Service.sol +9 -8
  501. package/contracts/shared/TokenHandler.sol +6 -9
  502. package/contracts/staking/IStaking.sol +35 -33
  503. package/contracts/staking/IStakingService.sol +7 -16
  504. package/contracts/staking/Staking.sol +38 -32
  505. package/contracts/staking/StakingLib.sol +1 -3
  506. package/contracts/staking/StakingManager.sol +6 -3
  507. package/contracts/staking/StakingReader.sol +17 -9
  508. package/contracts/staking/StakingService.sol +15 -18
  509. package/contracts/staking/StakingServiceManager.sol +8 -4
  510. package/contracts/staking/StakingStore.sol +11 -11
  511. package/contracts/staking/TargetHandler.sol +6 -5
  512. package/contracts/type/ObjectType.sol +2 -31
  513. package/contracts/type/Referral.sol +6 -0
  514. package/contracts/type/RequestIdSet.sol +62 -0
  515. package/contracts/type/Seconds.sol +4 -0
  516. package/contracts/type/String.sol +30 -0
  517. package/contracts/type/Timestamp.sol +10 -1
  518. package/contracts/type/Version.sol +16 -15
  519. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  520. package/contracts/upgradeability/ProxyManager.sol +54 -46
  521. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  522. package/package.json +4 -3
  523. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  527. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  528. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  529. package/contracts/shared/IVersionable.sol +0 -19
  530. package/contracts/shared/Versionable.sol +0 -47
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
@@ -11,18 +11,20 @@ contract ClaimServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address authority,
14
+ address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  ClaimService svc = new ClaimService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _claimService = ClaimService(address(upgradeable));
27
+ _claimService = ClaimService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -15,24 +15,24 @@ import {Seconds} from "../type/Seconds.sol";
15
15
  interface IApplicationService is IService {
16
16
 
17
17
  event LogApplicationServiceApplicationCreated(
18
- NftId applicationNftId,
19
- NftId productNftId,
20
- NftId bundleNftId,
18
+ NftId indexed applicationNftId,
19
+ NftId indexed productNftId,
20
+ NftId indexed bundleNftId,
21
21
  RiskId riskId,
22
22
  ReferralId referralId,
23
23
  address applicationOwner,
24
24
  Amount sumInsuredAmount,
25
25
  Amount premiumAmount,
26
26
  Seconds lifetime);
27
- event LogApplicationServiceApplicationRenewed(NftId policyNftId, NftId bundleNftId);
27
+ event LogApplicationServiceApplicationRenewed(NftId indexed policyNftId, NftId indexed bundleNftId);
28
28
  event LogApplicationServiceApplicationAdjusted(
29
- NftId applicationNftId,
30
- NftId bundleNftId,
31
- RiskId riskId,
29
+ NftId indexed applicationNftId,
30
+ NftId indexed bundleNftId,
31
+ RiskId indexed riskId,
32
32
  ReferralId referralId,
33
33
  Amount sumInsuredAmount,
34
34
  Seconds lifetime);
35
- event LogApplicationServiceApplicationRevoked(NftId applicationNftId);
35
+ event LogApplicationServiceApplicationRevoked(NftId indexed applicationNftId);
36
36
 
37
37
  // _checkLinkedApplicationParameters
38
38
  error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
@@ -19,15 +19,15 @@ import {Fee} from "../type/Fee.sol";
19
19
  interface IClaimService is
20
20
  IService
21
21
  {
22
- event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
23
- event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
24
- event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
25
- event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
26
- event LogClaimServiceClaimCancelled(NftId policyNftId, ClaimId claimId);
27
-
28
- event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
29
- event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
30
- event LogClaimServicePayoutCancelled(NftId policyNftId, PayoutId payoutId);
22
+ event LogClaimServiceClaimSubmitted(NftId indexed policyNftId, ClaimId indexed claimId, Amount indexed claimAmount);
23
+ event LogClaimServiceClaimConfirmed(NftId indexed policyNftId, ClaimId indexed claimId, Amount indexed confirmedAmount);
24
+ event LogClaimServiceClaimDeclined(NftId indexed policyNftId, ClaimId indexed claimId);
25
+ event LogClaimServiceClaimRevoked(NftId indexed policyNftId, ClaimId indexed claimId);
26
+ event LogClaimServiceClaimCancelled(NftId indexed policyNftId, ClaimId indexed claimId);
27
+
28
+ event LogClaimServicePayoutCreated(NftId indexed policyNftId, ClaimId indexed claimId, PayoutId indexed payoutId, Amount amount, address beneficiary);
29
+ event LogClaimServicePayoutProcessed(NftId indexed policyNftId, PayoutId indexed payoutId, Amount indexed amount);
30
+ event LogClaimServicePayoutCancelled(NftId indexed policyNftId, PayoutId indexed payoutId);
31
31
 
32
32
  error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
33
33
 
@@ -11,15 +11,16 @@ import {Timestamp} from "../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicyService is IService {
13
13
 
14
- event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
- event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
- event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
17
- event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
- event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
19
- event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
20
- event LogPolicyServicePolicyClosed(NftId policyNftId);
14
+ event LogPolicyServicePolicyCreated(NftId indexed policyNftId, Amount indexed premiumAmount, Timestamp indexed activatedAt);
15
+ event LogPolicyServicePolicyDeclined(NftId indexed policyNftId);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId indexed policyNftId, NftId indexed productNftId, Amount indexed premiumAmount, Timestamp activateAt);
17
+ event LogPolicyServicePolicyActivated(NftId indexed policyNftId, Timestamp indexed activatedAt);
18
+ event LogPolicyServicePolicyActivatedUpdated(NftId indexed policyNftId, Timestamp indexed activatedAt);
19
+ event LogPolicyServicePolicyExpirationUpdated(NftId indexed policyNftId, Timestamp indexed expiredAt);
20
+ event LogPolicyServicePolicyClosed(NftId indexed policyNftId);
21
21
 
22
22
  error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
23
+ error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
23
24
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
24
25
  error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
25
26
  error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
@@ -9,11 +9,10 @@ import {StateId} from "../type/StateId.sol";
9
9
 
10
10
  interface IRiskService is IService {
11
11
 
12
- event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
13
- event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
14
- event LogRiskServiceRiskLocked(NftId productNftId, RiskId riskId);
15
- event LogRiskServiceRiskUnlocked(NftId productNftId, RiskId riskId);
16
- event LogRiskServiceRiskClosed(NftId productNftId, RiskId riskId);
12
+ event LogRiskServiceRiskCreated(NftId indexed productNftId, RiskId indexed riskId);
13
+ event LogRiskServiceRiskUpdated(NftId indexed productNftId, RiskId indexed riskId);
14
+ event LogRiskServiceRiskLocked(NftId indexed productNftId, RiskId indexed riskId, bool indexed locked);
15
+ event LogRiskServiceRiskClosed(NftId indexed productNftId, RiskId indexed riskId);
17
16
 
18
17
  error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
19
18
  error ErrorRiskServiceRiskNotActive(NftId productNftId, RiskId riskId);
@@ -45,20 +45,21 @@ contract PolicyService is
45
45
  )
46
46
  internal
47
47
  virtual override
48
- onlyInitializing()
48
+ initializer
49
49
  {
50
50
  (
51
- address authority
52
- ) = abi.decode(data, (address));
51
+ address authority,
52
+ address registry
53
+ ) = abi.decode(data, (address, address));
53
54
 
54
- __Service_init(authority, owner);
55
+ __Service_init(authority, registry, owner);
55
56
 
56
57
  VersionPart majorVersion = getVersion().toMajorPart();
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));
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));
62
63
 
63
64
  _registerInterface(type(IPolicyService).interfaceId);
64
65
  }
@@ -73,8 +74,7 @@ contract PolicyService is
73
74
  nonReentrant()
74
75
  {
75
76
  // checks
76
- (, IInstance instance) = ContractLib.getAndVerifyProductForPolicy(
77
- applicationNftId, getRelease());
77
+ (IInstance instance,,) = _getAndVerifyCallerForPolicy(applicationNftId);
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,
108
109
  NftId productNftId,
109
- IPolicy.PolicyInfo memory applicationInfo,
110
- IInstance instance
111
- ) = _getAndVerifyCallerAndInfoForPolicy(applicationNftId);
110
+ IPolicy.PolicyInfo memory applicationInfo
111
+ ) = _getAndVerifyCallerForPolicy(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,
201
202
  NftId productNftId,
202
- IPolicy.PolicyInfo memory policyInfo,
203
- IInstance instance
204
- ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
203
+ IPolicy.PolicyInfo memory policyInfo
204
+ ) = _getAndVerifyCallerForPolicy(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
@@ -247,7 +247,7 @@ contract PolicyService is
247
247
  instance.getProductStore().updatePremiumState(policyNftId, PAID());
248
248
 
249
249
  // log premium collection before interactions with token
250
- emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
250
+ emit LogPolicyServicePolicyPremiumCollected(policyNftId, policyInfo.productNftId, premium.premiumAmount, activateAt);
251
251
 
252
252
  // interactions
253
253
  _transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
@@ -263,10 +263,9 @@ contract PolicyService is
263
263
  {
264
264
  // checks
265
265
  (
266
- , // NftId productNftId,
267
- IPolicy.PolicyInfo memory policyInfo,
268
- IInstance instance
269
- ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
266
+ IInstance instance,,
267
+ IPolicy.PolicyInfo memory policyInfo
268
+ ) = _getAndVerifyCallerForPolicy(policyNftId);
270
269
 
271
270
  // effects
272
271
  policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
@@ -292,10 +291,9 @@ contract PolicyService is
292
291
  {
293
292
  // checks
294
293
  (
295
- , // NftId productNftId,
296
- IPolicy.PolicyInfo memory policyInfo,
297
- IInstance instance
298
- ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
294
+ IInstance instance,,
295
+ IPolicy.PolicyInfo memory policyInfo
296
+ ) = _getAndVerifyCallerForPolicy(policyNftId);
299
297
 
300
298
  if (policyInfo.activatedAt.eqz()) {
301
299
  revert ErrorPolicyServicePolicyNotActivated(policyNftId);
@@ -335,10 +333,9 @@ contract PolicyService is
335
333
  {
336
334
  // checks
337
335
  (
338
- , // NftId productNftId,
339
- IPolicy.PolicyInfo memory policyInfo,
340
- IInstance instance
341
- ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
336
+ IInstance instance,,
337
+ IPolicy.PolicyInfo memory policyInfo
338
+ ) = _getAndVerifyCallerForPolicy(policyNftId);
342
339
 
343
340
  // more checks, effects + interactions
344
341
  return _expire(
@@ -388,10 +385,10 @@ contract PolicyService is
388
385
  {
389
386
  // checks
390
387
  (
388
+ IInstance instance,
391
389
  NftId productNftId,
392
- IPolicy.PolicyInfo memory policyInfo,
393
- IInstance instance
394
- ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
390
+ IPolicy.PolicyInfo memory policyInfo
391
+ ) = _getAndVerifyCallerForPolicy(policyNftId);
395
392
  InstanceReader instanceReader = instance.getInstanceReader();
396
393
 
397
394
  // check policy is in a closeable state
@@ -421,7 +418,7 @@ contract PolicyService is
421
418
  instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
422
419
 
423
420
  // unlink policy from risk and bundle
424
- NftId poolNftId = _getRegistry().getParentNftId(bundleNftId);
421
+ NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
425
422
  instance.getRiskSet().unlinkPolicy(productNftId, riskId, policyNftId);
426
423
  instance.getBundleSet().unlinkPolicy(poolNftId, bundleNftId, policyNftId);
427
424
 
@@ -503,7 +500,7 @@ contract PolicyService is
503
500
  internal
504
501
  virtual
505
502
  {
506
- address policyHolder = _getRegistry().ownerOf(policyNftId);
503
+ address policyHolder = getRegistry().ownerOf(policyNftId);
507
504
 
508
505
  (
509
506
  ,
@@ -577,7 +574,7 @@ contract PolicyService is
577
574
  view
578
575
  returns (IPolicyHolder policyHolder)
579
576
  {
580
- address policyHolderAddress = _getRegistry().ownerOf(policyNftId);
577
+ address policyHolderAddress = getRegistry().ownerOf(policyNftId);
581
578
  policyHolder = IPolicyHolder(policyHolderAddress);
582
579
 
583
580
  if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
@@ -609,20 +606,36 @@ contract PolicyService is
609
606
  }
610
607
  }
611
608
 
612
- function _getAndVerifyCallerAndInfoForPolicy(NftId policyNftId)
609
+
610
+ function _getAndVerifyCallerForPolicy(NftId policyNftId)
613
611
  internal
614
612
  virtual
615
613
  view
616
614
  returns (
615
+ IInstance instance,
617
616
  NftId productNftId,
618
- IPolicy.PolicyInfo memory policyInfo,
619
- IInstance instance
617
+ IPolicy.PolicyInfo memory policyInfo
620
618
  )
621
619
  {
622
- (productNftId, instance) = ContractLib.getAndVerifyProductForPolicy(
623
- policyNftId, getRelease());
624
-
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);
625
631
  policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
632
+
633
+ if (policyInfo.productNftId != productNftId) {
634
+ revert ErrorPolicyServicePolicyProductMismatch(
635
+ policyNftId,
636
+ productNftId,
637
+ policyInfo.productNftId);
638
+ }
626
639
  }
627
640
 
628
641
 
@@ -95,13 +95,14 @@ library PolicyServiceLib {
95
95
  {
96
96
  if (policyState != COLLATERALIZED()) {
97
97
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
98
- }
99
- if (TimestampLib.current() < policyInfo.activatedAt) {
98
+ }
99
+
100
+ if (policyInfo.activatedAt.eqz() || TimestampLib.current() < policyInfo.activatedAt) {
100
101
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
101
102
  }
102
103
 
103
104
  // check expiredAt represents a valid expiry time
104
- if (newExpiredAt >= policyInfo.expiredAt) {
105
+ if (newExpiredAt > policyInfo.expiredAt) {
105
106
  revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
106
107
  }
107
108
 
@@ -110,6 +111,7 @@ library PolicyServiceLib {
110
111
  }
111
112
  }
112
113
 
114
+
113
115
  function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
114
116
  external
115
117
  view
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PolicyService} from "./PolicyService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract PolicyServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with product service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  PolicyService svc = new PolicyService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _policyService = PolicyService(address(upgradeable));
27
+ _policyService = PolicyService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -36,13 +36,14 @@ contract PricingService is
36
36
  )
37
37
  internal
38
38
  virtual override
39
- onlyInitializing()
39
+ initializer()
40
40
  {
41
41
  (
42
- address authority
43
- ) = abi.decode(data, (address));
42
+ address authority,
43
+ address registry
44
+ ) = abi.decode(data, (address, address));
44
45
 
45
- __Service_init(authority, owner);
46
+ __Service_init(authority, registry, owner);
46
47
 
47
48
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
48
49
 
@@ -77,11 +78,11 @@ contract PricingService is
77
78
  // verify product
78
79
  (
79
80
  IRegistry.ObjectInfo memory registryInfo,
80
- IInstance instance
81
- ) = ContractLib.getInfoAndInstance(productNftId, getRelease(), false);
81
+ address instanceAddress
82
+ ) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
82
83
 
83
84
  // get instance reader from local instance variable
84
- reader = instance.getInstanceReader();
85
+ reader = IInstance(instanceAddress).getInstanceReader();
85
86
 
86
87
  NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
87
88
  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 {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PricingService} from "./PricingService.sol";
7
7
 
@@ -12,17 +12,19 @@ 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,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  PricingService pricingSrv = new PricingService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(pricingSrv),
22
24
  data,
23
25
  salt);
24
26
 
25
- _pricingService = PricingService(address(upgradeable));
27
+ _pricingService = PricingService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -134,6 +134,7 @@ abstract contract Product is
134
134
 
135
135
 
136
136
  function __Product_init(
137
+ address registry,
137
138
  NftId instanceNftId,
138
139
  string memory name,
139
140
  IComponents.ProductInfo memory productInfo,
@@ -146,6 +147,7 @@ abstract contract Product is
146
147
  onlyInitializing()
147
148
  {
148
149
  __InstanceLinkedComponent_init(
150
+ registry,
149
151
  instanceNftId,
150
152
  name,
151
153
  PRODUCT(),
@@ -26,14 +26,15 @@ contract RiskService is
26
26
  bytes memory data
27
27
  )
28
28
  internal
29
+ initializer
29
30
  virtual override
30
- onlyInitializing()
31
31
  {
32
32
  (
33
- address authority
34
- ) = abi.decode(data, (address));
33
+ address authority,
34
+ address registry
35
+ ) = abi.decode(data, (address, address));
35
36
 
36
- __Service_init(authority, owner);
37
+ __Service_init(authority, registry, owner);
37
38
  _registerInterface(type(IRiskService).interfaceId);
38
39
  }
39
40
 
@@ -48,7 +49,7 @@ contract RiskService is
48
49
  returns (RiskId riskId)
49
50
  {
50
51
  // checks
51
- (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
52
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
52
53
 
53
54
  // effects
54
55
  riskId = RiskIdLib.toRiskId(productNftId, id);
@@ -79,7 +80,7 @@ contract RiskService is
79
80
  restricted()
80
81
  {
81
82
  // checks
82
- (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
83
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
83
84
 
84
85
  // effects
85
86
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -106,7 +107,7 @@ contract RiskService is
106
107
  restricted()
107
108
  {
108
109
  // checks
109
- (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
110
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
110
111
 
111
112
  if (!instance.getRiskSet().hasRisk(productNftId, riskId)) {
112
113
  revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
@@ -118,10 +119,10 @@ contract RiskService is
118
119
 
119
120
  if (locked) {
120
121
  instance.getRiskSet().deactivate(riskId);
121
- emit LogRiskServiceRiskLocked(productNftId, riskId);
122
+ emit LogRiskServiceRiskLocked(productNftId, riskId, true);
122
123
  } else {
123
124
  instance.getRiskSet().activate(riskId);
124
- emit LogRiskServiceRiskUnlocked(productNftId, riskId);
125
+ emit LogRiskServiceRiskLocked(productNftId, riskId, false);
125
126
  }
126
127
  }
127
128
 
@@ -134,7 +135,7 @@ contract RiskService is
134
135
  restricted()
135
136
  {
136
137
  // checks
137
- (NftId productNftId, IInstance instance) = ContractLib.getAndVerifyProduct(getRelease());
138
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
138
139
  (bool exists, bool active) = instance.getRiskSet().checkRisk(productNftId, riskId);
139
140
 
140
141
  if (!exists) {
@@ -151,6 +152,37 @@ contract RiskService is
151
152
  emit LogRiskServiceRiskClosed(productNftId, riskId);
152
153
  }
153
154
 
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
+
154
186
  function _getDomain() internal pure override returns(ObjectType) {
155
187
  return RISK();
156
188
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {RiskService} from "./RiskService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract RiskServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with product service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  RiskService svc = new RiskService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _riskService = RiskService(address(upgradeable));
27
+ _riskService = RiskService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -8,10 +8,10 @@ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
8
8
 
9
9
  contract ChainNft is ERC721Enumerable {
10
10
 
11
- event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
11
+ event LogTokenInterceptorAddress(uint256 indexed tokenId, address indexed interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;