@etherisc/gif-next 3.0.0-10753eb-998 → 3.0.0-1607827-716

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 (392) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +12 -12
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +42 -42
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +2 -2
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +99 -99
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +59 -59
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +7 -7
  33. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
  34. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
  35. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
  36. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
  37. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
  38. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
  39. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
  40. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2433 -0
  41. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
  42. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
  43. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
  44. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -0
  45. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +13 -13
  48. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  50. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  51. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +66 -66
  52. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  53. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  54. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  55. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +41 -101
  57. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +1 -1
  59. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +7 -7
  60. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  61. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +57 -102
  62. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  63. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +20 -20
  64. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  65. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +13 -13
  66. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  67. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  68. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  69. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +85 -69
  70. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  71. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +20 -20
  72. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +1 -1
  73. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +20 -20
  74. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  75. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +2 -2
  78. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  80. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  81. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +102 -19
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  83. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +21 -21
  84. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  85. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  87. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +38 -43
  88. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  89. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  90. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +52 -65
  93. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +14 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +26 -0
  98. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  99. package/artifacts/contracts/instance/Instance.sol/Instance.json +31 -13
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +76 -76
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +127 -44
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +46 -20
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -39
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +58 -58
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +74 -65
  114. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  115. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  117. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +83 -96
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  120. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -3
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +40 -4
  128. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  133. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +98 -15
  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 +83 -0
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +1 -1
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +84 -1
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +39 -39
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -48
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1 -1
  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 +73 -80
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -60
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +15 -22
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1 -1
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +10 -10
  163. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  164. package/artifacts/contracts/pool/Pool.sol/Pool.json +1 -1
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +78 -78
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -61
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +29 -29
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -42
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -2
  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 +65 -65
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +65 -65
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -7
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +3 -3
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +6 -6
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -2
  193. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +16 -34
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +66 -66
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +7 -7
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +58 -58
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +49 -49
  205. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  206. package/artifacts/contracts/product/Product.sol/Product.json +2 -2
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.json +42 -76
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +39 -47
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +56 -6
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +16 -16
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  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 +114 -58
  220. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
  222. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
  224. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  226. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +35 -35
  228. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2 -2
  230. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  232. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +88 -95
  233. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  234. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  235. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  236. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -10
  237. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +68 -68
  240. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +59 -59
  242. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  244. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +10 -10
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +35 -35
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +10 -16
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  282. package/artifacts/contracts/staking/Staking.sol/Staking.json +71 -71
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +51 -51
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +30 -36
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +38 -38
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -198
  295. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +9 -9
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  315. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  316. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +17 -22
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  329. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +20 -20
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  334. package/contracts/accounting/IAccountingService.sol +2 -2
  335. package/contracts/distribution/IDistributionService.sol +5 -5
  336. package/contracts/examples/crop/AccountingToken.sol +26 -0
  337. package/contracts/examples/crop/CropPool.sol +89 -0
  338. package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
  339. package/contracts/examples/crop/CropProduct.sol +512 -0
  340. package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
  341. package/contracts/examples/crop/Location.sol +50 -0
  342. package/contracts/examples/fire/FireProduct.sol +1 -1
  343. package/contracts/examples/flight/FlightLib.sol +11 -39
  344. package/contracts/examples/flight/FlightOracle.sol +1 -98
  345. package/contracts/examples/flight/FlightOracleAuthorization.sol +2 -3
  346. package/contracts/examples/flight/FlightProduct.sol +11 -8
  347. package/contracts/examples/flight/FlightProductAuthorization.sol +1 -1
  348. package/contracts/examples/unpermissioned/SimpleProduct.sol +1 -5
  349. package/contracts/instance/BundleSet.sol +3 -4
  350. package/contracts/instance/IInstance.sol +4 -1
  351. package/contracts/instance/IInstanceService.sol +6 -1
  352. package/contracts/instance/Instance.sol +8 -0
  353. package/contracts/instance/InstanceAdmin.sol +2 -1
  354. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  355. package/contracts/instance/InstanceReader.sol +36 -3
  356. package/contracts/instance/InstanceService.sol +61 -37
  357. package/contracts/instance/ProductStore.sol +2 -1
  358. package/contracts/instance/RequestSet.sol +63 -0
  359. package/contracts/instance/RiskSet.sol +3 -4
  360. package/contracts/instance/TargetNames.sol +1 -0
  361. package/contracts/instance/base/BalanceStore.sol +7 -7
  362. package/contracts/instance/base/ObjectCounter.sol +7 -5
  363. package/contracts/instance/base/ObjectSet.sol +9 -1
  364. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  365. package/contracts/oracle/IOracleComponent.sol +10 -0
  366. package/contracts/oracle/IOracleService.sol +1 -1
  367. package/contracts/oracle/Oracle.sol +49 -25
  368. package/contracts/oracle/OracleService.sol +26 -23
  369. package/contracts/pool/BundleService.sol +2 -2
  370. package/contracts/pool/IBundleService.sol +8 -9
  371. package/contracts/pool/IPoolComponent.sol +1 -1
  372. package/contracts/pool/IPoolService.sol +7 -7
  373. package/contracts/product/IClaimService.sol +3 -3
  374. package/contracts/product/IPolicyService.sol +5 -5
  375. package/contracts/product/IRiskService.sol +1 -3
  376. package/contracts/product/Product.sol +1 -5
  377. package/contracts/product/RiskService.sol +3 -8
  378. package/contracts/registry/ChainNft.sol +8 -7
  379. package/contracts/registry/IRegistry.sol +9 -8
  380. package/contracts/registry/Registry.sol +11 -10
  381. package/contracts/registry/ReleaseRegistry.sol +5 -6
  382. package/contracts/registry/TokenRegistry.sol +1 -1
  383. package/contracts/shared/IComponentService.sol +6 -6
  384. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  385. package/contracts/staking/IStaking.sol +23 -23
  386. package/contracts/staking/IStakingService.sol +5 -5
  387. package/contracts/staking/StakingService.sol +2 -3
  388. package/contracts/staking/TargetHandler.sol +2 -2
  389. package/contracts/type/RequestId.sol +6 -0
  390. package/contracts/type/RiskId.sol +8 -8
  391. package/contracts/upgradeability/ProxyManager.sol +2 -2
  392. package/package.json +1 -1
@@ -18,18 +18,19 @@ import {IRisk} from "../instance/module/IRisk.sol";
18
18
  import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
19
19
  import {Amount} from "../type/Amount.sol";
20
20
  import {BundleSet} from "./BundleSet.sol";
21
- import {BUNDLE, COMPONENT, DISTRIBUTION, PREMIUM, POLICY} from "../type/ObjectType.sol";
21
+ import {BUNDLE, COMPONENT, DISTRIBUTION, PREMIUM, POLICY, PRODUCT, FEE, RISK, CLAIM, PAYOUT, ObjectType} from "../type/ObjectType.sol";
22
22
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
23
23
  import {DistributorType} from "../type/DistributorType.sol";
24
24
  import {InstanceAdmin} from "./InstanceAdmin.sol";
25
25
  import {InstanceStore} from "./InstanceStore.sol";
26
- import {Key32} from "../type/Key32.sol";
26
+ import {Key32, Key32Lib} from "../type/Key32.sol";
27
27
  import {NftId} from "../type/NftId.sol";
28
28
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
29
  import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
30
  import {ProductStore} from "./ProductStore.sol";
31
31
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
32
32
  import {RequestId} from "../type/RequestId.sol";
33
+ import {RequestSet} from "./RequestSet.sol";
33
34
  import {RiskId} from "../type/RiskId.sol";
34
35
  import {RiskSet} from "./RiskSet.sol";
35
36
  import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
@@ -56,6 +57,7 @@ contract InstanceReader {
56
57
  ProductStore internal _productStore;
57
58
  BundleSet internal _bundleSet;
58
59
  RiskSet internal _riskSet;
60
+ RequestSet internal _requestSet;
59
61
  IDistributionService internal _distributionService;
60
62
 
61
63
  /// @dev This initializer needs to be called from the instance itself.
@@ -85,6 +87,7 @@ contract InstanceReader {
85
87
  _productStore = _instance.getProductStore();
86
88
  _bundleSet = _instance.getBundleSet();
87
89
  _riskSet = _instance.getRiskSet();
90
+ _requestSet = _instance.getRequestSet();
88
91
  _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
89
92
  }
90
93
 
@@ -366,6 +369,18 @@ contract InstanceReader {
366
369
  return getState(requestId.toKey32());
367
370
  }
368
371
 
372
+ function getActiveRequests(NftId oracleNftId) external view returns(uint256 numberOfRequests) {
373
+ return _requestSet.activeRequests(oracleNftId);
374
+ }
375
+
376
+ function getActiveRequestAt(NftId oracleNftId, uint256 idx) external view returns(RequestId requestId) {
377
+ return _requestSet.activeRequestAt(oracleNftId, idx);
378
+ }
379
+
380
+ function isRequestActive(NftId oracleNftId, RequestId requestId) external view returns(bool isActive) {
381
+ return _requestSet.contains(oracleNftId, requestId);
382
+ }
383
+
369
384
  //--- pool functions -----------------------------------------------------------//
370
385
 
371
386
  /// @dev Returns the pool info for the given pool NFT ID.
@@ -595,7 +610,25 @@ contract InstanceReader {
595
610
 
596
611
 
597
612
  function getMetadata(Key32 key) public view returns (IBaseStore.Metadata memory metadata) {
598
- return _store.getMetadata(key);
613
+ ObjectType objectType = Key32Lib.toObjectType(key);
614
+
615
+ if (objectType == PRODUCT()) {
616
+ return _productStore.getMetadata(key);
617
+ } else if (objectType == FEE()) {
618
+ return _productStore.getMetadata(key);
619
+ } else if (objectType == RISK()) {
620
+ return _productStore.getMetadata(key);
621
+ } else if (objectType == POLICY()) {
622
+ return _productStore.getMetadata(key);
623
+ } else if (objectType == PREMIUM()) {
624
+ return _productStore.getMetadata(key);
625
+ } else if (objectType == CLAIM()) {
626
+ return _productStore.getMetadata(key);
627
+ } else if (objectType == PAYOUT()) {
628
+ return _productStore.getMetadata(key);
629
+ } else {
630
+ return _store.getMetadata(key);
631
+ }
599
632
  }
600
633
 
601
634
 
@@ -22,6 +22,7 @@ import {InstanceStore} from "./InstanceStore.sol";
22
22
  import {NftId} from "../type/NftId.sol";
23
23
  import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
24
24
  import {ProductStore} from "./ProductStore.sol";
25
+ import {RequestSet} from "./RequestSet.sol";
25
26
  import {RiskSet} from "./RiskSet.sol";
26
27
  import {RoleId} from "../type/RoleId.sol";
27
28
  import {Seconds} from "../type/Seconds.sol";
@@ -49,6 +50,7 @@ contract InstanceService is
49
50
  address internal _masterInstanceReader;
50
51
  address internal _masterInstanceBundleSet;
51
52
  address internal _masterInstanceRiskSet;
53
+ address internal _masterInstanceRequestSet;
52
54
  address internal _masterInstanceStore;
53
55
  address internal _masterProductStore;
54
56
 
@@ -325,49 +327,70 @@ contract InstanceService is
325
327
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
326
328
  if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
327
329
  if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
330
+ if(_masterInstanceRequestSet != address(0)) { revert ErrorInstanceServiceMasterRequestSetAlreadySet(); }
328
331
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
329
332
 
330
333
  {
331
334
  IInstance instance = IInstance(instanceAddress);
332
335
  address accessManagerAddress = instance.authority();
333
336
  InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
334
- address instanceAdminAddress = address(instanceAdmin);
335
- InstanceReader instanceReader = instance.getInstanceReader();
336
- address instanceReaderAddress = address(instanceReader);
337
- BundleSet bundleSet = instance.getBundleSet();
338
- address bundleSetAddress = address(bundleSet);
339
- RiskSet riskSet = instance.getRiskSet();
340
- address riskSetAddress = address(riskSet);
341
- InstanceStore instanceStore = instance.getInstanceStore();
342
- address instanceStoreAddress = address(instanceStore);
343
- ProductStore productStore = instance.getProductStore();
344
- address productStoreAddress = address(productStore);
345
-
346
- if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
347
- if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
348
- if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
349
- if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
350
- if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
351
- if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
352
- if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
353
337
 
354
- if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
355
- if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
356
- if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
357
- if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
358
- if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
359
- if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
360
- if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
361
- if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
362
-
363
- _masterAccessManager = accessManagerAddress;
364
- _masterInstanceAdmin = instanceAdminAddress;
365
- _masterInstance = instanceAddress;
366
- _masterInstanceReader = instanceReaderAddress;
367
- _masterInstanceBundleSet = bundleSetAddress;
368
- _masterInstanceRiskSet = riskSetAddress;
369
- _masterInstanceStore = instanceStoreAddress;
370
- _masterProductStore = productStoreAddress;
338
+ {
339
+ address instanceAdminAddress = address(instanceAdmin);
340
+ InstanceReader instanceReader = instance.getInstanceReader();
341
+ address instanceReaderAddress = address(instanceReader);
342
+
343
+ if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
344
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
345
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
346
+
347
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
348
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
349
+
350
+ _masterAccessManager = accessManagerAddress;
351
+ _masterInstanceAdmin = instanceAdminAddress;
352
+ _masterInstance = instanceAddress;
353
+ _masterInstanceReader = instanceReaderAddress;
354
+ }
355
+
356
+ {
357
+ BundleSet bundleSet = instance.getBundleSet();
358
+ address bundleSetAddress = address(bundleSet);
359
+ RiskSet riskSet = instance.getRiskSet();
360
+ address riskSetAddress = address(riskSet);
361
+ RequestSet requestSet = instance.getRequestSet();
362
+ address requestSetAddress = address(requestSet);
363
+
364
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
365
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
366
+ if(requestSetAddress == address(0)) { revert ErrorInstanceServiceRequestSetZero(); }
367
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
368
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
369
+ if(requestSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRequestSetAuthorityMismatch(); }
370
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
371
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
372
+ if(requestSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRequestSetInstanceMismatch(); }
373
+
374
+ _masterInstanceBundleSet = bundleSetAddress;
375
+ _masterInstanceRiskSet = riskSetAddress;
376
+ _masterInstanceRequestSet = requestSetAddress;
377
+ }
378
+
379
+ {
380
+ InstanceStore instanceStore = instance.getInstanceStore();
381
+ address instanceStoreAddress = address(instanceStore);
382
+ ProductStore productStore = instance.getProductStore();
383
+ address productStoreAddress = address(productStore);
384
+
385
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
386
+ if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
387
+
388
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
389
+ if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
390
+
391
+ _masterInstanceStore = instanceStoreAddress;
392
+ _masterProductStore = productStoreAddress;
393
+ }
371
394
  }
372
395
 
373
396
  {
@@ -377,7 +400,7 @@ contract InstanceService is
377
400
 
378
401
  emit LogInstanceServiceMasterInstanceRegistered(
379
402
  masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
380
- _masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceStore, _masterProductStore);
403
+ _masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceRequestSet, _masterInstanceStore, _masterProductStore);
381
404
  }
382
405
  }
383
406
 
@@ -451,6 +474,7 @@ contract InstanceService is
451
474
  productStore: ProductStore(Clones.clone(address(_masterProductStore))),
452
475
  bundleSet: BundleSet(Clones.clone(_masterInstanceBundleSet)),
453
476
  riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
477
+ requestSet: RequestSet(Clones.clone(address(_masterInstanceRequestSet))),
454
478
  instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
455
479
  }),
456
480
  getRegistry(),
@@ -113,7 +113,8 @@ contract ProductStore is
113
113
  }
114
114
 
115
115
  //--- Risk --------------------------------------------------------------//
116
- function createRisk(RiskId riskId, IRisk.RiskInfo memory info) external restricted() {
116
+ function createRisk(IRisk.RiskInfo memory info) external restricted() returns (RiskId riskId) {
117
+ riskId = _createNextRiskId();
117
118
  Key32 key = riskId.toKey32();
118
119
  _createMetadata(key);
119
120
  _risks[key] = info;
@@ -0,0 +1,63 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponents} from "./module/IComponents.sol";
5
+
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
8
+ import {LibRequestIdSet} from "../type/RequestIdSet.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ObjectSet} from "./base/ObjectSet.sol";
11
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
12
+ import {RequestId, RequestIdLib} from "../type/RequestId.sol";
13
+
14
+ contract RequestSet is
15
+ ObjectSet
16
+ {
17
+ using LibNftIdSet for LibNftIdSet.Set;
18
+ using LibRequestIdSet for LibRequestIdSet.Set;
19
+
20
+ event LogRequestSetRequestAdded(NftId indexed oracleNftId, RequestId indexed requestId);
21
+ event LogRequestSetRequestRemoved(NftId indexed oracleNftId, RequestId indexed requestId);
22
+
23
+ error ErrorRequestSetOracleNotRegistered(NftId oracleNftId);
24
+
25
+ /// @dev add a new request to a oracle registerd with this instance
26
+ // the corresponding oracles existence is checked via instance reader
27
+ function add(NftId oracleNftId, RequestId requestId) external restricted() {
28
+ IComponents.ComponentInfo memory componentInfo = ObjectSetHelperLib.getComponentInfo(_instanceAddress, oracleNftId);
29
+
30
+ // ensure pool is registered with instance
31
+ if (bytes(componentInfo.name).length == 0) {
32
+ revert ErrorRequestSetOracleNotRegistered(oracleNftId);
33
+ }
34
+
35
+ _add(oracleNftId, _toRequestKey32(requestId));
36
+ emit LogRequestSetRequestAdded(oracleNftId, requestId);
37
+ }
38
+
39
+ function remove(NftId oracleNftId, RequestId requestId) external restricted() {
40
+ _remove(oracleNftId, _toRequestKey32(requestId));
41
+ emit LogRequestSetRequestRemoved(oracleNftId, requestId);
42
+ }
43
+
44
+ function _toRequestKey32(RequestId requestId) private pure returns (Key32) {
45
+ return requestId.toKey32();
46
+ }
47
+
48
+ function activeRequests(NftId oracleNftId) external view returns (uint256 numberOfRequests) {
49
+ return _objects(oracleNftId);
50
+ }
51
+
52
+ function activeRequestAt(NftId oracleNftId, uint256 idx) external view returns (RequestId requestId) {
53
+ return _toRequestId(_getActiveObject(oracleNftId, idx));
54
+ }
55
+
56
+ function contains(NftId oracleNftId, RequestId requestId) external view returns (bool) {
57
+ return _contains(oracleNftId, _toRequestKey32(requestId));
58
+ }
59
+
60
+ function _toRequestId(Key32 key) private pure returns (RequestId) {
61
+ return RequestIdLib.toRequestId(key.toKeyId());
62
+ }
63
+ }
@@ -17,8 +17,7 @@ contract RiskSet is
17
17
  event LogRiskSetPolicyUnlinked(RiskId indexed riskId, NftId indexed policyNftId);
18
18
 
19
19
  event LogRiskSetRiskAdded(NftId indexed productNftId, RiskId indexed riskId);
20
- event LogRiskSetRiskActivated(NftId indexed poolNftId, RiskId indexed riskId);
21
- event LogRiskSetRiskPaused(NftId indexed poolNftId, RiskId indexed riskId);
20
+ event LogRiskSetRiskActivated(NftId indexed poolNftId, RiskId indexed riskId, bool indexed active);
22
21
 
23
22
  error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
24
23
  error ErrorRiskSetRiskUnknown(RiskId riskId);
@@ -68,14 +67,14 @@ contract RiskSet is
68
67
  function activate(RiskId riskId) external restricted() {
69
68
  NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
70
69
  _activate(productNftId, riskId.toKey32());
71
- emit LogRiskSetRiskActivated(productNftId, riskId);
70
+ emit LogRiskSetRiskActivated(productNftId, riskId, true);
72
71
  }
73
72
 
74
73
  /// @dev Applications linked to paused/archived risks may not be underwritten
75
74
  function deactivate(RiskId riskId) external restricted() {
76
75
  NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
77
76
  _deactivate(productNftId, riskId.toKey32());
78
- emit LogRiskSetRiskPaused(productNftId, riskId);
77
+ emit LogRiskSetRiskActivated(productNftId, riskId, false);
79
78
  }
80
79
 
81
80
  function checkRisk(NftId productNftId, RiskId riskId)
@@ -7,4 +7,5 @@ string constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
7
7
  string constant PRODUCT_STORE_TARGET_NAME = "ProductStore";
8
8
  string constant BUNDLE_SET_TARGET_NAME = "BundleSet";
9
9
  string constant RISK_SET_TARGET_NAME = "RiskSet";
10
+ string constant REQUEST_SET_TARGET_NAME = "RequestSet";
10
11
 
@@ -10,16 +10,16 @@ contract BalanceStore {
10
10
  error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
11
11
  error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
12
12
 
13
- event LogBalanceStoreTargetRegistered(NftId targetNftId);
13
+ event LogBalanceStoreTargetRegistered(NftId indexed targetNftId);
14
14
 
15
- event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
- event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
15
+ event LogBalanceStoreFeesIncreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
+ event LogBalanceStoreFeesDecreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
17
17
 
18
- event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
- event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
18
+ event LogBalanceStoreLockedIncreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
+ event LogBalanceStoreLockedDecreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
20
20
 
21
- event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
- event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
21
+ event LogBalanceStoreBalanceIncreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
+ event LogBalanceStoreBalanceDecreased(NftId indexed targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
23
23
 
24
24
  mapping(NftId nftId => Amount balance) private _balanceAmount;
25
25
  mapping(NftId nftId => Amount locked) private _lockedAmount;
@@ -1,20 +1,22 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
4
  import {NftId} from "../../type/NftId.sol";
6
- import {Amount} from "../../type/Amount.sol";
7
5
  import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
6
+ import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
8
7
 
9
8
  contract ObjectCounter {
10
9
 
11
- // TODO refactor risk id
12
- // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
-
10
+ uint64 private _riskCounter = 0;
14
11
  uint256 private _requestCounter = 0;
15
12
 
16
13
  function _createNextRequestId() internal returns (RequestId requestId) {
17
14
  _requestCounter++;
18
15
  requestId = RequestIdLib.toRequestId(_requestCounter);
19
16
  }
17
+
18
+ function _createNextRiskId() internal returns (RiskId riskId) {
19
+ _riskCounter++;
20
+ riskId = RiskIdLib.toRiskId(_riskCounter);
21
+ }
20
22
  }
@@ -12,7 +12,7 @@ contract ObjectSet is
12
12
  {
13
13
  using LibKey32Set for LibKey32Set.Set;
14
14
 
15
- event LogObjectSetInitialized(address instance);
15
+ event LogObjectSetInitialized(address indexed instance);
16
16
 
17
17
  error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
18
18
 
@@ -43,6 +43,14 @@ contract ObjectSet is
43
43
  activeSet.add(key);
44
44
  }
45
45
 
46
+ function _remove(NftId componentNftId, Key32 key) internal {
47
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
48
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
49
+
50
+ allSet.remove(key);
51
+ activeSet.remove(key);
52
+ }
53
+
46
54
  function _activate(NftId componentNftId, Key32 key) internal {
47
55
  _activeObjects[componentNftId].add(key);
48
56
  }
@@ -2,6 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IBundle} from "../module/IBundle.sol";
5
+ import {IComponents} from "../module/IComponents.sol";
5
6
  import {IInstance} from "../IInstance.sol";
6
7
  import {IRisk} from "../module/IRisk.sol";
7
8
  import {NftId} from "../../type/NftId.sol";
@@ -11,7 +12,6 @@ import {RiskId} from "../../type/RiskId.sol";
11
12
  library ObjectSetHelperLib {
12
13
 
13
14
  function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
14
-
15
15
  return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
16
16
  }
17
17
 
@@ -27,4 +27,8 @@ library ObjectSetHelperLib {
27
27
  return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
28
28
  }
29
29
 
30
+ function getComponentInfo(address instanceAddress, NftId componentNftId) public view returns (IComponents.ComponentInfo memory) {
31
+ return IInstance(instanceAddress).getInstanceReader().getComponentInfo(componentNftId);
32
+ }
33
+
30
34
  }
@@ -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
  }
@@ -13,7 +13,7 @@ interface IOracleService is IService {
13
13
 
14
14
  event LogOracleServiceRequestCreated(RequestId indexed requestId, NftId indexed requesterNftId, NftId indexed oracleNftId, Timestamp expiryAt);
15
15
  event LogOracleServiceResponseProcessed(RequestId indexed requestId, NftId indexed requesterNftId, NftId indexed oracleNftId);
16
- event LogOracleServiceDeliveryFailed(RequestId indexed requestId, address indexed requesterAddress, string indexed functionSignature);
16
+ event LogOracleServiceDeliveryFailed(RequestId indexed requestId, address indexed requesterAddress, string functionSignature);
17
17
  event LogOracleServiceResponseResent(RequestId indexed requestId, NftId indexed requesterNftId);
18
18
  event LogOracleServiceRequestCancelled(RequestId indexed requestId, NftId indexed requesterNftId);
19
19
 
@@ -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";
@@ -63,7 +63,7 @@ abstract contract Oracle is
63
63
  }
64
64
 
65
65
  /// @dev Not relevant for oracle components
66
- function withdrawFees(Amount amount)
66
+ function withdrawFees(Amount)
67
67
  external
68
68
  virtual
69
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
@@ -74,7 +74,32 @@ abstract contract Oracle is
74
74
  revert ErrorOracleNotImplemented("withdrawFees");
75
75
  }
76
76
 
77
+ function activeRequests()
78
+ external
79
+ view
80
+ returns(uint256 numberOfRequests)
81
+ {
82
+ return _getInstanceReader().getActiveRequests(getNftId());
83
+ }
77
84
 
85
+
86
+ function getActiveRequest(uint256 idx)
87
+ external
88
+ view
89
+ returns(RequestId requestId)
90
+ {
91
+ return _getInstanceReader().getActiveRequestAt(getNftId(), idx);
92
+ }
93
+
94
+ function isActiveRequest(RequestId requestId)
95
+ external
96
+ view
97
+ returns(bool isActive)
98
+ {
99
+ return _getInstanceReader().isRequestActive(getNftId(), requestId);
100
+ }
101
+
102
+ // solhint-disable-next-line func-name-mixedcase
78
103
  function __Oracle_init(
79
104
  address registry,
80
105
  NftId productNftId,
@@ -102,49 +127,48 @@ abstract contract Oracle is
102
127
  _registerInterface(type(IOracleComponent).interfaceId);
103
128
  }
104
129
 
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(
130
+ /// @dev Internal function for handling oracle responses.
131
+ /// Default implementation sends response back to oracle service.
132
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
133
+ function _respond(
110
134
  RequestId requestId,
111
- NftId requesterId,
112
- bytes calldata requestData,
113
- Timestamp expiryAt
135
+ bytes memory responseData
114
136
  )
115
137
  internal
116
138
  virtual
117
139
  {
140
+ _getOracleStorage()._oracleService.respond(requestId, responseData);
118
141
  }
119
142
 
120
-
121
- /// @dev Internal function for cancelling requests.
122
- /// Empty implementation.
123
- /// Overwrite this function to implement use case specific cancelling.
124
- function _cancel(
125
- RequestId requestId
143
+ /// @dev use case specific handling of oracle requests
144
+ /// for now only log is emitted to verify that request has been received by oracle component
145
+ function _request(
146
+ RequestId requestId,
147
+ NftId requesterId,
148
+ bytes calldata,
149
+ Timestamp
126
150
  )
127
151
  internal
128
- virtual
152
+ virtual
129
153
  {
154
+ emit LogOracleRequestReceived(requestId, requesterId);
130
155
  }
131
156
 
132
157
 
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(
137
- RequestId requestId,
138
- bytes memory responseData
158
+ /// @dev use case specific handling of oracle requests
159
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
160
+ function _cancel(
161
+ RequestId requestId
139
162
  )
140
163
  internal
141
- virtual
164
+ virtual
142
165
  {
143
- _getOracleStorage()._oracleService.respond(requestId, responseData);
166
+ emit LogOracleRequestCancelled(requestId);
144
167
  }
145
168
 
146
169
 
147
170
  function _getOracleStorage() private pure returns (OracleStorage storage $) {
171
+ // solhint-disable-next-line no-inline-assembly
148
172
  assembly {
149
173
  $.slot := ORACLE_STORAGE_LOCATION_V1
150
174
  }