@etherisc/gif-next 3.0.0-ce9c327-981 → 3.0.0-cf20ffd-765

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/README.md +12 -3
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +44 -58
  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 +16 -22
  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 +22 -97
  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 +20 -20
  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 +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  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 +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  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 +4 -0
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +26 -120
  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 +17 -92
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +30 -105
  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 +20 -20
  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 +22 -22
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +82 -9
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +32 -32
  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 +2 -2
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +125 -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 +183 -133
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +66 -79
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
  117. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -3
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  131. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +6 -81
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +2 -77
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +20 -14
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +2 -77
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +58 -52
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +50 -50
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +5 -80
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +99 -94
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -62
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +41 -36
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +5 -80
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +62 -50
  162. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  163. package/artifacts/contracts/pool/Pool.sol/Pool.json +5 -80
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +120 -108
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -63
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -44
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +89 -83
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -67
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +27 -21
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -15
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  193. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +15 -28
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +87 -75
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +60 -60
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +51 -51
  204. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  205. package/artifacts/contracts/product/Product.sol/Product.json +2 -77
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.json +37 -50
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -42
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +14 -8
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  217. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  218. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  219. package/artifacts/contracts/registry/Registry.sol/Registry.json +55 -45
  220. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -188
  222. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  224. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
  226. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -37
  228. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +205 -205
  230. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  232. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +120 -117
  234. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  236. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +21 -21
  238. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
  240. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +330 -114
  242. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +61 -61
  244. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  246. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  251. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
  253. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +272 -56
  255. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
  257. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -2
  260. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +2 -2
  263. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IService.sol/IService.json +2 -2
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  267. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  269. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
  270. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  271. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  272. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  273. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  274. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -4
  275. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  276. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  277. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  278. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  279. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  280. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  281. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  282. package/artifacts/contracts/shared/Service.sol/Service.json +2 -2
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  284. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
  287. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  289. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  290. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +126 -182
  291. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  292. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +19 -225
  293. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  294. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  295. package/artifacts/contracts/staking/Staking.sol/Staking.json +174 -230
  296. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  298. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +53 -53
  300. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  302. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +39 -245
  304. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +40 -40
  306. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +249 -249
  308. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  309. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +11 -16
  310. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  311. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  312. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  313. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  314. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  316. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  318. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  320. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  322. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  324. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  326. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  328. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  329. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  330. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  332. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  333. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  334. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  336. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  338. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  340. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  342. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  343. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  344. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  346. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  348. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  350. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  352. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  354. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  356. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  358. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  360. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  362. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  364. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  366. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  368. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -22
  369. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  370. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  371. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  372. package/contracts/accounting/AccountingService.sol +17 -29
  373. package/contracts/accounting/IAccountingService.sol +7 -8
  374. package/contracts/authorization/AccessAdmin.sol +16 -33
  375. package/contracts/authorization/AccessAdminLib.sol +20 -3
  376. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  377. package/contracts/authorization/IAccessAdmin.sol +9 -8
  378. package/contracts/distribution/DistributionService.sol +24 -19
  379. package/contracts/distribution/IDistributionComponent.sol +0 -2
  380. package/contracts/distribution/IDistributionService.sol +8 -7
  381. package/contracts/examples/flight/FlightLib.sol +337 -0
  382. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  383. package/contracts/examples/flight/FlightNft.sol +234 -0
  384. package/contracts/examples/flight/FlightOracle.sol +226 -0
  385. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  386. package/contracts/examples/flight/FlightPool.sol +89 -0
  387. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  388. package/contracts/examples/flight/FlightProduct.sol +687 -0
  389. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  390. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  391. package/contracts/examples/flight/FlightUSD.sol +28 -0
  392. package/contracts/examples/flight/originalV1.sol +396 -0
  393. package/contracts/instance/BaseStore.sol +4 -0
  394. package/contracts/instance/BundleSet.sol +7 -8
  395. package/contracts/instance/IBaseStore.sol +8 -0
  396. package/contracts/instance/IInstance.sol +8 -8
  397. package/contracts/instance/IInstanceService.sol +6 -4
  398. package/contracts/instance/Instance.sol +1 -1
  399. package/contracts/instance/InstanceAdmin.sol +0 -1
  400. package/contracts/instance/InstanceReader.sol +44 -8
  401. package/contracts/instance/InstanceService.sol +8 -0
  402. package/contracts/instance/InstanceStore.sol +14 -14
  403. package/contracts/instance/ProductStore.sol +14 -14
  404. package/contracts/instance/RiskSet.sol +6 -7
  405. package/contracts/instance/base/BalanceStore.sol +7 -7
  406. package/contracts/instance/base/ObjectSet.sol +1 -1
  407. package/contracts/oracle/BasicOracle.sol +1 -0
  408. package/contracts/oracle/IOracleService.sol +17 -17
  409. package/contracts/oracle/Oracle.sol +2 -2
  410. package/contracts/oracle/OracleService.sol +1 -1
  411. package/contracts/pool/BundleService.sol +3 -3
  412. package/contracts/pool/IBundleService.sol +9 -10
  413. package/contracts/pool/IPoolComponent.sol +1 -1
  414. package/contracts/pool/IPoolService.sol +14 -14
  415. package/contracts/pool/PoolService.sol +2 -2
  416. package/contracts/product/BasicProductAuthorization.sol +3 -2
  417. package/contracts/product/ClaimService.sol +1 -1
  418. package/contracts/product/IApplicationService.sol +8 -8
  419. package/contracts/product/IClaimService.sol +9 -9
  420. package/contracts/product/IPolicyService.sol +7 -7
  421. package/contracts/product/IRiskService.sol +4 -5
  422. package/contracts/product/PolicyService.sol +1 -1
  423. package/contracts/product/PolicyServiceLib.sol +5 -3
  424. package/contracts/product/RiskService.sol +2 -2
  425. package/contracts/registry/ChainNft.sol +2 -2
  426. package/contracts/registry/IRegistry.sol +3 -3
  427. package/contracts/registry/Registry.sol +5 -3
  428. package/contracts/registry/RegistryAdmin.sol +7 -1
  429. package/contracts/registry/RegistryAuthorization.sol +0 -2
  430. package/contracts/registry/ReleaseAdmin.sol +12 -5
  431. package/contracts/registry/ReleaseRegistry.sol +7 -8
  432. package/contracts/registry/TokenRegistry.sol +3 -3
  433. package/contracts/shared/ComponentService.sol +38 -4
  434. package/contracts/shared/EcdsaChecker.sol +5 -0
  435. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  436. package/contracts/shared/IComponent.sol +0 -4
  437. package/contracts/shared/IComponentService.sol +33 -11
  438. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  439. package/contracts/shared/INftOwnable.sol +1 -1
  440. package/contracts/shared/InstanceLinkedComponent.sol +60 -19
  441. package/contracts/shared/TokenHandler.sol +5 -5
  442. package/contracts/staking/IStaking.sol +33 -31
  443. package/contracts/staking/IStakingService.sol +7 -16
  444. package/contracts/staking/Staking.sol +5 -4
  445. package/contracts/staking/StakingService.sol +2 -2
  446. package/contracts/staking/StakingStore.sol +3 -3
  447. package/contracts/staking/TargetHandler.sol +1 -1
  448. package/contracts/type/ObjectType.sol +2 -31
  449. package/contracts/type/Referral.sol +6 -0
  450. package/contracts/type/RequestIdSet.sol +62 -0
  451. package/contracts/type/Seconds.sol +4 -0
  452. package/contracts/type/String.sol +30 -0
  453. package/contracts/type/Timestamp.sol +10 -1
  454. package/contracts/upgradeability/ProxyManager.sol +2 -2
  455. package/package.json +4 -3
@@ -11,13 +11,13 @@ import {Timestamp} from "../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicyService is IService {
13
13
 
14
- event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
- event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
- event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
17
- event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
- event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
19
- event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
20
- event LogPolicyServicePolicyClosed(NftId policyNftId);
14
+ event LogPolicyServicePolicyCreated(NftId indexed policyNftId, Amount indexed premiumAmount, Timestamp indexed activatedAt);
15
+ event LogPolicyServicePolicyDeclined(NftId indexed policyNftId);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId indexed policyNftId, NftId indexed productNftId, Amount indexed premiumAmount, Timestamp activateAt);
17
+ event LogPolicyServicePolicyActivated(NftId indexed policyNftId, Timestamp indexed activatedAt);
18
+ event LogPolicyServicePolicyActivatedUpdated(NftId indexed policyNftId, Timestamp indexed activatedAt);
19
+ event LogPolicyServicePolicyExpirationUpdated(NftId indexed policyNftId, Timestamp indexed expiredAt);
20
+ event LogPolicyServicePolicyClosed(NftId indexed policyNftId);
21
21
 
22
22
  error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
23
23
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
@@ -9,11 +9,10 @@ import {StateId} from "../type/StateId.sol";
9
9
 
10
10
  interface IRiskService is IService {
11
11
 
12
- event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
13
- event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
14
- event LogRiskServiceRiskLocked(NftId productNftId, RiskId riskId);
15
- event LogRiskServiceRiskUnlocked(NftId productNftId, RiskId riskId);
16
- event LogRiskServiceRiskClosed(NftId productNftId, RiskId riskId);
12
+ event LogRiskServiceRiskCreated(NftId indexed productNftId, RiskId indexed riskId);
13
+ event LogRiskServiceRiskUpdated(NftId indexed productNftId, RiskId indexed riskId);
14
+ event LogRiskServiceRiskLocked(NftId indexed productNftId, RiskId indexed riskId, bool indexed locked);
15
+ event LogRiskServiceRiskClosed(NftId indexed productNftId, RiskId indexed riskId);
17
16
 
18
17
  error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
19
18
  error ErrorRiskServiceRiskNotActive(NftId productNftId, RiskId riskId);
@@ -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
@@ -119,10 +119,10 @@ contract RiskService is
119
119
 
120
120
  if (locked) {
121
121
  instance.getRiskSet().deactivate(riskId);
122
- emit LogRiskServiceRiskLocked(productNftId, riskId);
122
+ emit LogRiskServiceRiskLocked(productNftId, riskId, true);
123
123
  } else {
124
124
  instance.getRiskSet().activate(riskId);
125
- emit LogRiskServiceRiskUnlocked(productNftId, riskId);
125
+ emit LogRiskServiceRiskLocked(productNftId, riskId, false);
126
126
  }
127
127
  }
128
128
 
@@ -8,10 +8,10 @@ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
8
8
 
9
9
  contract ChainNft is ERC721Enumerable {
10
10
 
11
- event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
11
+ event LogTokenInterceptorAddress(uint256 indexed tokenId, address indexed interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
@@ -19,9 +19,9 @@ interface IRegistry is
19
19
  IERC165
20
20
  {
21
21
 
22
- event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
24
- event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
22
+ event LogRegistryObjectRegistered(NftId indexed nftId, NftId indexed parentNftId, ObjectType indexed objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
+ event LogRegistryServiceRegistered(NftId indexed nftId, VersionPart indexed majorVersion, ObjectType indexed domain);
24
+ event LogRegistryChainRegistryRegistered(NftId indexed nftId, uint256 indexed chainId, address indexed chainRegistryAddress);
25
25
 
26
26
  // initialize
27
27
  error ErrorRegistryCallerNotDeployer();
@@ -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
 
@@ -21,8 +21,8 @@ import {VersionPart} from "../type/Version.sol";
21
21
  contract ReleaseAdmin is
22
22
  AccessAdmin
23
23
  {
24
- event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
25
- event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
24
+ event LogReleaseAdminReleaseLocked(VersionPart indexed release, bool indexed locked);
25
+ event LogReleaseAdminServiceLocked(VersionPart indexed release, address indexed service, bool indexed locked);
26
26
 
27
27
  error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
28
28
  error ErrorReleaseAdminNotService(address notService);
@@ -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
@@ -130,7 +137,7 @@ contract ReleaseAdmin is
130
137
  // effects
131
138
  accessManager.setLocked(locked);
132
139
 
133
- emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
140
+ emit LogReleaseAdminReleaseLocked(getRelease(), locked);
134
141
  }
135
142
 
136
143
 
@@ -148,7 +155,7 @@ contract ReleaseAdmin is
148
155
 
149
156
  _setTargetLocked(address(service), locked);
150
157
 
151
- emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
158
+ emit LogReleaseAdminServiceLocked(service.getRelease(), address(service), locked);
152
159
  }
153
160
 
154
161
  //--- private functions -------------------------------------------------//
@@ -38,10 +38,9 @@ contract ReleaseRegistry is
38
38
  {
39
39
  uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
40
40
 
41
- event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
42
- event LogReleaseActivation(VersionPart release);
43
- event LogReleaseDisabled(VersionPart release);
44
- event LogReleaseEnabled(VersionPart release);
41
+ event LogReleaseCreated(IAccessAdmin indexed admin, VersionPart indexed release, bytes32 indexed salt);
42
+ event LogReleaseActivated(VersionPart indexed release);
43
+ event LogReleaseEnabled(VersionPart indexed release, bool indexed active);
45
44
 
46
45
  // constructor
47
46
  error ErrorReleaseRegistryNotRegistry(Registry registry);
@@ -168,7 +167,7 @@ contract ReleaseRegistry is
168
167
  _releaseInfo[releaseVersion].auth = serviceAuthorization;
169
168
  _releaseInfo[releaseVersion].releaseAdmin = address(releaseAdmin);
170
169
 
171
- emit LogReleaseCreation(releaseAdmin, releaseVersion, releaseSalt);
170
+ emit LogReleaseCreated(releaseAdmin, releaseVersion, releaseSalt);
172
171
  }
173
172
 
174
173
  function registerService(IService service)
@@ -270,7 +269,7 @@ contract ReleaseRegistry is
270
269
 
271
270
  _setReleaseLocked(release, false);
272
271
 
273
- emit LogReleaseActivation(release);
272
+ emit LogReleaseActivated(release);
274
273
  }
275
274
 
276
275
  /// @dev stop/resume operations with restricted functions
@@ -284,12 +283,12 @@ contract ReleaseRegistry is
284
283
  checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
285
284
  _releaseInfo[release].state = ACTIVE();
286
285
  _releaseInfo[release].disabledAt = TimestampLib.max();
287
- emit LogReleaseEnabled(release);
286
+ emit LogReleaseEnabled(release, true);
288
287
  } else {
289
288
  checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
290
289
  _releaseInfo[release].state = PAUSED();
291
290
  _releaseInfo[release].disabledAt = TimestampLib.current();
292
- emit LogReleaseDisabled(release);
291
+ emit LogReleaseEnabled(release, false);
293
292
  }
294
293
 
295
294
  _setReleaseLocked(release, !active);
@@ -18,9 +18,9 @@ contract TokenRegistry is
18
18
  AccessManaged,
19
19
  IRegistryLinked
20
20
  {
21
- event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
22
- event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
23
- event LogTokenRegistryTokenStateSet(ChainId chainId, address token, VersionPart release, bool active);
21
+ event LogTokenRegistryTokenRegistered(ChainId indexed chainId, address indexed token, uint256 indexed decimals, string symbol);
22
+ event LogTokenRegistryTokenGlobalStateSet(ChainId indexed chainId, address indexed token, bool indexed active);
23
+ event LogTokenRegistryTokenStateSet(ChainId indexed chainId, address indexed token, VersionPart indexed release, bool active);
24
24
 
25
25
  error ErrorTokenRegistryChainIdZero();
26
26
  error ErrorTokenRegistryTokenAddressZero();
@@ -189,8 +189,8 @@ contract ComponentService is
189
189
  emit LogComponentServiceComponentFeesWithdrawn(
190
190
  componentNftId,
191
191
  componentOwner,
192
- address(tokenHandler.TOKEN()),
193
- withdrawnAmount);
192
+ withdrawnAmount,
193
+ address(tokenHandler.TOKEN()));
194
194
 
195
195
  // interactions
196
196
  // transfer amount to component owner
@@ -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(
@@ -0,0 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
5
+ import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+
7
+ /// @dev component base class
8
+ /// component examples are product, distribution, pool and oracle
9
+ interface IAuthorizedComponent is
10
+ IComponent
11
+ {
12
+ /// @dev returns the initial component authorization specification.
13
+ function getAuthorization() external view returns (IAuthorization authorization);
14
+
15
+ }
@@ -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);
@@ -45,22 +45,44 @@ interface IComponentService is
45
45
  error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
46
46
  error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
47
47
 
48
- event LogComponentServiceComponentLocked(address component, bool locked);
49
- 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
- event LogComponentServiceComponentFeesWithdrawn(NftId componentNftId, address recipient, address token, Amount withdrawnAmount);
53
- event LogComponentServiceProductFeesUpdated(NftId productNftId);
54
- event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
55
- event LogComponentServicePoolFeesUpdated(NftId poolNftId);
48
+ event LogComponentServiceComponentLocked(address indexed component, bool indexed locked);
49
+ event LogComponentServiceTokenHandlerDeployed(NftId indexed componentNftId, address indexed tokenHandler, address indexed token);
50
+ event LogComponentServiceRegistered(NftId indexed instanceNftId, NftId indexed componentNftId, ObjectType indexed componentType, address component, address token, address initialOwner);
51
+ event LogComponentServiceComponentFeesWithdrawn(NftId indexed componentNftId, address indexed recipient, Amount indexed withdrawnAmount, address token);
52
+ event LogComponentServiceProductFeesUpdated(NftId indexed productNftId);
53
+ event LogComponentServiceDistributionFeesUpdated(NftId indexed distributionNftId);
54
+ event LogComponentServicePoolFeesUpdated(NftId indexed poolNftId);
56
55
  event LogComponentServiceUpdateFee(
57
- NftId nftId,
56
+ NftId indexed nftId,
58
57
  string feeName,
59
58
  UFixed previousFractionalFee,
60
59
  Amount previousFixedFee,
61
- UFixed newFractionalFee,
62
- Amount newFixedFee
60
+ UFixed indexed newFractionalFee,
61
+ Amount indexed 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
 
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IInstance} from "../instance/IInstance.sol";
8
8
  import {NftId} from "../type/NftId.sol";
@@ -11,7 +11,7 @@ import {ObjectType} from "../type/ObjectType.sol";
11
11
  /// @dev component base class
12
12
  /// component examples are product, distribution, pool and oracle
13
13
  interface IInstanceLinkedComponent is
14
- IComponent
14
+ IAuthorizedComponent
15
15
  {
16
16
  error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
17
17
  error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
@@ -24,7 +24,4 @@ interface IInstanceLinkedComponent is
24
24
  /// @dev defines the instance to which this component is linked to
25
25
  function getInstance() external view returns (IInstance instance);
26
26
 
27
- /// @dev returns the initial component authorization specification.
28
- function getAuthorization() external view returns (IAuthorization authorization);
29
-
30
27
  }
@@ -11,7 +11,7 @@ interface INftOwnable is
11
11
  IERC165,
12
12
  IRegistryLinked
13
13
  {
14
- event LogNftOwnableNftLinkedToAddress(NftId nftId, address owner);
14
+ event LogNftOwnableNftLinkedToAddress(NftId indexed nftId, address indexed owner);
15
15
 
16
16
  error ErrorNftOwnableInitialOwnerZero();
17
17
  error ErrorNftOwnableNotOwner(address account);
@@ -1,27 +1,25 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
-
9
- import {Amount} from "../type/Amount.sol";
10
- import {Component} from "./Component.sol";
11
- import {IComponentService} from "./IComponentService.sol";
12
- import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
13
4
  import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
14
6
  import {IComponents} from "../instance/module/IComponents.sol";
15
- import {IInstanceService} from "../instance/IInstanceService.sol";
7
+ import {IComponentService} from "./IComponentService.sol";
16
8
  import {IInstance} from "../instance/IInstance.sol";
9
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
10
+ import {IInstanceService} from "../instance/IInstanceService.sol";
11
+ import {IOracleService} from "../oracle/IOracleService.sol";
12
+
13
+ import {Amount} from "../type/Amount.sol";
14
+ import {Component} from "./Component.sol";
17
15
  import {InstanceReader} from "../instance/InstanceReader.sol";
18
16
  import {IRegistry} from "../registry/IRegistry.sol";
19
17
  import {NftId} from "../type/NftId.sol";
20
- import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
21
- import {VersionPart} from "../type/Version.sol";
18
+ import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
22
20
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
23
- import {IAccess} from "../authorization/IAccess.sol";
24
21
  import {TokenHandler} from "../shared/TokenHandler.sol";
22
+ import {Timestamp} from "../type/Timestamp.sol";
25
23
  import {VersionPart} from "../type/Version.sol";
26
24
 
27
25
  // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
@@ -38,8 +36,23 @@ abstract contract InstanceLinkedComponent is
38
36
  InstanceReader _instanceReader; // instance reader for this component
39
37
  IAuthorization _initialAuthorization;
40
38
  IComponentService _componentService;
39
+ IOracleService _oracleService;
40
+ }
41
+
42
+ //--- view functions ----------------------------------------------------//
43
+
44
+ /// @inheritdoc IInstanceLinkedComponent
45
+ function getInstance() public view virtual override returns (IInstance instance) {
46
+ return _getInstanceLinkedComponentStorage()._instance;
47
+ }
48
+
49
+
50
+ /// @inheritdoc IAuthorizedComponent
51
+ function getAuthorization() external view virtual returns (IAuthorization authorization) {
52
+ return _getInstanceLinkedComponentStorage()._initialAuthorization;
41
53
  }
42
54
 
55
+
43
56
  /// @inheritdoc IInstanceLinkedComponent
44
57
  function withdrawFees(Amount amount)
45
58
  external
@@ -51,22 +64,49 @@ abstract contract InstanceLinkedComponent is
51
64
  return _withdrawFees(amount);
52
65
  }
53
66
 
54
- /// @inheritdoc IInstanceLinkedComponent
55
- function getInstance() public view virtual override returns (IInstance instance) {
56
- return _getInstanceLinkedComponentStorage()._instance;
67
+ //--- internal functions ------------------------------------------------//
68
+
69
+ function _sendRequest(
70
+ NftId oracleNftId,
71
+ bytes memory requestData,
72
+ Timestamp expiryAt,
73
+ string memory callbackMethod
74
+ )
75
+ internal
76
+ virtual
77
+ returns (RequestId requestId)
78
+ {
79
+ return _getInstanceLinkedComponentStorage()._oracleService.request(
80
+ oracleNftId,
81
+ requestData,
82
+ expiryAt,
83
+ callbackMethod);
57
84
  }
58
85
 
59
- /// @inheritdoc IInstanceLinkedComponent
60
- function getAuthorization() external view virtual returns (IAuthorization authorization) {
61
- return _getInstanceLinkedComponentStorage()._initialAuthorization;
86
+
87
+ function _cancelRequest(RequestId requestId)
88
+ internal
89
+ virtual
90
+ {
91
+ _getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
92
+ }
93
+
94
+
95
+ function _resendResponse(RequestId requestId)
96
+ internal
97
+ virtual
98
+ {
99
+ _getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
62
100
  }
63
101
 
102
+
64
103
  function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
65
104
  assembly {
66
105
  $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
67
106
  }
68
107
  }
69
108
 
109
+
70
110
  function __InstanceLinkedComponent_init(
71
111
  address registry,
72
112
  NftId parentNftId,
@@ -106,6 +146,7 @@ abstract contract InstanceLinkedComponent is
106
146
  $._instanceReader = $._instance.getInstanceReader();
107
147
  $._initialAuthorization = authorization;
108
148
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
149
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
109
150
 
110
151
  // register interfaces
111
152
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);