@etherisc/gif-next 3.0.0-61b9ecf-774 → 3.0.0-6580d8b-637

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 (449) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +44 -48
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +119 -119
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  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 +75 -63
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +20 -114
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +2 -96
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +187 -114
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -75
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +2 -96
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +113 -40
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +21 -96
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +49 -129
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +231 -66
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +131 -132
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +23 -98
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +379 -753
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +28 -122
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +91 -83
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +29 -104
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -100
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +59 -72
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +34 -21
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -9
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -33
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -197
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +160 -34
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +151 -36
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +41 -41
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +141 -91
  113. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  114. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +66 -79
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -3
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
  128. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  133. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +85 -77
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  139. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +67 -59
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +19 -13
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +71 -63
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +57 -51
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +50 -50
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +4 -79
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +90 -85
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -62
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -27
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +4 -79
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +55 -43
  164. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  165. package/artifacts/contracts/pool/Pool.sol/Pool.json +4 -79
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +113 -101
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -63
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -44
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +86 -80
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -67
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +24 -18
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +21 -9
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +15 -28
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +81 -69
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +60 -60
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +51 -51
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  207. package/artifacts/contracts/product/Product.sol/Product.json +2 -77
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.json +37 -50
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -42
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +30 -24
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  220. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/Registry.sol/Registry.json +132 -66
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -188
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -37
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +205 -205
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +122 -119
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  239. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +20 -20
  240. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +329 -113
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +61 -61
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  250. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +2 -77
  253. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
  255. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +271 -55
  257. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -2
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +2 -2
  265. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.json +2 -2
  268. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  270. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
  272. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  274. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -4
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  278. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  282. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  283. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Service.sol/Service.json +2 -2
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  292. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +91 -147
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +15 -221
  295. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  296. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  297. package/artifacts/contracts/staking/Staking.sol/Staking.json +139 -195
  298. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  300. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +53 -53
  302. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  304. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +35 -241
  306. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +40 -40
  308. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +220 -220
  310. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  311. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +9 -14
  312. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  313. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  314. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  316. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  318. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  320. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  322. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  324. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  326. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  328. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  330. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  331. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  332. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  334. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  335. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  336. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  338. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  340. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  342. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  344. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  345. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  346. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  348. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  350. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  352. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  354. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  356. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  358. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  360. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  362. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  364. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  366. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  368. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  369. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  370. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -22
  371. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  372. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  373. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  374. package/contracts/accounting/AccountingService.sol +17 -29
  375. package/contracts/accounting/IAccountingService.sol +7 -8
  376. package/contracts/authorization/AccessAdmin.sol +16 -33
  377. package/contracts/authorization/AccessAdminLib.sol +18 -1
  378. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  379. package/contracts/authorization/IAccessAdmin.sol +9 -8
  380. package/contracts/distribution/DistributionService.sol +24 -19
  381. package/contracts/distribution/IDistributionComponent.sol +0 -2
  382. package/contracts/distribution/IDistributionService.sol +8 -7
  383. package/contracts/examples/flight/FlightLib.sol +85 -74
  384. package/contracts/examples/flight/FlightNft.sol +234 -0
  385. package/contracts/examples/flight/FlightOracle.sol +20 -62
  386. package/contracts/examples/flight/FlightOracleAuthorization.sol +27 -5
  387. package/contracts/examples/flight/FlightPool.sol +1 -1
  388. package/contracts/examples/flight/FlightProduct.sol +254 -242
  389. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  390. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  391. package/contracts/instance/BaseStore.sol +4 -0
  392. package/contracts/instance/BundleSet.sol +7 -8
  393. package/contracts/instance/IBaseStore.sol +8 -0
  394. package/contracts/instance/IInstance.sol +10 -7
  395. package/contracts/instance/IInstanceService.sol +11 -4
  396. package/contracts/instance/Instance.sol +8 -0
  397. package/contracts/instance/InstanceAdmin.sol +2 -2
  398. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  399. package/contracts/instance/InstanceReader.sol +34 -5
  400. package/contracts/instance/InstanceService.sol +68 -36
  401. package/contracts/instance/InstanceStore.sol +14 -14
  402. package/contracts/instance/ProductStore.sol +14 -14
  403. package/contracts/instance/RequestSet.sol +63 -0
  404. package/contracts/instance/RiskSet.sol +6 -7
  405. package/contracts/instance/TargetNames.sol +1 -0
  406. package/contracts/instance/base/BalanceStore.sol +7 -7
  407. package/contracts/instance/base/ObjectSet.sol +9 -1
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  409. package/contracts/oracle/BasicOracle.sol +1 -0
  410. package/contracts/oracle/IOracleComponent.sol +10 -0
  411. package/contracts/oracle/IOracleService.sol +5 -5
  412. package/contracts/oracle/Oracle.sol +50 -26
  413. package/contracts/oracle/OracleService.sol +26 -23
  414. package/contracts/pool/BundleService.sol +3 -3
  415. package/contracts/pool/IBundleService.sol +9 -10
  416. package/contracts/pool/IPoolComponent.sol +1 -1
  417. package/contracts/pool/IPoolService.sol +14 -14
  418. package/contracts/pool/PoolService.sol +2 -2
  419. package/contracts/product/ClaimService.sol +1 -1
  420. package/contracts/product/IApplicationService.sol +8 -8
  421. package/contracts/product/IClaimService.sol +9 -9
  422. package/contracts/product/IPolicyService.sol +7 -7
  423. package/contracts/product/IRiskService.sol +4 -5
  424. package/contracts/product/PolicyService.sol +1 -1
  425. package/contracts/product/PolicyServiceLib.sol +5 -3
  426. package/contracts/product/RiskService.sol +2 -2
  427. package/contracts/registry/ChainNft.sol +10 -9
  428. package/contracts/registry/IRegistry.sol +11 -10
  429. package/contracts/registry/Registry.sol +16 -13
  430. package/contracts/registry/RegistryAdmin.sol +7 -1
  431. package/contracts/registry/RegistryAuthorization.sol +0 -2
  432. package/contracts/registry/ReleaseAdmin.sol +12 -5
  433. package/contracts/registry/ReleaseRegistry.sol +7 -8
  434. package/contracts/registry/TokenRegistry.sol +3 -3
  435. package/contracts/shared/ComponentService.sol +38 -4
  436. package/contracts/shared/IComponent.sol +0 -4
  437. package/contracts/shared/IComponentService.sol +31 -9
  438. package/contracts/shared/INftOwnable.sol +1 -1
  439. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  440. package/contracts/shared/TokenHandler.sol +5 -5
  441. package/contracts/staking/IStaking.sol +33 -31
  442. package/contracts/staking/IStakingService.sol +7 -16
  443. package/contracts/staking/Staking.sol +5 -4
  444. package/contracts/staking/StakingService.sol +2 -3
  445. package/contracts/staking/StakingStore.sol +3 -3
  446. package/contracts/staking/TargetHandler.sol +2 -2
  447. package/contracts/type/RequestId.sol +6 -0
  448. package/contracts/upgradeability/ProxyManager.sol +2 -2
  449. package/package.json +3 -3
@@ -3,19 +3,42 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "../../../contracts/authorization/IAccess.sol";
5
5
 
6
+ import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
6
7
  import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
7
8
  import {FlightProduct} from "./FlightProduct.sol";
8
9
  import {ORACLE} from "../../../contracts/type/ObjectType.sol";
9
- import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+ import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
11
 
11
12
 
12
13
  contract FlightProductAuthorization
13
14
  is BasicProductAuthorization
14
15
  {
15
16
 
16
- constructor(string memory poolName)
17
- BasicProductAuthorization(poolName)
18
- {}
17
+ uint64 public constant STATISTICS_PROVIDER_ROLE_IDX = 1; // 1st custom role for flight product
18
+ string public constant STATISTICS_PROVIDER_ROLE_NAME = "StatisticsProviderRole";
19
+ RoleId public STATISTICS_PROVIDER_ROLE;
20
+
21
+
22
+ constructor(string memory productName)
23
+ BasicProductAuthorization(productName)
24
+ { }
25
+
26
+
27
+ function _setupRoles()
28
+ internal
29
+ override
30
+ {
31
+ STATISTICS_PROVIDER_ROLE = AccessAdminLib.getCustomRoleId(STATISTICS_PROVIDER_ROLE_IDX);
32
+
33
+ _addRole(
34
+ STATISTICS_PROVIDER_ROLE,
35
+ AccessAdminLib.roleInfo(
36
+ ADMIN_ROLE(),
37
+ TargetType.Custom,
38
+ 1, // max member count special case: instance nft owner is sole role owner
39
+ STATISTICS_PROVIDER_ROLE_NAME));
40
+ }
41
+
19
42
 
20
43
  function _setupTargetAuthorizations()
21
44
  internal
@@ -28,14 +51,16 @@ contract FlightProductAuthorization
28
51
  functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
52
  _authorize(functions, FlightProduct.flightStatusCallback.selector, "flightStatusCallback");
30
53
 
31
- // authorize public role (open access to any account, only allows to lock target)
32
- functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
33
- _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
54
+ // authorize statistics provider role
55
+ functions = _authorizeForTarget(getMainTargetName(), STATISTICS_PROVIDER_ROLE);
34
56
  _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
35
57
 
36
- // TODO: only owner
37
- _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
38
- _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
58
+ // authorize public role (additional authz via onlyOwner)
59
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
60
+ _authorize(functions, FlightProduct.resendResponse.selector, "resendResponse");
61
+ _authorize(functions, FlightProduct.processPayoutsAndClosePolicies.selector, "processPayoutsAndClosePolicies");
62
+ _authorize(functions, FlightProduct.setConstants.selector, "setConstants");
63
+ _authorize(functions, FlightProduct.setTestMode.selector, "setTestMode");
39
64
  _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
40
65
  _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
41
66
  _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {IVersionable} from "../../upgradeability/IVersionable.sol";
6
+
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {ProxyManager} from "../../upgradeability/ProxyManager.sol";
9
+ import {FlightProduct} from "./FlightProduct.sol";
10
+
11
+
12
+ contract FlightProductManager is ProxyManager {
13
+
14
+ FlightProduct private _flightProduct;
15
+ bytes32 private _salt = "0x1234";
16
+
17
+ /// @dev initializes proxy manager with flight product implementation
18
+ constructor(
19
+ address registry,
20
+ NftId instanceNftId,
21
+ string memory componentName,
22
+ IAuthorization authorization
23
+ )
24
+ {
25
+ // FlightProduct prd = new FlightProduct{salt: _salt}();
26
+ // bytes memory data = abi.encode(
27
+ // registry,
28
+ // instanceNftId,
29
+ // componentName,
30
+ // authorization);
31
+
32
+ // IVersionable versionable = initialize(
33
+ // registry,
34
+ // address(prd),
35
+ // data,
36
+ // _salt);
37
+
38
+ // _flightProduct = FlightProduct(address(versionable));
39
+ }
40
+
41
+ //--- view functions ----------------------------------------------------//
42
+ function getFlightProduct()
43
+ external
44
+ view
45
+ returns (FlightProduct flightProduct)
46
+ {
47
+ return _flightProduct;
48
+ }
49
+ }
@@ -42,6 +42,8 @@ abstract contract BaseStore is
42
42
  metadata.objectType = objectType;
43
43
  metadata.state = initialState;
44
44
  metadata.updatedIn = blocknumber;
45
+
46
+ emit LogBaseStoreMetadataCreated(key32, objectType, initialState);
45
47
  }
46
48
 
47
49
  function _updateState(
@@ -73,6 +75,8 @@ abstract contract BaseStore is
73
75
 
74
76
  // update metadata
75
77
  metadata.updatedIn = BlocknumberLib.current();
78
+
79
+ emit LogBaseStoreMetadataUpdated(key32, oldState, state);
76
80
  }
77
81
 
78
82
  function exists(Key32 key32) public view returns (bool) {
@@ -14,13 +14,12 @@ contract BundleSet is
14
14
  {
15
15
  using LibNftIdSet for LibNftIdSet.Set;
16
16
 
17
- event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
- event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
17
+ event LogBundleSetPolicyLinked(NftId indexed bundleNftId, NftId indexed policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId indexed bundleNftId, NftId indexed policyNftId);
19
19
 
20
- event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
- event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
- event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
- event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
20
+ event LogBundleSetBundleAdded(NftId indexed poolNftId, NftId indexed bundleNftId);
21
+ event LogBundleSetBundleLocked(NftId indexed poolNftId, NftId indexed bundleNftId, bool locked);
22
+ event LogBundleSetBundleClosed(NftId indexed poolNftId, NftId indexed bundleNftId);
24
23
 
25
24
  error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
25
  error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
@@ -76,14 +75,14 @@ contract BundleSet is
76
75
  function unlock(NftId bundleNftId) external restricted() {
77
76
  NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
77
  _activate(poolNftId, _toBundleKey32(bundleNftId));
79
- emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
78
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId, false);
80
79
  }
81
80
 
82
81
  /// @dev locked (deactivated) bundles may not collateralize any new policies
83
82
  function lock(NftId bundleNftId) external restricted() {
84
83
  NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
84
  _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
- emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
85
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId, true);
87
86
  }
88
87
 
89
88
 
@@ -17,6 +17,14 @@ interface IBaseStore is ILifecycle {
17
17
  error ErrorBaseStoreStateZero(Key32 key);
18
18
  error ErrorBaseStoreNotExisting(Key32 key);
19
19
 
20
+ event LogBaseStoreMetadataCreated(
21
+ Key32 indexed key,
22
+ ObjectType indexed objectType,
23
+ StateId indexed state);
24
+ event LogBaseStoreMetadataUpdated(
25
+ Key32 indexed key,
26
+ StateId indexed oldState,
27
+ StateId indexed newState);
20
28
 
21
29
  struct Metadata {
22
30
  // slot 0
@@ -12,6 +12,7 @@ import {InstanceReader} from "./InstanceReader.sol";
12
12
  import {InstanceStore} from "./InstanceStore.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
14
  import {ProductStore} from "./ProductStore.sol";
15
+ import {RequestSet} from "./RequestSet.sol";
15
16
  import {RoleId} from "../type/RoleId.sol";
16
17
  import {Seconds} from "../type/Seconds.sol";
17
18
  import {UFixed} from "../type/UFixed.sol";
@@ -21,15 +22,15 @@ interface IInstance is
21
22
  IRegisterable
22
23
  {
23
24
  // role handling
24
- event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
25
- event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
26
- event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
27
- event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
25
+ event LogInstanceCustomRoleCreated(RoleId indexed roleId, string indexed roleName, RoleId indexed adminRoleId, uint32 maxMemberCount);
26
+ event LogInstanceCustomRoleActiveSet(RoleId indexed roleId, bool indexed active, address indexed caller);
27
+ event LogInstanceCustomRoleGranted(RoleId indexed roleId, address indexed account, address indexed caller);
28
+ event LogInstanceCustomRoleRevoked(RoleId indexed roleId, address indexed account, address indexed caller);
28
29
 
29
30
  // target handling
30
- event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
31
- event LogInstanceTargetLocked(address target, bool locked);
32
- event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
31
+ event LogInstanceCustomTargetCreated(address indexed target, RoleId indexed targetRoleId, string indexed name);
32
+ event LogInstanceTargetLocked(address indexed target, bool indexed locked);
33
+ event LogInstanceCustomTargetFunctionRoleSet(address indexed target, bytes4[] selectors, RoleId indexed roleId);
33
34
 
34
35
  // modifier is onlyRoleAdmin
35
36
  error ErrorInstanceNotCustomRole(RoleId roleId);
@@ -58,6 +59,7 @@ interface IInstance is
58
59
  ProductStore productStore;
59
60
  BundleSet bundleSet;
60
61
  RiskSet riskSet;
62
+ RequestSet requestSet;
61
63
  InstanceReader instanceReader;
62
64
  }
63
65
 
@@ -149,6 +151,7 @@ interface IInstance is
149
151
  function getInstanceReader() external view returns (InstanceReader);
150
152
  function getBundleSet() external view returns (BundleSet);
151
153
  function getRiskSet() external view returns (RiskSet);
154
+ function getRequestSet() external view returns (RequestSet);
152
155
  function getInstanceAdmin() external view returns (InstanceAdmin);
153
156
  function getInstanceStore() external view returns (InstanceStore);
154
157
  function getProductStore() external view returns (ProductStore);
@@ -26,6 +26,7 @@ interface IInstanceService is IService {
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
27
  error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
28
  error ErrorInstanceServiceMasterRiskSetAlreadySet();
29
+ error ErrorInstanceServiceMasterRequestSetAlreadySet();
29
30
  error ErrorInstanceServiceInstanceAddressZero();
30
31
 
31
32
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -38,15 +39,18 @@ interface IInstanceService is IService {
38
39
  error ErrorInstanceServiceInstanceReaderZero();
39
40
  error ErrorInstanceServiceBundleSetZero();
40
41
  error ErrorInstanceServiceRiskSetZero();
42
+ error ErrorInstanceServiceRequestSetZero();
41
43
  error ErrorInstanceServiceInstanceStoreZero();
42
44
  error ErrorInstanceServiceProductStoreZero();
43
45
 
44
46
  error ErrorInstanceServiceInstanceAuthorityMismatch();
45
47
  error ErrorInstanceServiceBundleSetAuthorityMismatch();
46
48
  error ErrorInstanceServiceRiskSetAuthorityMismatch();
49
+ error ErrorInstanceServiceRequestSetAuthorityMismatch();
47
50
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
48
51
  error ErrorInstanceServiceBundleSetInstanceMismatch();
49
52
  error ErrorInstanceServiceRiskSetInstanceMismatch();
53
+ error ErrorInstanceServiceRequestSetInstanceMismatch();
50
54
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
51
55
  error ErrorInstanceServiceProductStoreAuthorityMismatch();
52
56
 
@@ -56,10 +60,13 @@ interface IInstanceService is IService {
56
60
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
57
61
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
58
62
 
59
- event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
60
- event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
61
- event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
62
- event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
63
+
64
+ event LogInstanceServiceInstanceLocked(NftId indexed instanceNftId, bool indexed locked);
65
+ event LogInstanceServiceInstanceCreated(NftId indexed instanceNftId, address indexed instance);
66
+ event LogInstanceServiceMasterInstanceRegistered(NftId indexed masterInstanceNftId, address indexed masterInstance, address indexed masterInstanceAdmin, address masterAccessManager,
67
+ address masterInstanceReader, address masterInstanceBundleSet, address masterInstanceRiskSet, address masterInstanceRequestSet, address masterInstanceStore, address masterProductStore);
68
+ event LogInstanceServiceMasterInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
69
+ event LogInstanceServiceInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
63
70
 
64
71
  /// @dev Creates a new custom role for the calling instance.
65
72
  function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
@@ -17,6 +17,7 @@ import {InstanceStore} from "./InstanceStore.sol";
17
17
  import {NftId} from "../type/NftId.sol";
18
18
  import {ProductStore} from "./ProductStore.sol";
19
19
  import {Registerable} from "../shared/Registerable.sol";
20
+ import {RequestSet} from "./RequestSet.sol";
20
21
  import {RoleId} from "../type/RoleId.sol";
21
22
  import {Seconds} from "../type/Seconds.sol";
22
23
  import {UFixed} from "../type/UFixed.sol";
@@ -35,6 +36,7 @@ contract Instance is
35
36
  InstanceReader internal _instanceReader;
36
37
  BundleSet internal _bundleSet;
37
38
  RiskSet internal _riskSet;
39
+ RequestSet internal _requestSet;
38
40
  InstanceStore internal _instanceStore;
39
41
  ProductStore internal _productStore;
40
42
  NftId [] internal _products;
@@ -88,6 +90,7 @@ contract Instance is
88
90
  _productStore = instanceContracts.productStore;
89
91
  _bundleSet = instanceContracts.bundleSet;
90
92
  _riskSet = instanceContracts.riskSet;
93
+ _requestSet = instanceContracts.requestSet;
91
94
  _instanceReader = instanceContracts.instanceReader;
92
95
 
93
96
  // initialize instance supporting contracts
@@ -95,6 +98,7 @@ contract Instance is
95
98
  _productStore.initialize();
96
99
  _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
100
  _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
101
+ _requestSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
98
102
  _instanceReader.initialize();
99
103
 
100
104
  _componentService = IComponentService(
@@ -333,6 +337,10 @@ contract Instance is
333
337
  return _riskSet;
334
338
  }
335
339
 
340
+ function getRequestSet() external view returns (RequestSet) {
341
+ return _requestSet;
342
+ }
343
+
336
344
  function getInstanceAdmin() external view returns (InstanceAdmin) {
337
345
  return _instanceAdmin;
338
346
  }
@@ -13,7 +13,7 @@ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
13
  import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
14
  import {Str} from "../type/String.sol";
15
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";
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, REQUEST_SET_TARGET_NAME} from "./TargetNames.sol";
17
17
 
18
18
 
19
19
  contract InstanceAdmin is
@@ -123,6 +123,7 @@ contract InstanceAdmin is
123
123
  _createInstanceTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME);
124
124
  _createInstanceTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
125
125
  _createInstanceTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
126
+ _createInstanceTarget(address(_instance.getRequestSet()), REQUEST_SET_TARGET_NAME);
126
127
  }
127
128
 
128
129
 
@@ -130,7 +131,6 @@ contract InstanceAdmin is
130
131
  _createTarget(target, name, TargetType.Instance, true);
131
132
  }
132
133
 
133
-
134
134
  /// @dev Initializes the authorization for the specified component.
135
135
  /// Important: The component MUST be registered.
136
136
  function initializeComponentAuthorization(
@@ -10,9 +10,10 @@ import {ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION
10
10
  import {BundleSet} from "../instance/BundleSet.sol";
11
11
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
12
12
  import {InstanceStore} from "../instance/InstanceStore.sol";
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";
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, REQUEST_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 {RequestSet} from "../instance/RequestSet.sol";
16
17
  import {RiskSet} from "../instance/RiskSet.sol";
17
18
 
18
19
 
@@ -71,6 +72,7 @@ contract InstanceAuthorizationV3
71
72
  _addInstanceTarget(PRODUCT_STORE_TARGET_NAME);
72
73
  _addInstanceTarget(BUNDLE_SET_TARGET_NAME);
73
74
  _addInstanceTarget(RISK_SET_TARGET_NAME);
75
+ _addInstanceTarget(REQUEST_SET_TARGET_NAME);
74
76
  }
75
77
 
76
78
 
@@ -84,6 +86,18 @@ contract InstanceAuthorizationV3
84
86
  _setupProductStoreAuthorization();
85
87
  _setupBundleSetAuthorization();
86
88
  _setUpRiskSetAuthorization();
89
+ _setUpRequestIdSetAuthorization();
90
+ }
91
+
92
+ function _setUpRequestIdSetAuthorization()
93
+ internal
94
+ {
95
+ IAccess.FunctionInfo[] storage functions;
96
+
97
+ // authorize oracle service role
98
+ functions = _authorizeForTarget(REQUEST_SET_TARGET_NAME, getServiceRole(ORACLE()));
99
+ _authorize(functions, RequestSet.add.selector, "add");
100
+ _authorize(functions, RequestSet.remove.selector, "remove");
87
101
  }
88
102
 
89
103
 
@@ -30,10 +30,12 @@ import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
30
  import {ProductStore} from "./ProductStore.sol";
31
31
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
32
32
  import {RequestId} from "../type/RequestId.sol";
33
+ import {RequestSet} from "./RequestSet.sol";
33
34
  import {RiskId} from "../type/RiskId.sol";
34
35
  import {RiskSet} from "./RiskSet.sol";
35
36
  import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
36
37
  import {StateId} from "../type/StateId.sol";
38
+ import {Str, StrLib} from "../type/String.sol";
37
39
  import {TokenHandler} from "../shared/TokenHandler.sol";
38
40
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
39
41
 
@@ -55,6 +57,7 @@ contract InstanceReader {
55
57
  ProductStore internal _productStore;
56
58
  BundleSet internal _bundleSet;
57
59
  RiskSet internal _riskSet;
60
+ RequestSet internal _requestSet;
58
61
  IDistributionService internal _distributionService;
59
62
 
60
63
  /// @dev This initializer needs to be called from the instance itself.
@@ -84,6 +87,7 @@ contract InstanceReader {
84
87
  _productStore = _instance.getProductStore();
85
88
  _bundleSet = _instance.getBundleSet();
86
89
  _riskSet = _instance.getRiskSet();
90
+ _requestSet = _instance.getRequestSet();
87
91
  _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
88
92
  }
89
93
 
@@ -163,7 +167,9 @@ contract InstanceReader {
163
167
 
164
168
 
165
169
  /// @dev Returns the currently locked amount for the given NFT ID.
166
- /// The target NFT ID may reference a pool or a bundle.
170
+ /// Locked amounts are only tracked for bundles, not for pool. To get the
171
+ /// pool locked amount, then locked amounts of the bundles contained in the
172
+ /// pool must be summed up. The target NFT ID may only a bundle.
167
173
  function getLockedAmount(NftId targetNftId) external view returns (Amount) {
168
174
  return _store.getLockedAmount(targetNftId);
169
175
  }
@@ -363,6 +369,18 @@ contract InstanceReader {
363
369
  return getState(requestId.toKey32());
364
370
  }
365
371
 
372
+ function getActiveRequests(NftId oracleNftId) external view returns(uint256 numberOfRequests) {
373
+ return _requestSet.activeRequests(oracleNftId);
374
+ }
375
+
376
+ function getActiveRequestAt(NftId oracleNftId, uint256 idx) external view returns(RequestId requestId) {
377
+ return _requestSet.activeRequestAt(oracleNftId, idx);
378
+ }
379
+
380
+ function isRequestActive(NftId oracleNftId, RequestId requestId) external view returns(bool isActive) {
381
+ return _requestSet.contains(oracleNftId, requestId);
382
+ }
383
+
366
384
  //--- pool functions -----------------------------------------------------------//
367
385
 
368
386
  /// @dev Returns the pool info for the given pool NFT ID.
@@ -466,6 +484,12 @@ contract InstanceReader {
466
484
  }
467
485
 
468
486
 
487
+ /// @dev Returns the role ID for the given index.
488
+ function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
489
+ return _instanceAdmin.getRoleForName(name);
490
+ }
491
+
492
+
469
493
  /// @dev Returns the role ID for the instance owner role.
470
494
  /// This role may be used as a "root" admin role for other custom roles defined for this instance.
471
495
  function getInstanceOwnerRole() public pure returns (RoleId roleId) {
@@ -595,13 +619,18 @@ contract InstanceReader {
595
619
  }
596
620
 
597
621
 
598
- function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
599
- return UFixedLib.toUFixed(value, exp);
622
+ function toInt(UFixed value) public pure returns (uint256) {
623
+ return UFixedLib.toInt(value);
600
624
  }
601
625
 
602
626
 
603
- function toInt(UFixed value) public pure returns (uint256) {
604
- return UFixedLib.toInt(value);
627
+ function toString(Str str) public pure returns (string memory) {
628
+ return StrLib.toString(str);
629
+ }
630
+
631
+
632
+ function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
633
+ return UFixedLib.toUFixed(value, exp);
605
634
  }
606
635
 
607
636
  //--- internal functions ----------------------------------------------------//
@@ -22,6 +22,7 @@ import {InstanceStore} from "./InstanceStore.sol";
22
22
  import {NftId} from "../type/NftId.sol";
23
23
  import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
24
24
  import {ProductStore} from "./ProductStore.sol";
25
+ import {RequestSet} from "./RequestSet.sol";
25
26
  import {RiskSet} from "./RiskSet.sol";
26
27
  import {RoleId} from "../type/RoleId.sol";
27
28
  import {Seconds} from "../type/Seconds.sol";
@@ -49,6 +50,7 @@ contract InstanceService is
49
50
  address internal _masterInstanceReader;
50
51
  address internal _masterInstanceBundleSet;
51
52
  address internal _masterInstanceRiskSet;
53
+ address internal _masterInstanceRequestSet;
52
54
  address internal _masterInstanceStore;
53
55
  address internal _masterProductStore;
54
56
 
@@ -304,11 +306,13 @@ contract InstanceService is
304
306
  InstanceReader upgradedInstanceReaderClone = InstanceReader(
305
307
  Clones.clone(address(_masterInstanceReader)));
306
308
 
309
+ address oldInstanceReaderAddress = address(instance.getInstanceReader());
307
310
  upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
308
311
  instance.setInstanceReader(upgradedInstanceReaderClone);
309
312
 
310
313
  emit LogInstanceServiceInstanceReaderUpgraded(
311
314
  getRegistry().getNftIdForAddress(instanceAddress),
315
+ oldInstanceReaderAddress,
312
316
  address(upgradedInstanceReaderClone));
313
317
  }
314
318
 
@@ -323,55 +327,80 @@ contract InstanceService is
323
327
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
324
328
  if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
325
329
  if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
330
+ if(_masterInstanceRequestSet != address(0)) { revert ErrorInstanceServiceMasterRequestSetAlreadySet(); }
326
331
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
327
332
 
328
333
  {
329
334
  IInstance instance = IInstance(instanceAddress);
330
335
  address accessManagerAddress = instance.authority();
331
336
  InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
332
- address instanceAdminAddress = address(instanceAdmin);
333
- InstanceReader instanceReader = instance.getInstanceReader();
334
- address instanceReaderAddress = address(instanceReader);
335
- BundleSet bundleSet = instance.getBundleSet();
336
- address bundleSetAddress = address(bundleSet);
337
- RiskSet riskSet = instance.getRiskSet();
338
- address riskSetAddress = address(riskSet);
339
- InstanceStore instanceStore = instance.getInstanceStore();
340
- address instanceStoreAddress = address(instanceStore);
341
- ProductStore productStore = instance.getProductStore();
342
- address productStoreAddress = address(productStore);
343
-
344
- if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
345
- if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
346
- if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
347
- if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
348
- if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
349
- if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
350
- if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
351
337
 
352
- if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
353
- if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
354
- if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
355
- if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
356
- if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
357
- if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
358
- if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
359
- if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
360
-
361
- _masterAccessManager = accessManagerAddress;
362
- _masterInstanceAdmin = instanceAdminAddress;
363
- _masterInstance = instanceAddress;
364
- _masterInstanceReader = instanceReaderAddress;
365
- _masterInstanceBundleSet = bundleSetAddress;
366
- _masterInstanceRiskSet = riskSetAddress;
367
- _masterInstanceStore = instanceStoreAddress;
368
- _masterProductStore = productStoreAddress;
338
+ {
339
+ address instanceAdminAddress = address(instanceAdmin);
340
+ InstanceReader instanceReader = instance.getInstanceReader();
341
+ address instanceReaderAddress = address(instanceReader);
342
+
343
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
344
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
345
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
346
+
347
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
348
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
349
+
350
+ _masterAccessManager = accessManagerAddress;
351
+ _masterInstanceAdmin = instanceAdminAddress;
352
+ _masterInstance = instanceAddress;
353
+ _masterInstanceReader = instanceReaderAddress;
354
+ }
355
+
356
+ {
357
+ BundleSet bundleSet = instance.getBundleSet();
358
+ address bundleSetAddress = address(bundleSet);
359
+ RiskSet riskSet = instance.getRiskSet();
360
+ address riskSetAddress = address(riskSet);
361
+ RequestSet requestSet = instance.getRequestSet();
362
+ address requestSetAddress = address(requestSet);
363
+
364
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
365
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
366
+ if(requestSetAddress == address(0)) { revert ErrorInstanceServiceRequestSetZero(); }
367
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
368
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
369
+ if(requestSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRequestSetAuthorityMismatch(); }
370
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
371
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
372
+ if(requestSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRequestSetInstanceMismatch(); }
373
+
374
+ _masterInstanceBundleSet = bundleSetAddress;
375
+ _masterInstanceRiskSet = riskSetAddress;
376
+ _masterInstanceRequestSet = requestSetAddress;
377
+ }
378
+
379
+ {
380
+ InstanceStore instanceStore = instance.getInstanceStore();
381
+ address instanceStoreAddress = address(instanceStore);
382
+ ProductStore productStore = instance.getProductStore();
383
+ address productStoreAddress = address(productStore);
384
+
385
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
386
+ if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
387
+
388
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
389
+ if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
390
+
391
+ _masterInstanceStore = instanceStoreAddress;
392
+ _masterProductStore = productStoreAddress;
393
+ }
369
394
  }
370
395
 
371
396
  {
372
397
  IInstance masterInstance = IInstance(_masterInstance);
373
398
  IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
374
399
  masterInstanceNftId = info.nftId;
400
+
401
+ emit LogInstanceServiceMasterInstanceRegistered(
402
+ masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
403
+ _masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceRequestSet, _masterInstanceStore, _masterProductStore);
375
404
  }
376
405
  }
377
406
 
@@ -388,10 +417,12 @@ contract InstanceService is
388
417
  InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
389
418
  if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
390
419
 
420
+ address oldMasterInstanceReaderAddress = _masterInstanceReader;
391
421
  _masterInstanceReader = instanceReaderAddress;
392
422
 
393
423
  emit LogInstanceServiceMasterInstanceReaderUpgraded(
394
424
  getRegistry().getNftIdForAddress(_masterInstance),
425
+ oldMasterInstanceReaderAddress,
395
426
  instanceReaderAddress);
396
427
  }
397
428
 
@@ -443,6 +474,7 @@ contract InstanceService is
443
474
  productStore: ProductStore(Clones.clone(address(_masterProductStore))),
444
475
  bundleSet: BundleSet(Clones.clone(_masterInstanceBundleSet)),
445
476
  riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
477
+ requestSet: RequestSet(Clones.clone(address(_masterInstanceRequestSet))),
446
478
  instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
447
479
  }),
448
480
  getRegistry(),