@etherisc/gif-next 3.0.0-ab0fcb2-112 → 3.0.0-bd6db59-832

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 (471) hide show
  1. package/README.md +1 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +10 -20
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
  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 +104 -166
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +160 -36
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +152 -173
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +108 -170
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +251 -389
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  66. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  70. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  72. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  74. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  76. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  80. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  83. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -77
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
  88. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -144
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +60 -36
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  102. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  103. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  104. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  105. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  106. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  108. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  109. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  110. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  111. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  112. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  116. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  118. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  123. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  128. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  154. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  166. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  195. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  196. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  201. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  202. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  204. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  206. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  208. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  214. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  216. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  220. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  222. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  224. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  226. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  228. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  229. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  236. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  237. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  240. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  242. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -96
  244. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  246. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
  248. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  250. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  253. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  255. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  257. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  264. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  275. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  332. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  333. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  334. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  336. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  338. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  356. package/contracts/accounting/AccountingService.sol +6 -5
  357. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  358. package/contracts/accounting/IAccountingService.sol +1 -1
  359. package/contracts/authorization/AccessAdmin.sol +44 -45
  360. package/contracts/authorization/AccessAdminLib.sol +27 -13
  361. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  362. package/contracts/authorization/Authorization.sol +2 -2
  363. package/contracts/authorization/IAccessAdmin.sol +3 -3
  364. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  365. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  366. package/contracts/distribution/BasicDistribution.sol +2 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  368. package/contracts/distribution/Distribution.sol +2 -0
  369. package/contracts/distribution/DistributionService.sol +20 -24
  370. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  371. package/contracts/examples/fire/FirePool.sol +4 -0
  372. package/contracts/examples/fire/FireProduct.sol +4 -0
  373. package/contracts/examples/flight/FlightLib.sol +41 -63
  374. package/contracts/examples/flight/FlightOracle.sol +8 -0
  375. package/contracts/examples/flight/FlightOracleAuthorization.sol +24 -5
  376. package/contracts/examples/flight/FlightPool.sol +4 -0
  377. package/contracts/examples/flight/FlightProduct.sol +162 -127
  378. package/contracts/examples/flight/FlightProductAuthorization.sol +32 -8
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  383. package/contracts/instance/Instance.sol +11 -7
  384. package/contracts/instance/InstanceAdmin.sol +17 -11
  385. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  386. package/contracts/instance/InstanceReader.sol +21 -15
  387. package/contracts/instance/InstanceService.sol +20 -18
  388. package/contracts/instance/InstanceServiceManager.sol +6 -4
  389. package/contracts/instance/base/Cloneable.sol +10 -4
  390. package/contracts/instance/base/ObjectSet.sol +2 -2
  391. package/contracts/oracle/BasicOracle.sol +2 -0
  392. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  393. package/contracts/oracle/IOracleService.sol +4 -0
  394. package/contracts/oracle/Oracle.sol +4 -3
  395. package/contracts/oracle/OracleService.sol +67 -37
  396. package/contracts/oracle/OracleServiceManager.sol +6 -4
  397. package/contracts/pool/BasicPool.sol +4 -2
  398. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  399. package/contracts/pool/BundleService.sol +19 -25
  400. package/contracts/pool/BundleServiceManager.sol +7 -5
  401. package/contracts/pool/IPoolService.sol +6 -5
  402. package/contracts/pool/Pool.sol +3 -1
  403. package/contracts/pool/PoolLib.sol +102 -5
  404. package/contracts/pool/PoolService.sol +101 -67
  405. package/contracts/pool/PoolServiceManager.sol +6 -4
  406. package/contracts/product/ApplicationService.sol +34 -13
  407. package/contracts/product/ApplicationServiceManager.sol +6 -4
  408. package/contracts/product/BasicProduct.sol +2 -0
  409. package/contracts/product/BasicProductAuthorization.sol +4 -5
  410. package/contracts/product/ClaimService.sol +34 -10
  411. package/contracts/product/ClaimServiceManager.sol +7 -5
  412. package/contracts/product/IPolicyService.sol +1 -0
  413. package/contracts/product/PolicyService.sol +57 -44
  414. package/contracts/product/PolicyServiceManager.sol +6 -4
  415. package/contracts/product/PricingService.sol +8 -7
  416. package/contracts/product/PricingServiceManager.sol +6 -4
  417. package/contracts/product/Product.sol +2 -0
  418. package/contracts/product/RiskService.sol +40 -8
  419. package/contracts/product/RiskServiceManager.sol +6 -4
  420. package/contracts/registry/IRegistry.sol +14 -20
  421. package/contracts/registry/IRegistryService.sol +14 -10
  422. package/contracts/registry/IRelease.sol +3 -0
  423. package/contracts/registry/Registry.sol +78 -124
  424. package/contracts/registry/RegistryAdmin.sol +29 -12
  425. package/contracts/registry/RegistryAuthorization.sol +3 -4
  426. package/contracts/registry/RegistryService.sol +82 -99
  427. package/contracts/registry/RegistryServiceManager.sol +11 -4
  428. package/contracts/registry/ReleaseAdmin.sol +23 -9
  429. package/contracts/registry/ReleaseRegistry.sol +74 -64
  430. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  431. package/contracts/registry/TokenRegistry.sol +15 -6
  432. package/contracts/shared/Component.sol +22 -27
  433. package/contracts/shared/ComponentService.sol +130 -45
  434. package/contracts/shared/ComponentServiceManager.sol +7 -5
  435. package/contracts/shared/ContractLib.sol +93 -359
  436. package/contracts/shared/IComponent.sol +3 -5
  437. package/contracts/shared/IComponentService.sol +14 -0
  438. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  439. package/contracts/shared/INftOwnable.sol +2 -0
  440. package/contracts/shared/IRegisterable.sol +3 -14
  441. package/contracts/shared/IRegistryLinked.sol +3 -1
  442. package/contracts/shared/IService.sol +2 -2
  443. package/contracts/shared/InstanceLinkedComponent.sol +64 -29
  444. package/contracts/shared/NftOwnable.sol +22 -9
  445. package/contracts/shared/PolicyHolder.sol +4 -2
  446. package/contracts/shared/Registerable.sol +20 -37
  447. package/contracts/shared/RegistryLinked.sol +23 -4
  448. package/contracts/shared/Service.sol +9 -8
  449. package/contracts/shared/TokenHandler.sol +1 -4
  450. package/contracts/staking/IStaking.sol +2 -2
  451. package/contracts/staking/Staking.sol +33 -28
  452. package/contracts/staking/StakingLib.sol +1 -3
  453. package/contracts/staking/StakingManager.sol +6 -3
  454. package/contracts/staking/StakingReader.sol +17 -9
  455. package/contracts/staking/StakingService.sol +13 -16
  456. package/contracts/staking/StakingServiceManager.sol +8 -4
  457. package/contracts/staking/StakingStore.sol +8 -8
  458. package/contracts/staking/TargetHandler.sol +5 -4
  459. package/contracts/type/Version.sol +16 -15
  460. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  461. package/contracts/upgradeability/ProxyManager.sol +54 -46
  462. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  463. package/package.json +1 -1
  464. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  465. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  466. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  467. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  468. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  469. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  470. package/contracts/shared/IVersionable.sol +0 -19
  471. package/contracts/shared/Versionable.sol +0 -47
@@ -34,6 +34,7 @@ contract SimpleProduct is
34
34
  IOracleService private _oracleService;
35
35
 
36
36
  constructor(
37
+ address registry,
37
38
  NftId instanceNftId,
38
39
  string memory name,
39
40
  IComponents.ProductInfo memory productInfo,
@@ -43,6 +44,7 @@ contract SimpleProduct is
43
44
  )
44
45
  {
45
46
  initialize(
47
+ registry,
46
48
  instanceNftId,
47
49
  name,
48
50
  productInfo,
@@ -53,6 +55,7 @@ contract SimpleProduct is
53
55
 
54
56
 
55
57
  function initialize(
58
+ address registry,
56
59
  NftId instanceNftid,
57
60
  string memory name,
58
61
  IComponents.ProductInfo memory productInfo,
@@ -65,6 +68,7 @@ contract SimpleProduct is
65
68
  initializer()
66
69
  {
67
70
  _initializeBasicProduct(
71
+ registry,
68
72
  instanceNftid,
69
73
  name,
70
74
  productInfo,
@@ -26,6 +26,8 @@ contract Instance is
26
26
  IInstance,
27
27
  Registerable
28
28
  {
29
+ bool private _initialized;
30
+
29
31
  IComponentService internal _componentService;
30
32
  IInstanceService internal _instanceService;
31
33
 
@@ -57,6 +59,8 @@ contract Instance is
57
59
 
58
60
  function initialize(
59
61
  InstanceContracts memory instanceContracts,
62
+ IRegistry registry,
63
+ VersionPart release,
60
64
  address initialOwner,
61
65
  bool tokenRegistryDisabled // only disable for testing
62
66
  )
@@ -70,9 +74,9 @@ contract Instance is
70
74
  _instanceAdmin = instanceContracts.instanceAdmin;
71
75
 
72
76
  // setup instance object info
73
- IRegistry registry = _getRegistry();
74
77
  __Registerable_init({
75
78
  authority: instanceContracts.instanceAdmin.authority(),
79
+ registry: address(registry),
76
80
  parentNftId: registry.getNftId(),
77
81
  objectType: INSTANCE(),
78
82
  isInterceptor: false,
@@ -89,19 +93,19 @@ contract Instance is
89
93
  // initialize instance supporting contracts
90
94
  _instanceStore.initialize();
91
95
  _productStore.initialize();
92
- _bundleSet.initialize(instanceContracts.instanceAdmin.authority());
93
- _riskSet.initialize(instanceContracts.instanceAdmin.authority());
96
+ _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
+ _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
94
98
  _instanceReader.initialize();
95
99
 
96
100
  _componentService = IComponentService(
97
- registry.getServiceAddress(
101
+ getRegistry().getServiceAddress(
98
102
  COMPONENT(),
99
- getRelease()));
103
+ release));
100
104
 
101
105
  _instanceService = IInstanceService(
102
- registry.getServiceAddress(
106
+ getRegistry().getServiceAddress(
103
107
  INSTANCE(),
104
- getRelease()));
108
+ release));
105
109
 
106
110
  _tokenRegistryDisabled = tokenRegistryDisabled;
107
111
 
@@ -11,10 +11,9 @@ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
11
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
12
  import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
13
  import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
15
14
  import {Str} from "../type/String.sol";
16
- import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
17
15
  import {VersionPart} from "../type/Version.sol";
16
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
18
17
 
19
18
 
20
19
  contract InstanceAdmin is
@@ -27,12 +26,13 @@ contract InstanceAdmin is
27
26
  error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
28
27
 
29
28
  IInstance internal _instance;
29
+ IRegistry internal _registry;
30
30
 
31
31
  uint64 internal _customRoleIdNext;
32
32
 
33
33
 
34
34
  modifier onlyInstanceService() {
35
- if (msg.sender != _getRegistry().getServiceAddress(INSTANCE(), getRelease())) {
35
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
36
36
  revert ErrorInstanceAdminNotInstanceService(msg.sender);
37
37
  }
38
38
  _;
@@ -43,8 +43,7 @@ contract InstanceAdmin is
43
43
  constructor(address accessManager) {
44
44
  initialize(
45
45
  accessManager,
46
- "MasterInstanceAdmin",
47
- GIF_INITIAL_RELEASE());
46
+ "MasterInstanceAdmin");
48
47
  }
49
48
 
50
49
 
@@ -52,23 +51,32 @@ contract InstanceAdmin is
52
51
  /// Important: Initialization of instance admin is only complete after calling this function.
53
52
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
54
53
  function completeSetup(
54
+ address registry,
55
55
  address authorization,
56
+ VersionPart release,
56
57
  address instance
57
58
  )
58
59
  external
60
+ reinitializer(uint64(release.toInt()))
59
61
  {
60
62
  // checks
61
- AccessAdminLib.checkIsRegistered(instance, INSTANCE(), getRelease());
63
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
62
64
 
63
65
  // effects
66
+ AccessManagerCloneable(
67
+ authority()).completeSetup(
68
+ registry,
69
+ release);
70
+
64
71
  AccessAdminLib.checkAuthorization(
65
72
  address(_authorization),
66
73
  authorization,
67
74
  INSTANCE(), // expectedDomain
68
- getRelease(), // expectedRelease
75
+ release, // expectedRelease
69
76
  false, // expectServiceAuthorization
70
77
  true); // checkAlreadyInitialized
71
78
 
79
+ _registry = IRegistry(registry);
72
80
  _instance = IInstance(instance);
73
81
  _authorization = IAuthorization(authorization);
74
82
  _customRoleIdNext = 0;
@@ -97,7 +105,7 @@ contract InstanceAdmin is
97
105
  for(uint256 i = 0; i < serviceDomains.length; i++) {
98
106
  ObjectType serviceDomain = serviceDomains[i];
99
107
  RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
100
- address service = _getRegistry().getServiceAddress(serviceDomain, getRelease());
108
+ address service = _registry.getServiceAddress(serviceDomain, getRelease());
101
109
 
102
110
  _grantRoleToAccount(
103
111
  serviceRoleId,
@@ -122,13 +130,11 @@ contract InstanceAdmin is
122
130
  _createTarget(target, name, TargetType.Instance, true);
123
131
  }
124
132
 
125
-
126
133
  /// @dev Initializes the authorization for the specified component.
127
134
  /// Important: The component MUST be registered.
128
135
  function initializeComponentAuthorization(
129
136
  address componentAddress,
130
- ObjectType expectedType,
131
- VersionPart expectedRelease
137
+ ObjectType expectedType
132
138
  )
133
139
  external
134
140
  restricted()
@@ -13,9 +13,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
13
13
  import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
14
14
  import {ProductStore} from "../instance/ProductStore.sol";
15
15
  import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
16
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
17
- import {RiskSet} from "../instance/RiskSet.sol";
18
- import {VersionPartLib} from "../type/Version.sol";
16
+ import {RiskSet} from "../instance/RiskSet.sol";
19
17
 
20
18
 
21
19
  contract InstanceAuthorizationV3
@@ -29,7 +27,7 @@ contract InstanceAuthorizationV3
29
27
  Authorization(
30
28
  INSTANCE_TARGET_NAME,
31
29
  INSTANCE(),
32
- GIF_INITIAL_RELEASE(),
30
+ 3,
33
31
  COMMIT_HASH,
34
32
  TargetType.Instance,
35
33
  false)
@@ -28,7 +28,6 @@ import {NftId} from "../type/NftId.sol";
28
28
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
29
  import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
30
  import {ProductStore} from "./ProductStore.sol";
31
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
32
31
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
33
32
  import {RequestId} from "../type/RequestId.sol";
34
33
  import {RiskId} from "../type/RiskId.sol";
@@ -41,19 +40,14 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
41
40
 
42
41
  /// @dev Central reader contract for a specific instance.
43
42
  /// Provides reading functions for all instance data and related component data.
44
- contract InstanceReader is
45
- RegistryLinked
46
- {
43
+ contract InstanceReader {
47
44
 
48
45
  error ErrorInstanceReaderAlreadyInitialized();
49
46
  error ErrorInstanceReaderInstanceAddressZero();
50
- // TODO make state immutable:
51
- // 1. instance receives reader through setInstanceReader()
52
- // 2. this way instance initialization is not depends on reader
53
- // 3. and reader is simple contract with constructor
54
- // 4. no _initialized in storage, the rest is immutable
47
+
55
48
  bool private _initialized = false;
56
49
 
50
+ IRegistry internal _registry;
57
51
  IInstance internal _instance;
58
52
  InstanceAdmin internal _instanceAdmin;
59
53
 
@@ -84,24 +78,27 @@ contract InstanceReader is
84
78
  _initialized = true;
85
79
  _instance = IInstance(instanceAddress);
86
80
  _instanceAdmin = _instance.getInstanceAdmin();
81
+ _registry = _instance.getRegistry();
87
82
 
88
83
  _store = _instance.getInstanceStore();
89
84
  _productStore = _instance.getProductStore();
90
85
  _bundleSet = _instance.getBundleSet();
91
86
  _riskSet = _instance.getRiskSet();
92
-
93
- _distributionService = IDistributionService(
94
- _getRegistry().getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
87
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
95
88
  }
96
89
 
97
90
 
98
91
  //--- instance functions ---------------------------------------------------------//
99
92
 
93
+ /// @dev Returns the registry this instance is registered in.
94
+ function getRegistry() public view returns (IRegistry registry) {
95
+ return _registry;
96
+ }
100
97
 
101
98
 
102
99
  /// @dev Returns the instance NFT ID.
103
100
  function getInstanceNftId() public view returns (NftId instanceNftid) {
104
- return _getRegistry().getNftIdForAddress(address(_instance));
101
+ return _registry.getNftIdForAddress(address(_instance));
105
102
  }
106
103
 
107
104
 
@@ -438,7 +435,7 @@ contract InstanceReader is
438
435
  return _store.getReferralInfo(referralId);
439
436
  }
440
437
 
441
- // TODO reader dependce on service os wrong?
438
+
442
439
  function getDiscountPercentage(ReferralId referralId)
443
440
  public
444
441
  view
@@ -447,7 +444,10 @@ contract InstanceReader is
447
444
  ReferralStatus status
448
445
  )
449
446
  {
450
- return _distributionService.getDiscountPercentage(
447
+ return IDistributionService(
448
+ _registry.getServiceAddress(
449
+ DISTRIBUTION(),
450
+ _instance.getRelease())).getDiscountPercentage(
451
451
  this, // instance reader
452
452
  referralId);
453
453
  }
@@ -466,6 +466,12 @@ contract InstanceReader is
466
466
  }
467
467
 
468
468
 
469
+ /// @dev Returns the role ID for the given index.
470
+ function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
471
+ return _instanceAdmin.getRoleForName(name);
472
+ }
473
+
474
+
469
475
  /// @dev Returns the role ID for the instance owner role.
470
476
  /// This role may be used as a "root" admin role for other custom roles defined for this instance.
471
477
  function getInstanceOwnerRole() public pure returns (RoleId roleId) {
@@ -175,7 +175,7 @@ contract InstanceService is
175
175
  IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
176
176
 
177
177
  emit LogInstanceServiceInstanceLocked(
178
- _getRegistry().getNftIdForAddress(instanceAddress),
178
+ getRegistry().getNftIdForAddress(instanceAddress),
179
179
  locked);
180
180
  }
181
181
 
@@ -204,11 +204,13 @@ contract InstanceService is
204
204
  // MUST be set after instance is set up and registered
205
205
  IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
206
206
  instanceAdmin.completeSetup(
207
+ address(getRegistry()),
207
208
  address(instanceAuthorization),
209
+ getRelease(),
208
210
  address(instance));
209
211
 
210
212
  // hard checks for newly cloned instance
211
- //assert(address(instance._getRegistry()) == address(_getRegistry()));// consider deleting this
213
+ assert(address(instance.getRegistry()) == address(getRegistry()));
212
214
  assert(instance.getRelease() == getRelease());
213
215
 
214
216
  // register cloned instance as staking target
@@ -229,7 +231,7 @@ contract InstanceService is
229
231
  restricted()
230
232
  onlyInstance()
231
233
  {
232
- NftId instanceNftId = _getRegistry().getNftIdForAddress(msg.sender);
234
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
233
235
  _stakingService.setInstanceLockingPeriod(
234
236
  instanceNftId,
235
237
  stakeLockingPeriod);
@@ -242,7 +244,7 @@ contract InstanceService is
242
244
  restricted()
243
245
  onlyInstance()
244
246
  {
245
- NftId instanceNftId = _getRegistry().getNftIdForAddress(msg.sender);
247
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
246
248
  _stakingService.setInstanceRewardRate(
247
249
  instanceNftId,
248
250
  rewardRate);
@@ -254,7 +256,7 @@ contract InstanceService is
254
256
  restricted()
255
257
  onlyInstance()
256
258
  {
257
- NftId instanceNftId = _getRegistry().getNftIdForAddress(msg.sender);
259
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
258
260
  _stakingService.setInstanceMaxStakedAmount(
259
261
  instanceNftId,
260
262
  maxStakedAmount);
@@ -268,7 +270,7 @@ contract InstanceService is
268
270
  onlyInstance()
269
271
  returns (Amount newBalance)
270
272
  {
271
- NftId instanceNftId = _getRegistry().getNftIdForAddress(msg.sender);
273
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
272
274
  newBalance = _stakingService.refillInstanceRewardReserves(
273
275
  instanceNftId,
274
276
  rewardProvider,
@@ -283,7 +285,7 @@ contract InstanceService is
283
285
  onlyInstance()
284
286
  returns (Amount newBalance)
285
287
  {
286
- NftId instanceNftId = _getRegistry().getNftIdForAddress(msg.sender);
288
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
287
289
  newBalance = _stakingService.withdrawInstanceRewardReserves(
288
290
  instanceNftId,
289
291
  dipAmount);
@@ -306,7 +308,7 @@ contract InstanceService is
306
308
  instance.setInstanceReader(upgradedInstanceReaderClone);
307
309
 
308
310
  emit LogInstanceServiceInstanceReaderUpgraded(
309
- _getRegistry().getNftIdForAddress(instanceAddress),
311
+ getRegistry().getNftIdForAddress(instanceAddress),
310
312
  address(upgradedInstanceReaderClone));
311
313
  }
312
314
 
@@ -347,7 +349,6 @@ contract InstanceService is
347
349
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
348
350
  if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
349
351
 
350
- // TODO check instance cluster release
351
352
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
352
353
  if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
353
354
  if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
@@ -390,7 +391,7 @@ contract InstanceService is
390
391
  _masterInstanceReader = instanceReaderAddress;
391
392
 
392
393
  emit LogInstanceServiceMasterInstanceReaderUpgraded(
393
- _getRegistry().getNftIdForAddress(_masterInstance),
394
+ getRegistry().getNftIdForAddress(_masterInstance),
394
395
  instanceReaderAddress);
395
396
  }
396
397
 
@@ -418,8 +419,7 @@ contract InstanceService is
418
419
 
419
420
  clonedAdmin.initialize(
420
421
  address(clonedAccessManager),
421
- "InstanceAdmin",
422
- getRelease());
422
+ "InstanceAdmin");
423
423
  }
424
424
 
425
425
 
@@ -445,6 +445,8 @@ contract InstanceService is
445
445
  riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
446
446
  instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
447
447
  }),
448
+ getRegistry(),
449
+ getRelease(),
448
450
  instanceOwner,
449
451
  allowAnyToken);
450
452
 
@@ -459,13 +461,14 @@ contract InstanceService is
459
461
  )
460
462
  internal
461
463
  virtual override
462
- onlyInitializing()
464
+ initializer()
463
465
  {
464
466
  (
465
- address authority
466
- ) = abi.decode(data, (address));
467
+ address authority,
468
+ address registry
469
+ ) = abi.decode(data, (address, address));
467
470
 
468
- __Service_init(authority, owner);
471
+ __Service_init(authority, registry, owner);
469
472
 
470
473
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
471
474
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
@@ -483,8 +486,7 @@ contract InstanceService is
483
486
  virtual
484
487
  view
485
488
  {
486
- // TODO use ContractLib to verify registration, type and release
487
- IRegistry registry = _getRegistry();
489
+ IRegistry registry = getRegistry();
488
490
 
489
491
  NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
490
492
  if (instanceNftId.eqz()) {
@@ -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 {InstanceService} from "./InstanceService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract InstanceServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with instance service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  InstanceService svc = new InstanceService{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
- _instanceService = InstanceService(address(upgradeable));
27
+ _instanceService = InstanceService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -4,19 +4,25 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
6
  import {IRegistry} from "../../registry/IRegistry.sol";
7
- import {RegistryLinked} from "../../shared/RegistryLinked.sol";
8
7
 
9
8
  abstract contract Cloneable is
10
- AccessManagedUpgradeable,
11
- RegistryLinked
9
+ AccessManagedUpgradeable
12
10
  {
11
+ IRegistry internal _registry;
12
+
13
13
  /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
14
14
  function __Cloneable_init(
15
- address authority
15
+ address authority,
16
+ address registry
16
17
  )
17
18
  internal
18
19
  onlyInitializing
19
20
  {
20
21
  __AccessManaged_init(authority);
22
+ _registry = IRegistry(registry);
23
+ }
24
+
25
+ function getRegistry() external view returns (IRegistry) {
26
+ return _registry;
21
27
  }
22
28
  }
@@ -21,12 +21,12 @@ contract ObjectSet is
21
21
  address internal _instanceAddress;
22
22
 
23
23
  /// @dev This initializer needs to be called from the instance itself.
24
- function initialize(address authority)
24
+ function initialize(address authority, address registry)
25
25
  external
26
26
  initializer()
27
27
  {
28
28
  _instanceAddress = msg.sender;
29
- __Cloneable_init(authority);
29
+ __Cloneable_init(authority, registry);
30
30
 
31
31
  emit LogObjectSetInitialized(address(_instanceAddress));
32
32
  }
@@ -23,6 +23,7 @@ contract BasicOracle is
23
23
  }
24
24
 
25
25
  function _initializeBasicOracle(
26
+ address registry,
26
27
  NftId instanceNftId,
27
28
  IAuthorization authorization,
28
29
  address initialOwner,
@@ -34,6 +35,7 @@ contract BasicOracle is
34
35
  {
35
36
 
36
37
  __Oracle_init(
38
+ registry,
37
39
  instanceNftId,
38
40
  authorization,
39
41
  initialOwner,
@@ -8,8 +8,6 @@ import {IAccess} from "../authorization/IAccess.sol";
8
8
  import {IOracle} from "./IOracle.sol";
9
9
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
10
  import {RoleId} from "../type/RoleId.sol";
11
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
12
- import {VersionPartLib} from "../type/Version.sol";
13
11
 
14
12
 
15
13
  contract BasicOracleAuthorization
@@ -23,7 +21,7 @@ contract BasicOracleAuthorization
23
21
  Authorization(
24
22
  componentName,
25
23
  ORACLE(),
26
- GIF_INITIAL_RELEASE(),
24
+ 3,
27
25
  commitHash,
28
26
  TargetType.Component,
29
27
  false)
@@ -18,9 +18,13 @@ interface IOracleService is IService {
18
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
19
19
 
20
20
  // create request
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
25
+ // respond
26
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
27
+
24
28
  // get request info
25
29
  error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
26
30
  error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
@@ -5,11 +5,10 @@ import {Amount} from "../type/Amount.sol";
5
5
  import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
- import {IComponent} from "../shared/IComponent.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
9
  import {IOracleComponent} from "./IOracleComponent.sol";
10
10
  import {IOracleService} from "./IOracleService.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
- import {Component} from "../shared/Component.sol";
13
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
14
13
  import {RequestId} from "../type/RequestId.sol";
15
14
  import {Timestamp} from "../type/Timestamp.sol";
@@ -67,7 +66,7 @@ abstract contract Oracle is
67
66
  function withdrawFees(Amount amount)
68
67
  external
69
68
  virtual
70
- override(IComponent, Component)
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
71
70
  onlyOwner()
72
71
  restricted()
73
72
  returns (Amount)
@@ -77,6 +76,7 @@ abstract contract Oracle is
77
76
 
78
77
 
79
78
  function __Oracle_init(
79
+ address registry,
80
80
  NftId productNftId,
81
81
  IAuthorization authorization,
82
82
  address initialOwner,
@@ -87,6 +87,7 @@ abstract contract Oracle is
87
87
  onlyInitializing()
88
88
  {
89
89
  __InstanceLinkedComponent_init(
90
+ registry,
90
91
  productNftId,
91
92
  name,
92
93
  ORACLE(),