@etherisc/gif-next 3.0.0-ed516f2-751 → 3.0.0-ee35efe-784

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 (420) 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 +32 -36
  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 +44 -56
  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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -96
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -94
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -94
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -87
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -127
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  48. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
  50. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  52. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +177 -129
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +14 -89
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +441 -749
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
  66. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  68. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  70. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +15 -109
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  76. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +88 -80
  78. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +16 -91
  80. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +18 -93
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  86. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  88. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  92. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +13 -0
  94. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +87 -0
  96. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  97. package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -12
  98. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +119 -131
  100. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
  102. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +93 -34
  104. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +128 -25
  106. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
  108. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  110. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  112. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  114. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  116. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  118. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
  127. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  133. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +82 -74
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  138. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +65 -57
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +77 -0
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +68 -60
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +161 -44
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +58 -38
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -75
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -75
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
  163. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  164. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -75
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -75
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +36 -36
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
  187. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  189. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -75
  190. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
  193. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  195. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
  197. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  199. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
  201. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  202. package/artifacts/contracts/product/Product.sol/Product.json +0 -75
  203. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  204. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  205. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
  207. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  209. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
  211. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  212. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  214. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -37
  216. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +113 -125
  218. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  220. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  222. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
  224. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +123 -135
  226. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  228. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +106 -96
  230. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  232. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  233. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  234. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Component.sol/Component.json +0 -75
  236. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +311 -95
  238. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
  240. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  242. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +0 -75
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -75
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +255 -39
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -75
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  260. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -75
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  273. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -75
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +5 -205
  284. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  285. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  286. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -123
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +19 -219
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  299. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  300. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  302. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  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/Fee.sol/FeeLib.json +2 -7
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  320. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  324. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  333. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  334. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  335. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  337. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  339. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  341. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  343. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  345. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  347. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  351. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  353. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  355. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  357. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  359. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  360. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  361. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  362. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  363. package/contracts/accounting/AccountingService.sol +17 -29
  364. package/contracts/accounting/IAccountingService.sol +7 -8
  365. package/contracts/authorization/AccessAdmin.sol +6 -25
  366. package/contracts/authorization/AccessAdminLib.sol +18 -1
  367. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  368. package/contracts/distribution/DistributionService.sol +5 -3
  369. package/contracts/distribution/IDistributionComponent.sol +0 -2
  370. package/contracts/distribution/IDistributionService.sol +4 -3
  371. package/contracts/examples/flight/FlightLib.sol +90 -75
  372. package/contracts/examples/flight/FlightNft.sol +234 -0
  373. package/contracts/examples/flight/FlightOracle.sol +29 -55
  374. package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
  375. package/contracts/examples/flight/FlightPool.sol +1 -1
  376. package/contracts/examples/flight/FlightProduct.sol +279 -243
  377. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  378. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  379. package/contracts/instance/BaseStore.sol +4 -0
  380. package/contracts/instance/IBaseStore.sol +8 -0
  381. package/contracts/instance/IInstance.sol +3 -0
  382. package/contracts/instance/IInstanceService.sol +6 -0
  383. package/contracts/instance/Instance.sol +8 -0
  384. package/contracts/instance/InstanceAdmin.sol +2 -2
  385. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  386. package/contracts/instance/InstanceReader.sol +19 -5
  387. package/contracts/instance/InstanceService.sol +64 -36
  388. package/contracts/instance/RequestSet.sol +63 -0
  389. package/contracts/instance/TargetNames.sol +1 -0
  390. package/contracts/instance/base/ObjectSet.sol +8 -0
  391. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  392. package/contracts/oracle/BasicOracle.sol +1 -0
  393. package/contracts/oracle/IOracleComponent.sol +10 -0
  394. package/contracts/oracle/IOracleService.sol +15 -0
  395. package/contracts/oracle/Oracle.sol +70 -23
  396. package/contracts/oracle/OracleService.sol +79 -3
  397. package/contracts/pool/BundleService.sol +1 -1
  398. package/contracts/pool/IBundleService.sol +1 -1
  399. package/contracts/pool/IPoolService.sol +1 -1
  400. package/contracts/pool/PoolService.sol +1 -1
  401. package/contracts/product/IPolicyService.sol +1 -1
  402. package/contracts/product/PolicyService.sol +1 -1
  403. package/contracts/product/PolicyServiceLib.sol +5 -3
  404. package/contracts/registry/ChainNft.sol +1 -1
  405. package/contracts/registry/IRegistry.sol +1 -1
  406. package/contracts/registry/Registry.sol +5 -3
  407. package/contracts/registry/RegistryAdmin.sol +7 -1
  408. package/contracts/registry/RegistryAuthorization.sol +0 -2
  409. package/contracts/registry/ReleaseAdmin.sol +8 -1
  410. package/contracts/registry/ServiceAuthorizationV3.sol +2 -0
  411. package/contracts/shared/ComponentService.sol +36 -2
  412. package/contracts/shared/IComponent.sol +0 -4
  413. package/contracts/shared/IComponentService.sol +24 -2
  414. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  415. package/contracts/staking/IStaking.sol +2 -0
  416. package/contracts/staking/IStakingService.sol +1 -10
  417. package/contracts/staking/Staking.sol +1 -0
  418. package/contracts/staking/StakingService.sol +1 -1
  419. package/contracts/type/RequestId.sol +6 -0
  420. package/package.json +3 -3
@@ -13,6 +13,10 @@ import {Timestamp} from "../type/Timestamp.sol";
13
13
  interface IOracleComponent is IInstanceLinkedComponent {
14
14
  error ErrorOracleNotImplemented(string methodName);
15
15
 
16
+ event LogOracleRequestReceived(RequestId indexed requestId, NftId indexed requesterId);
17
+ event LogOracleRequestCancelled(RequestId indexed requestId);
18
+
19
+
16
20
  /// @dev callback method for requesting some data from the oracle
17
21
  function request(
18
22
  RequestId requestId,
@@ -30,4 +34,10 @@ interface IOracleComponent is IInstanceLinkedComponent {
30
34
 
31
35
  /// @dev returns true iff the component needs to be called when selling/renewing policis
32
36
  function isVerifying() external view returns (bool verifying);
37
+
38
+ function activeRequests() external view returns(uint256 numberOfRequests);
39
+
40
+ function getActiveRequest(uint256 idx) external view returns(RequestId requestId);
41
+
42
+ function isActiveRequest(RequestId requestId) external view returns(bool isActive);
33
43
  }
@@ -63,4 +63,19 @@ interface IOracleService is IService {
63
63
  /// Permissioned: only the requester may cancel a request
64
64
  function cancel(RequestId requestId) external;
65
65
 
66
+ // FIXME: this should be done by request
67
+ function addRequest(RequestId requestId) external;
68
+
69
+ // FIXME: this could be done by respond, resend, cancel
70
+ function removeRequest(RequestId requestId) external;
71
+
72
+ // FIXME: move to instance reader
73
+ function activeRequests() external view returns(uint256 numberOfRequests);
74
+
75
+ // FIXME: move to instance reader
76
+ function activeRequestAt(uint256 idx) external view returns(RequestId requestId);
77
+
78
+ // FIXME: move to instance reader
79
+ function isActiveRequest(RequestId requestId) external view returns(bool isActive);
80
+
66
81
  }
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
5
+ import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
@@ -11,6 +11,7 @@ import {IOracleService} from "./IOracleService.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
13
  import {RequestId} from "../type/RequestId.sol";
14
+ import {FULFILLED} from "../type/StateId.sol";
14
15
  import {Timestamp} from "../type/Timestamp.sol";
15
16
 
16
17
 
@@ -74,6 +75,33 @@ abstract contract Oracle is
74
75
  revert ErrorOracleNotImplemented("withdrawFees");
75
76
  }
76
77
 
78
+ function activeRequests()
79
+ external
80
+ view
81
+ returns(uint256 numberOfRequests)
82
+ {
83
+ OracleStorage storage $ = _getOracleStorage();
84
+ return $._oracleService.activeRequests();
85
+ }
86
+
87
+
88
+ function getActiveRequest(uint256 idx)
89
+ external
90
+ view
91
+ returns(RequestId requestId)
92
+ {
93
+ OracleStorage storage $ = _getOracleStorage();
94
+ return $._oracleService.activeRequestAt(idx);
95
+ }
96
+
97
+ function isActiveRequest(RequestId requestId)
98
+ external
99
+ view
100
+ returns(bool isActive)
101
+ {
102
+ OracleStorage storage $ = _getOracleStorage();
103
+ return $._oracleService.isActiveRequest(requestId);
104
+ }
77
105
 
78
106
  function __Oracle_init(
79
107
  address registry,
@@ -102,48 +130,67 @@ abstract contract Oracle is
102
130
  _registerInterface(type(IOracleComponent).interfaceId);
103
131
  }
104
132
 
105
-
106
- /// @dev Internal function for handling requests.
107
- /// Empty implementation.
108
- /// Overwrite this function to implement use case specific handling for oracle calls.
109
- function _request(
133
+ /// @dev Internal function for handling oracle responses.
134
+ /// Default implementation sends response back to oracle service.
135
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
136
+ function _respond(
110
137
  RequestId requestId,
111
- NftId requesterId,
112
- bytes calldata requestData,
113
- Timestamp expiryAt
138
+ bytes memory responseData
114
139
  )
115
140
  internal
116
141
  virtual
117
142
  {
143
+ _getOracleStorage()._oracleService.respond(requestId, responseData);
118
144
  }
119
145
 
120
-
121
- /// @dev Internal function for cancelling requests.
122
- /// Empty implementation.
123
- /// Overwrite this function to implement use case specific cancelling.
124
- function _cancel(
146
+ // check callback result
147
+ function _updateRequestState(
125
148
  RequestId requestId
126
149
  )
127
150
  internal
128
- virtual
129
151
  {
152
+ bool requestFulfilled = _getInstanceReader().getRequestState(
153
+ requestId) == FULFILLED();
154
+ OracleStorage storage $ = _getOracleStorage();
155
+
156
+ // remove from active requests when successful
157
+ if (requestFulfilled && $._oracleService.isActiveRequest(requestId)) {
158
+ $._oracleService.removeRequest(requestId);
159
+ }
130
160
  }
131
161
 
132
162
 
133
- /// @dev Internal function for handling oracle responses.
134
- /// Default implementation sends response back to oracle service.
135
- /// Use this function in use case specific external/public functions to handle use case specific response handling.
136
- function _respond(
163
+ /// @dev use case specific handling of oracle requests
164
+ /// for now only log is emitted to verify that request has been received by oracle component
165
+ function _request(
137
166
  RequestId requestId,
138
- bytes memory responseData
167
+ NftId requesterId,
168
+ bytes calldata requestData,
169
+ Timestamp expiryAt
139
170
  )
140
171
  internal
141
- virtual
172
+ virtual
142
173
  {
143
- _getOracleStorage()._oracleService.respond(
144
- requestId, responseData);
174
+ OracleStorage storage $ = _getOracleStorage();
175
+ $._oracleService.addRequest(requestId);
176
+ emit LogOracleRequestReceived(requestId, requesterId);
145
177
  }
146
178
 
179
+
180
+ /// @dev use case specific handling of oracle requests
181
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
182
+ function _cancel(
183
+ RequestId requestId
184
+ )
185
+ internal
186
+ virtual
187
+ {
188
+ OracleStorage storage $ = _getOracleStorage();
189
+ $._oracleService.removeRequest(requestId);
190
+ emit LogOracleRequestCancelled(requestId);
191
+ }
192
+
193
+
147
194
  function _getOracleStorage() private pure returns (OracleStorage storage $) {
148
195
  assembly {
149
196
  $.slot := ORACLE_STORAGE_LOCATION_V1
@@ -2,16 +2,14 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ContractLib} from "../shared/ContractLib.sol";
5
- import {IComponent} from "../shared/IComponent.sol";
6
5
  import {IInstance} from "../instance/IInstance.sol";
7
- import {IInstanceService} from "../instance/IInstanceService.sol";
8
6
  import {InstanceReader} from "../instance/InstanceReader.sol";
9
7
  import {IOracle} from "./IOracle.sol";
10
8
  import {IOracleComponent} from "./IOracleComponent.sol";
11
9
  import {IOracleService} from "./IOracleService.sol";
12
10
  import {IRegistry} from "../registry/IRegistry.sol";
13
11
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
12
+ import {ObjectType, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
13
  import {RequestId} from "../type/RequestId.sol";
16
14
  import {Service} from "../shared/Service.sol";
17
15
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
@@ -217,6 +215,84 @@ contract OracleService is
217
215
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
218
216
  }
219
217
 
218
+ function activeRequests()
219
+ external
220
+ view
221
+ virtual
222
+ returns(uint256 numberOfRequests)
223
+ {
224
+ (
225
+ IRegistry.ObjectInfo memory info,
226
+ address instanceAddress
227
+ ) = ContractLib.getAndVerifyAnyComponent(
228
+ getRegistry(), msg.sender, true);
229
+ IInstance instance = IInstance(instanceAddress);
230
+
231
+
232
+ return instance.getRequestSet().activeRequests(info.nftId);
233
+ }
234
+
235
+ function activeRequestAt(uint256 idx)
236
+ external
237
+ view
238
+ virtual
239
+ returns(RequestId requestId)
240
+ {
241
+ (
242
+ IRegistry.ObjectInfo memory info,
243
+ address instanceAddress
244
+ ) = ContractLib.getAndVerifyAnyComponent(
245
+ getRegistry(), msg.sender, true);
246
+ IInstance instance = IInstance(instanceAddress);
247
+
248
+ return instance.getRequestSet().activeRequestAt(info.nftId, idx);
249
+ }
250
+
251
+ function isActiveRequest(RequestId requestId)
252
+ external
253
+ view
254
+ virtual
255
+ returns(bool isActive)
256
+ {
257
+ (
258
+ IRegistry.ObjectInfo memory info,
259
+ address instanceAddress
260
+ ) = ContractLib.getAndVerifyAnyComponent(
261
+ getRegistry(), msg.sender, true);
262
+ IInstance instance = IInstance(instanceAddress);
263
+
264
+ return instance.getRequestSet().contains(info.nftId, requestId);
265
+ }
266
+
267
+ function addRequest(RequestId requestId)
268
+ external
269
+ virtual
270
+ restricted()
271
+ {
272
+ (
273
+ IRegistry.ObjectInfo memory info,
274
+ address instanceAddress
275
+ ) = ContractLib.getAndVerifyAnyComponent(
276
+ getRegistry(), msg.sender, true);
277
+ IInstance instance = IInstance(instanceAddress);
278
+
279
+ instance.getRequestSet().add(info.nftId, requestId);
280
+ }
281
+
282
+ function removeRequest(RequestId requestId)
283
+ external
284
+ virtual
285
+ restricted()
286
+ {
287
+ (
288
+ IRegistry.ObjectInfo memory info,
289
+ address instanceAddress
290
+ ) = ContractLib.getAndVerifyAnyComponent(
291
+ getRegistry(), msg.sender, true);
292
+ IInstance instance = IInstance(instanceAddress);
293
+
294
+ instance.getRequestSet().remove(info.nftId, requestId);
295
+ }
220
296
 
221
297
  function _checkRequestParams(
222
298
  IRegistry registry,
@@ -130,7 +130,7 @@ contract BundleService is
130
130
  BundleSet bundleManager = instance.getBundleSet();
131
131
  bundleManager.add(bundleNftId);
132
132
 
133
- emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
133
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime, bundleFee.fixedFee, bundleFee.fractionalFee);
134
134
  }
135
135
 
136
136
 
@@ -30,7 +30,7 @@ interface IBundleService is IService {
30
30
 
31
31
  error ErrorBundleServiceExtensionLifetimeIsZero();
32
32
 
33
- event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
33
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime, Amount fixedFee, UFixed fractionalFee);
34
34
  event LogBundleServiceBundleClosed(NftId bundleNftId);
35
35
  event LogBundleServiceBundleLocked(NftId bundleNftId);
36
36
  event LogBundleServiceBundleUnlocked(NftId bundleNftId);
@@ -19,7 +19,7 @@ interface IPoolService is IService {
19
19
  event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
20
20
 
21
21
  event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
- event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
+ event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount balanceAmount, Amount feeAmount);
23
23
 
24
24
  event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
25
25
  event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
@@ -98,7 +98,7 @@ contract PoolService is
98
98
  unstakedAmount + feeAmount,
99
99
  AmountLib.zero());
100
100
 
101
- emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
101
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, feeAmount);
102
102
 
103
103
  if ((unstakedAmount + feeAmount).gtz()){
104
104
  IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
@@ -13,7 +13,7 @@ interface IPolicyService is IService {
13
13
 
14
14
  event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
15
  event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
- event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, NftId productNftId, Amount premiumAmount, Timestamp activateAt);
17
17
  event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
18
  event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
19
19
  event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
@@ -247,7 +247,7 @@ contract PolicyService is
247
247
  instance.getProductStore().updatePremiumState(policyNftId, PAID());
248
248
 
249
249
  // log premium collection before interactions with token
250
- emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
250
+ emit LogPolicyServicePolicyPremiumCollected(policyNftId, policyInfo.productNftId, premium.premiumAmount, activateAt);
251
251
 
252
252
  // interactions
253
253
  _transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
@@ -95,13 +95,14 @@ library PolicyServiceLib {
95
95
  {
96
96
  if (policyState != COLLATERALIZED()) {
97
97
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
98
- }
99
- if (TimestampLib.current() < policyInfo.activatedAt) {
98
+ }
99
+
100
+ if (policyInfo.activatedAt.eqz() || TimestampLib.current() < policyInfo.activatedAt) {
100
101
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
101
102
  }
102
103
 
103
104
  // check expiredAt represents a valid expiry time
104
- if (newExpiredAt >= policyInfo.expiredAt) {
105
+ if (newExpiredAt > policyInfo.expiredAt) {
105
106
  revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
106
107
  }
107
108
 
@@ -110,6 +111,7 @@ library PolicyServiceLib {
110
111
  }
111
112
  }
112
113
 
114
+
113
115
  function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
114
116
  external
115
117
  view
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
11
11
  event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
@@ -20,7 +20,7 @@ interface IRegistry is
20
20
  {
21
21
 
22
22
  event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
23
+ event LogRegistryServiceRegistered(NftId nftId, VersionPart majorVersion, ObjectType domain);
24
24
  event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
25
 
26
26
  // initialize
@@ -2,7 +2,6 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
7
6
  import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
8
7
 
@@ -16,7 +15,6 @@ import {IRelease} from "./IRelease.sol";
16
15
  import {IRegisterable} from "../shared/IRegisterable.sol";
17
16
  import {IStaking} from "../staking/IStaking.sol";
18
17
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
19
- import {TokenRegistry} from "./TokenRegistry.sol";
20
18
  import {RegistryAdmin} from "./RegistryAdmin.sol";
21
19
 
22
20
  /// @dev IMPORTANT
@@ -231,7 +229,7 @@ contract Registry is
231
229
 
232
230
  _service[version][domain] = service;
233
231
 
234
- emit LogRegistryServiceRegistered(version, domain);
232
+ emit LogRegistryServiceRegistered(info.nftId,version, domain);
235
233
 
236
234
  nftId = _register(info);
237
235
  }
@@ -566,6 +564,8 @@ contract Registry is
566
564
  initialOwner: NFT_LOCK_ADDRESS,
567
565
  data: ""}),
568
566
  true);
567
+
568
+ emit LogRegistryObjectRegistered(protocolNftId, NftIdLib.zero(), PROTOCOL(), false, address(0), NFT_LOCK_ADDRESS);
569
569
  }
570
570
 
571
571
  /// @dev register this registry
@@ -671,6 +671,8 @@ contract Registry is
671
671
 
672
672
  // calls nft receiver
673
673
  CHAIN_NFT.mint(info.initialOwner, info.nftId.toInt());
674
+
675
+ emit LogRegistryObjectRegistered(info.nftId, info.parentNftId, info.objectType, info.isInterceptor, info.objectAddress, info.initialOwner);
674
676
  }
675
677
 
676
678
  function _setAddressForNftId(NftId nftId, address objectAddress)
@@ -85,7 +85,13 @@ contract RegistryAdmin is
85
85
  registry,
86
86
  release);
87
87
 
88
- _checkAuthorization(authorization, REGISTRY(), release, false, true);
88
+ AccessAdminLib.checkAuthorization(
89
+ address(_authorization),
90
+ authorization,
91
+ REGISTRY(),
92
+ release,
93
+ false, // expectServiceAuthorization
94
+ false); // checkAlreadyInitialized);
89
95
 
90
96
  _registry = registry;
91
97
  _authorization = IAuthorization(authorization);
@@ -144,8 +144,6 @@ contract RegistryAuthorization
144
144
  _setupStakingThAuthorization();
145
145
  }
146
146
 
147
- event LogAccessAdminDebug(string message, string custom, uint256 value);
148
-
149
147
  function _setupRegistryAuthorization() internal {
150
148
  IAccess.FunctionInfo[] storage functions;
151
149
 
@@ -72,7 +72,14 @@ contract ReleaseAdmin is
72
72
  release);
73
73
 
74
74
  IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
75
- _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
75
+ AccessAdminLib.checkAuthorization(
76
+ address(_authorization),
77
+ address(serviceAuthorization),
78
+ RELEASE(),
79
+ release,
80
+ true, // expectServiceAuthorization
81
+ true); // checkAlreadyInitialized);
82
+
76
83
  _serviceAuthorization = serviceAuthorization;
77
84
 
78
85
  // link nft ownability to registry
@@ -308,6 +308,8 @@ contract ServiceAuthorizationV3
308
308
  _authorize(functions, IOracleService.respond.selector, "respond");
309
309
  _authorize(functions, IOracleService.resend.selector, "resend");
310
310
  _authorize(functions, IOracleService.cancel.selector, "cancel");
311
+ _authorize(functions, IOracleService.addRequest.selector, "addRequest");
312
+ _authorize(functions, IOracleService.removeRequest.selector, "removeRequest");
311
313
  }
312
314
 
313
315
  function _setupApplicationServiceAuthorization()
@@ -312,9 +312,27 @@ contract ComponentService is
312
312
  productNftId,
313
313
  initialProductInfo);
314
314
 
315
+ emit LogComponentServiceProductCreated(productNftId, productAddress, initialProductInfo.hasDistribution, initialProductInfo.expectedNumberOfOracles);
316
+
317
+ IComponents.FeeInfo memory initialFeeInfo = product.getInitialFeeInfo();
318
+
315
319
  productStore.createFee(
316
320
  productNftId,
317
- product.getInitialFeeInfo());
321
+ initialFeeInfo);
322
+
323
+ emit LogComponentServiceProductInitialProductFeesSet(
324
+ productNftId,
325
+ initialFeeInfo.productFee.fixedFee, initialFeeInfo.productFee.fractionalFee,
326
+ initialFeeInfo.processingFee.fixedFee, initialFeeInfo.processingFee.fractionalFee);
327
+ emit LogComponentServiceProductInitialDistributionFeesSet(
328
+ productNftId,
329
+ initialFeeInfo.distributionFee.fixedFee, initialFeeInfo.distributionFee.fractionalFee,
330
+ initialFeeInfo.minDistributionOwnerFee.fixedFee, initialFeeInfo.minDistributionOwnerFee.fractionalFee);
331
+ emit LogComponentServiceProductInitialPoolFeesSet(
332
+ productNftId,
333
+ initialFeeInfo.poolFee.fixedFee, initialFeeInfo.poolFee.fractionalFee,
334
+ initialFeeInfo.stakingFee.fixedFee, initialFeeInfo.stakingFee.fractionalFee,
335
+ initialFeeInfo.performanceFee.fixedFee, initialFeeInfo.performanceFee.fractionalFee);
318
336
  }
319
337
 
320
338
  //-------- distribution -------------------------------------------------//
@@ -341,6 +359,8 @@ contract ComponentService is
341
359
  // set distribution in product info
342
360
  productInfo.distributionNftId = distributionNftId;
343
361
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
362
+
363
+ emit LogComponentServiceDistributionCreated(distributionNftId, productNftId);
344
364
  }
345
365
 
346
366
 
@@ -400,6 +420,8 @@ contract ComponentService is
400
420
  productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
401
421
  productInfo.numberOfOracles++;
402
422
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
423
+
424
+ emit LogComponentServiceOracleCreated(oracleNftId, productNftId);
403
425
  }
404
426
 
405
427
  //-------- pool ---------------------------------------------------------//
@@ -423,13 +445,20 @@ contract ComponentService is
423
445
 
424
446
  // create info
425
447
  IPoolComponent pool = IPoolComponent(componentAddress);
448
+ IComponents.PoolInfo memory initialPoolInfo = pool.getInitialPoolInfo();
426
449
  instanceStore.createPool(
427
450
  poolNftId,
428
- pool.getInitialPoolInfo());
451
+ initialPoolInfo);
429
452
 
430
453
  // update pool in product info
431
454
  productInfo.poolNftId = poolNftId;
432
455
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
456
+
457
+ emit LogComponentServicePoolCreated(
458
+ poolNftId, productNftId, componentAddress,
459
+ initialPoolInfo.maxBalanceAmount, initialPoolInfo.collateralizationLevel,
460
+ initialPoolInfo.retentionLevel, initialPoolInfo.isExternallyManaged,
461
+ initialPoolInfo.isVerifyingApplications);
433
462
  }
434
463
 
435
464
 
@@ -543,6 +572,11 @@ contract ComponentService is
543
572
  address(component), // initially, component is its own wallet
544
573
  token,
545
574
  instanceAdmin.authority());
575
+
576
+ emit LogComponentServiceTokenHandlerDeployed(
577
+ componentNftId,
578
+ address(componentInfo.tokenHandler),
579
+ token);
546
580
 
547
581
  // register component with instance
548
582
  instanceStore.createComponent(
@@ -25,10 +25,6 @@ interface IComponent is
25
25
  error ErrorComponentWalletAddressIsSameAsCurrent();
26
26
  error ErrorComponentWalletNotComponent();
27
27
 
28
- event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
29
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
30
- event LogComponentTokenHandlerApproved(address tokenHandler, address token, Amount limit, bool isMaxAmount);
31
-
32
28
  /// @dev returns the name of this component
33
29
  /// to successfully register the component with an instance the name MUST be unique in the linked instance
34
30
  function getName() external view returns (string memory name);
@@ -46,9 +46,8 @@ interface IComponentService is
46
46
  error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
47
47
 
48
48
  event LogComponentServiceComponentLocked(address component, bool locked);
49
+ event LogComponentServiceTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
49
50
  event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
50
- event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
51
- event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
52
51
  event LogComponentServiceComponentFeesWithdrawn(NftId componentNftId, address recipient, address token, Amount withdrawnAmount);
53
52
  event LogComponentServiceProductFeesUpdated(NftId productNftId);
54
53
  event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
@@ -61,6 +60,29 @@ interface IComponentService is
61
60
  UFixed newFractionalFee,
62
61
  Amount newFixedFee
63
62
  );
63
+ event LogComponentServiceProductCreated(
64
+ NftId indexed productNftId, address indexed productAddress, bool indexed hasDistribution, uint8 expectedNumberOfOracles);
65
+ event LogComponentServiceProductInitialProductFeesSet(
66
+ NftId indexed productNftId,
67
+ Amount indexed productFeeFixed, UFixed indexed productFeeFractional,
68
+ Amount processingFeeFixed, UFixed processingFeeFractional);
69
+ event LogComponentServiceProductInitialDistributionFeesSet(
70
+ NftId indexed productNftId,
71
+ Amount indexed distributionFeeFixed, UFixed indexed distributionFeeFractional,
72
+ Amount minDistributionOwnerFeeFixed, UFixed minDistributionOwnerFeeFractional);
73
+ event LogComponentServiceProductInitialPoolFeesSet(
74
+ NftId indexed productNftId,
75
+ Amount indexed poolFeeFixed, UFixed indexed poolFeeFractional,
76
+ Amount stakingFeeFixed, UFixed stakingFeeFractional,
77
+ Amount performanceFeeFixed, UFixed performanceFeeFractional);
78
+ event LogComponentServicePoolCreated(
79
+ NftId indexed poolNftId, NftId indexed productNftId, address indexed componentAddress,
80
+ Amount maxBalanceAmount, UFixed collateralizationLevel, UFixed retentionLevel,
81
+ bool isExternallyManaged, bool isVerifyingApplications);
82
+ event LogComponentServiceDistributionCreated(
83
+ NftId indexed distributionNftId, NftId indexed productNftId);
84
+ event LogComponentServiceOracleCreated(
85
+ NftId indexed oracleNftId, NftId indexed productNftId);
64
86
 
65
87
  //-------- component ----------------------------------------------------//
66
88
 
@@ -92,7 +92,7 @@ abstract contract InstanceLinkedComponent is
92
92
  }
93
93
 
94
94
 
95
- function _resendRequest(RequestId requestId)
95
+ function _resendResponse(RequestId requestId)
96
96
  internal
97
97
  virtual
98
98
  {
@@ -25,6 +25,8 @@ interface IStaking is
25
25
  IVersionable
26
26
  {
27
27
 
28
+ event LogStakingTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
29
+
28
30
  // owner functions
29
31
  event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
30
32
  event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);