@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
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
5
+
6
+ import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
7
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
8
+ import {CropProduct} from "./CropProduct.sol";
9
+ import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+
11
+
12
+ contract CropProductAuthorization
13
+ is BasicProductAuthorization
14
+ {
15
+
16
+ uint64 public constant PRODUCT_OPERATOR_ROLE_IDX = 1; // 1st custom role for flight product
17
+ string public constant PRODUCT_OPERATOR_ROLE_NAME = "ProductOperatorRole";
18
+ // solhint-disable-next-line var-name-mixedcase
19
+ RoleId public PRODUCT_OPERATOR_ROLE;
20
+
21
+
22
+ constructor(string memory productName)
23
+ BasicProductAuthorization(productName)
24
+ { }
25
+
26
+
27
+ function _setupRoles()
28
+ internal
29
+ override
30
+ {
31
+ PRODUCT_OPERATOR_ROLE = AccessAdminLib.getCustomRoleId(PRODUCT_OPERATOR_ROLE_IDX);
32
+
33
+ _addRole(
34
+ PRODUCT_OPERATOR_ROLE,
35
+ AccessAdminLib.roleInfo(
36
+ ADMIN_ROLE(),
37
+ TargetType.Custom,
38
+ 100, // max member count
39
+ PRODUCT_OPERATOR_ROLE_NAME));
40
+ }
41
+
42
+
43
+ function _setupTargetAuthorizations()
44
+ internal
45
+ virtual override
46
+ {
47
+ super._setupTargetAuthorizations();
48
+ IAccess.FunctionInfo[] storage functions;
49
+
50
+ // authorize product operator role
51
+ functions = _authorizeForTarget(getMainTargetName(), PRODUCT_OPERATOR_ROLE);
52
+ _authorize(functions, CropProduct.createSeason.selector, "createSeason");
53
+ _authorize(functions, CropProduct.createLocation.selector, "createLocation");
54
+ _authorize(functions, CropProduct.createCrop.selector, "createCrop");
55
+ _authorize(functions, CropProduct.createRisk.selector, "createRisk");
56
+ _authorize(functions, CropProduct.createPolicy.selector, "createPolicy");
57
+ _authorize(functions, CropProduct.updatePayoutFactor.selector, "updatePayoutFactor");
58
+ _authorize(functions, CropProduct.processPolicy.selector, "processPolicy");
59
+
60
+ // authorize public role (additional authz via onlyOwner)
61
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
62
+ _authorize(functions, CropProduct.setDefaultBundle.selector, "setDefaultBundle");
63
+ _authorize(functions, CropProduct.setConstants.selector, "setConstants");
64
+ _authorize(functions, CropProduct.approveTokenHandler.selector, "approveTokenHandler");
65
+ _authorize(functions, CropProduct.setLocked.selector, "setLocked");
66
+ _authorize(functions, CropProduct.setWallet.selector, "setWallet");
67
+ }
68
+ }
69
+
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Location is uint64;
5
+
6
+ using {
7
+ LocationLib.latitude,
8
+ LocationLib.longitude
9
+ } for Location global;
10
+
11
+ library LocationLib {
12
+
13
+ error ErrorLatitudeInvalid(int32 amount);
14
+ error ErrorLongitudeInvalid(int32 amount);
15
+
16
+ int32 public constant LATITUDE_MIN = -90000000;
17
+ int32 public constant LATITUDE_MAX = 90000000;
18
+ int32 public constant LONGITUDE_MIN = -180000000;
19
+ int32 public constant LONGITUDE_MAX = 180000000;
20
+
21
+ // Constants for bit manipulation
22
+ int64 public constant LATITUDE_MASK = int64(0x7FFFFFF);
23
+ int64 public constant LONGITUDE_MASK = int64(0xFFFFFFF);
24
+
25
+ function zero() public pure returns (Location) {
26
+ return Location.wrap(0);
27
+ }
28
+
29
+ function toLocation(int32 latitude, int32 longitude) public pure returns (Location) {
30
+ if (latitude < LATITUDE_MIN || latitude > LATITUDE_MAX) revert ErrorLatitudeInvalid(latitude);
31
+ if (longitude < LONGITUDE_MIN || longitude > LONGITUDE_MAX) revert ErrorLongitudeInvalid(longitude);
32
+
33
+ uint32 latPacked = uint32(latitude);
34
+ uint32 longPacked = uint32(longitude);
35
+ // uint64 packed = (uint64(latPacked) << 32) | uint64(longPacked);
36
+ return Location.wrap((uint64(latPacked) << 32) | uint64(longPacked));
37
+ }
38
+
39
+ function latitude(Location location) public pure returns (int32) {
40
+ return int32(uint32(Location.unwrap(location) >> 32));
41
+ }
42
+
43
+ function longitude(Location location) public pure returns (int32) {
44
+ return int32(uint32(Location.unwrap(location) & 0xFFFFFFFF));
45
+ }
46
+
47
+ function decimals() public pure returns (uint8) {
48
+ return uint8(6);
49
+ }
50
+ }
@@ -248,7 +248,7 @@ contract FireProduct is
248
248
  return _riskMapping[cityName];
249
249
  }
250
250
  _cities.push(cityName);
251
- risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
251
+ risk = _createRisk("");
252
252
  _riskMapping[cityName] = risk;
253
253
  }
254
254
 
@@ -243,8 +243,6 @@ library FlightLib {
243
243
 
244
244
 
245
245
  function getFlightRisk(
246
- InstanceReader reader,
247
- NftId productNftId,
248
246
  Str flightData,
249
247
  Timestamp departureTime,
250
248
  string memory departureTimeLocal,
@@ -254,28 +252,20 @@ library FlightLib {
254
252
  public
255
253
  view
256
254
  returns (
257
- RiskId riskId,
258
- bool exists,
259
255
  FlightProduct.FlightRisk memory flightRisk
260
256
  )
261
257
  {
262
- riskId = getRiskId(productNftId, flightData);
263
- (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
264
-
265
- // create new risk if not existing
266
- if (!exists) {
267
- flightRisk = FlightProduct.FlightRisk({
268
- flightData: flightData,
269
- departureTime: departureTime,
270
- departureTimeLocal: departureTimeLocal,
271
- arrivalTime: arrivalTime,
272
- arrivalTimeLocal: arrivalTimeLocal,
273
- sumOfSumInsuredAmounts: AmountLib.toAmount(0),
274
- status: bytes1(0),
275
- delayMinutes: 0,
276
- payoutOption: uint8(0),
277
- statusUpdatedAt: TimestampLib.zero()});
278
- }
258
+ flightRisk = FlightProduct.FlightRisk({
259
+ flightData: flightData,
260
+ departureTime: departureTime,
261
+ departureTimeLocal: departureTimeLocal,
262
+ arrivalTime: arrivalTime,
263
+ arrivalTimeLocal: arrivalTimeLocal,
264
+ sumOfSumInsuredAmounts: AmountLib.toAmount(0),
265
+ status: bytes1(0),
266
+ delayMinutes: 0,
267
+ payoutOption: uint8(0),
268
+ statusUpdatedAt: TimestampLib.zero()});
279
269
  }
280
270
 
281
271
 
@@ -306,20 +296,6 @@ library FlightLib {
306
296
  }
307
297
  }
308
298
 
309
-
310
- function getRiskId(
311
- NftId productNftId,
312
- Str flightData
313
- )
314
- public
315
- view
316
- returns (RiskId riskId)
317
- {
318
- bytes32 riskKey = getRiskKey(flightData);
319
- riskId = getRiskId(productNftId, riskKey);
320
- }
321
-
322
-
323
299
  function getRiskKey(
324
300
  Str flightData
325
301
  )
@@ -330,8 +306,4 @@ library FlightLib {
330
306
  return keccak256(abi.encode(flightData));
331
307
  }
332
308
 
333
-
334
- function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
335
- return RiskIdLib.toRiskId(productNftId, riskKey);
336
- }
337
309
  }
@@ -3,11 +3,10 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
5
 
6
- import {ACTIVE, FULFILLED, FAILED} from "../../type/StateId.sol";
6
+ import {ACTIVE, FAILED} from "../../type/StateId.sol";
7
7
  import {NftId} from "../../type/NftId.sol";
8
8
  import {BasicOracle} from "../../oracle/BasicOracle.sol";
9
9
  import {RequestId} from "../../type/RequestId.sol";
10
- import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
11
10
  import {RiskId} from "../../type/RiskId.sol";
12
11
  import {StateId} from "../../type/StateId.sol";
13
12
  import {Str} from "../../type/String.sol";
@@ -33,9 +32,6 @@ contract FlightOracle is
33
32
  event LogFlightOracleResponseSent(RequestId requestId, bytes1 status, int256 delay);
34
33
  event LogFlightOracleRequestCancelled(RequestId requestId);
35
34
 
36
- // TODO decide if this variable should be moved to instance store
37
- // if so it need to manage active requests by requestor nft id
38
- LibRequestIdSet.Set internal _activeRequests;
39
35
 
40
36
 
41
37
  constructor(
@@ -99,52 +95,10 @@ contract FlightOracle is
99
95
 
100
96
  // effects + interaction (via framework to receiving component)
101
97
  _respond(requestId, responseData);
102
-
103
- // TODO decide if the code below should be moved to GIF
104
- _updateRequestState(requestId);
105
- }
106
-
107
-
108
- function updateRequestState(
109
- RequestId requestId
110
- )
111
- external
112
- restricted()
113
- {
114
- _updateRequestState(requestId);
115
98
  }
116
99
 
117
100
  //--- view functions ----------------------------------------------------//
118
101
 
119
- // TODO decide if the code below should be moved to GIF
120
- function activeRequests()
121
- external
122
- view
123
- returns(uint256 numberOfRequests)
124
- {
125
- return LibRequestIdSet.size(_activeRequests);
126
- }
127
-
128
-
129
- // TODO decide if the code below should be moved to GIF
130
- function getActiveRequest(uint256 idx)
131
- external
132
- view
133
- returns(RequestId requestId)
134
- {
135
- return LibRequestIdSet.getElementAt(_activeRequests, idx);
136
- }
137
-
138
-
139
- function isActiveRequest(RequestId requestId)
140
- external
141
- view
142
- returns(bool isActive)
143
- {
144
- return LibRequestIdSet.contains(_activeRequests, requestId);
145
- }
146
-
147
-
148
102
  function getRequestState(RequestId requestId)
149
103
  external
150
104
  view
@@ -172,55 +126,4 @@ contract FlightOracle is
172
126
  return abi.decode(data, (FlightStatusRequest));
173
127
  }
174
128
 
175
- //--- internal functions ------------------------------------------------//
176
-
177
-
178
- // TODO decide if the code below should be moved to GIF
179
- // check callback result
180
- function _updateRequestState(
181
- RequestId requestId
182
- )
183
- internal
184
- {
185
- bool requestFulfilled = _getInstanceReader().getRequestState(
186
- requestId) == FULFILLED();
187
-
188
- // remove from active requests when successful
189
- if (requestFulfilled && LibRequestIdSet.contains(_activeRequests, requestId)) {
190
- LibRequestIdSet.remove(_activeRequests, requestId);
191
- }
192
- }
193
-
194
-
195
- /// @dev use case specific handling of oracle requests
196
- /// for now only log is emitted to verify that request has been received by oracle component
197
- function _request(
198
- RequestId requestId,
199
- NftId requesterId,
200
- bytes calldata requestData,
201
- Timestamp expiryAt
202
- )
203
- internal
204
- virtual override
205
- {
206
- FlightStatusRequest memory request = abi.decode(requestData, (FlightStatusRequest));
207
-
208
- // TODO decide if the line below should be moved to GIF
209
- LibRequestIdSet.add(_activeRequests, requestId);
210
- emit LogFlightOracleRequestReceived(requestId, requesterId);
211
- }
212
-
213
-
214
- /// @dev use case specific handling of oracle requests
215
- /// for now only log is emitted to verify that cancelling has been received by oracle component
216
- function _cancel(
217
- RequestId requestId
218
- )
219
- internal
220
- virtual override
221
- {
222
- // TODO decide if the line below should be moved to GIF
223
- LibRequestIdSet.remove(_activeRequests, requestId);
224
- emit LogFlightOracleRequestCancelled(requestId);
225
- }
226
129
  }
@@ -49,9 +49,8 @@ contract FlightOracleAuthorization
49
49
  functions = _authorizeForTarget(getMainTargetName(), STATUS_PROVIDER_ROLE);
50
50
  _authorize(functions, FlightOracle.respondWithFlightStatus.selector, "respondWithFlightStatus");
51
51
 
52
- // authorize public role (additional authz via onlyOwner)
53
- functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
54
- _authorize(functions, FlightOracle.updateRequestState.selector, "updateRequestState");
52
+ // // authorize public role (additional authz via onlyOwner)
53
+ // functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
55
54
  }
56
55
  }
57
56
 
@@ -67,6 +67,7 @@ contract FlightProduct is
67
67
  bool internal _testMode;
68
68
 
69
69
  mapping(RiskId riskId => RequestId requestId) internal _requests;
70
+ mapping(bytes32 encodedRisk => RiskId) internal _risks;
70
71
 
71
72
  // GIF V3 specifics
72
73
  NftId internal _defaultBundleNftId;
@@ -216,12 +217,12 @@ contract FlightProduct is
216
217
  }
217
218
 
218
219
 
219
- function resendRequest(RequestId requestId)
220
+ function resendResponse(RequestId requestId)
220
221
  external
221
222
  virtual
222
223
  restricted()
223
224
  {
224
- _resendRequest(requestId);
225
+ _resendResponse(requestId);
225
226
  }
226
227
 
227
228
 
@@ -507,20 +508,22 @@ contract FlightProduct is
507
508
  returns (RiskId riskId)
508
509
  {
509
510
  bool exists;
510
- FlightRisk memory flightRisk;
511
- (riskId, exists, flightRisk) = FlightLib.getFlightRisk(
512
- _getInstanceReader(),
513
- getNftId(),
511
+ FlightRisk memory flightRisk = FlightLib.getFlightRisk(
514
512
  flightData,
515
513
  departureTime,
516
514
  departureTimeLocal,
517
515
  arrivalTime,
518
516
  arrivalTimeLocal);
519
517
 
518
+ bytes32 riskKey = FlightLib.getRiskKey(flightData);
519
+ exists = _risks[riskKey].gtz();
520
+
520
521
  // create risk, if new
521
522
  if (!exists) {
522
- bytes32 riskKey = FlightLib.getRiskKey(flightData);
523
- _createRisk(riskKey, abi.encode(flightRisk));
523
+ riskId = _createRisk(abi.encode(flightRisk));
524
+ _risks[riskKey] = riskId;
525
+ } else {
526
+ riskId = _risks[riskKey];
524
527
  }
525
528
 
526
529
  FlightLib.checkClusterRisk(
@@ -57,7 +57,7 @@ contract FlightProductAuthorization
57
57
 
58
58
  // authorize public role (additional authz via onlyOwner)
59
59
  functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
60
- _authorize(functions, FlightProduct.resendRequest.selector, "resendRequest");
60
+ _authorize(functions, FlightProduct.resendResponse.selector, "resendResponse");
61
61
  _authorize(functions, FlightProduct.processPayoutsAndClosePolicies.selector, "processPayoutsAndClosePolicies");
62
62
  _authorize(functions, FlightProduct.setConstants.selector, "setConstants");
63
63
  _authorize(functions, FlightProduct.setTestMode.selector, "setTestMode");
@@ -81,13 +81,9 @@ contract SimpleProduct is
81
81
 
82
82
 
83
83
  function createRisk(
84
- string memory id,
85
84
  bytes memory data
86
85
  ) public returns (RiskId) {
87
- return _createRisk(
88
- bytes32(abi.encodePacked(id)),
89
- data
90
- );
86
+ return _createRisk(data);
91
87
  }
92
88
 
93
89
  function updateRisk(
@@ -18,8 +18,7 @@ contract BundleSet is
18
18
  event LogBundleSetPolicyUnlinked(NftId indexed bundleNftId, NftId indexed policyNftId);
19
19
 
20
20
  event LogBundleSetBundleAdded(NftId indexed poolNftId, NftId indexed bundleNftId);
21
- event LogBundleSetBundleUnlocked(NftId indexed poolNftId, NftId indexed bundleNftId);
22
- event LogBundleSetBundleLocked(NftId indexed poolNftId, NftId indexed bundleNftId);
21
+ event LogBundleSetBundleLocked(NftId indexed poolNftId, NftId indexed bundleNftId, bool locked);
23
22
  event LogBundleSetBundleClosed(NftId indexed poolNftId, NftId indexed bundleNftId);
24
23
 
25
24
  error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
@@ -76,14 +75,14 @@ contract BundleSet is
76
75
  function unlock(NftId bundleNftId) external restricted() {
77
76
  NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
77
  _activate(poolNftId, _toBundleKey32(bundleNftId));
79
- emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
78
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId, false);
80
79
  }
81
80
 
82
81
  /// @dev locked (deactivated) bundles may not collateralize any new policies
83
82
  function lock(NftId bundleNftId) external restricted() {
84
83
  NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
84
  _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
- emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
85
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId, true);
87
86
  }
88
87
 
89
88
 
@@ -12,6 +12,7 @@ import {InstanceReader} from "./InstanceReader.sol";
12
12
  import {InstanceStore} from "./InstanceStore.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
14
  import {ProductStore} from "./ProductStore.sol";
15
+ import {RequestSet} from "./RequestSet.sol";
15
16
  import {RoleId} from "../type/RoleId.sol";
16
17
  import {Seconds} from "../type/Seconds.sol";
17
18
  import {UFixed} from "../type/UFixed.sol";
@@ -29,7 +30,7 @@ interface IInstance is
29
30
  // target handling
30
31
  event LogInstanceCustomTargetCreated(address indexed target, RoleId indexed targetRoleId, string indexed name);
31
32
  event LogInstanceTargetLocked(address indexed target, bool indexed locked);
32
- event LogInstanceCustomTargetFunctionRoleSet(address indexed target, bytes4[] indexed selectors, RoleId indexed roleId);
33
+ event LogInstanceCustomTargetFunctionRoleSet(address indexed target, bytes4[] selectors, RoleId indexed roleId);
33
34
 
34
35
  // modifier is onlyRoleAdmin
35
36
  error ErrorInstanceNotCustomRole(RoleId roleId);
@@ -58,6 +59,7 @@ interface IInstance is
58
59
  ProductStore productStore;
59
60
  BundleSet bundleSet;
60
61
  RiskSet riskSet;
62
+ RequestSet requestSet;
61
63
  InstanceReader instanceReader;
62
64
  }
63
65
 
@@ -149,6 +151,7 @@ interface IInstance is
149
151
  function getInstanceReader() external view returns (InstanceReader);
150
152
  function getBundleSet() external view returns (BundleSet);
151
153
  function getRiskSet() external view returns (RiskSet);
154
+ function getRequestSet() external view returns (RequestSet);
152
155
  function getInstanceAdmin() external view returns (InstanceAdmin);
153
156
  function getInstanceStore() external view returns (InstanceStore);
154
157
  function getProductStore() external view returns (ProductStore);
@@ -26,6 +26,7 @@ interface IInstanceService is IService {
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
27
  error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
28
  error ErrorInstanceServiceMasterRiskSetAlreadySet();
29
+ error ErrorInstanceServiceMasterRequestSetAlreadySet();
29
30
  error ErrorInstanceServiceInstanceAddressZero();
30
31
 
31
32
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -38,15 +39,18 @@ interface IInstanceService is IService {
38
39
  error ErrorInstanceServiceInstanceReaderZero();
39
40
  error ErrorInstanceServiceBundleSetZero();
40
41
  error ErrorInstanceServiceRiskSetZero();
42
+ error ErrorInstanceServiceRequestSetZero();
41
43
  error ErrorInstanceServiceInstanceStoreZero();
42
44
  error ErrorInstanceServiceProductStoreZero();
43
45
 
44
46
  error ErrorInstanceServiceInstanceAuthorityMismatch();
45
47
  error ErrorInstanceServiceBundleSetAuthorityMismatch();
46
48
  error ErrorInstanceServiceRiskSetAuthorityMismatch();
49
+ error ErrorInstanceServiceRequestSetAuthorityMismatch();
47
50
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
48
51
  error ErrorInstanceServiceBundleSetInstanceMismatch();
49
52
  error ErrorInstanceServiceRiskSetInstanceMismatch();
53
+ error ErrorInstanceServiceRequestSetInstanceMismatch();
50
54
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
51
55
  error ErrorInstanceServiceProductStoreAuthorityMismatch();
52
56
 
@@ -56,10 +60,11 @@ interface IInstanceService is IService {
56
60
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
57
61
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
58
62
 
63
+
59
64
  event LogInstanceServiceInstanceLocked(NftId indexed instanceNftId, bool indexed locked);
60
65
  event LogInstanceServiceInstanceCreated(NftId indexed instanceNftId, address indexed instance);
61
66
  event LogInstanceServiceMasterInstanceRegistered(NftId indexed masterInstanceNftId, address indexed masterInstance, address indexed masterInstanceAdmin, address masterAccessManager,
62
- address masterInstanceReader, address masterInstanceBundleSet, address masterInstanceRiskSet, address masterInstanceStore, address masterProductStore);
67
+ address masterInstanceReader, address masterInstanceBundleSet, address masterInstanceRiskSet, address masterInstanceRequestSet, address masterInstanceStore, address masterProductStore);
63
68
  event LogInstanceServiceMasterInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
64
69
  event LogInstanceServiceInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
65
70
 
@@ -17,6 +17,7 @@ import {InstanceStore} from "./InstanceStore.sol";
17
17
  import {NftId} from "../type/NftId.sol";
18
18
  import {ProductStore} from "./ProductStore.sol";
19
19
  import {Registerable} from "../shared/Registerable.sol";
20
+ import {RequestSet} from "./RequestSet.sol";
20
21
  import {RoleId} from "../type/RoleId.sol";
21
22
  import {Seconds} from "../type/Seconds.sol";
22
23
  import {UFixed} from "../type/UFixed.sol";
@@ -35,6 +36,7 @@ contract Instance is
35
36
  InstanceReader internal _instanceReader;
36
37
  BundleSet internal _bundleSet;
37
38
  RiskSet internal _riskSet;
39
+ RequestSet internal _requestSet;
38
40
  InstanceStore internal _instanceStore;
39
41
  ProductStore internal _productStore;
40
42
  NftId [] internal _products;
@@ -88,6 +90,7 @@ contract Instance is
88
90
  _productStore = instanceContracts.productStore;
89
91
  _bundleSet = instanceContracts.bundleSet;
90
92
  _riskSet = instanceContracts.riskSet;
93
+ _requestSet = instanceContracts.requestSet;
91
94
  _instanceReader = instanceContracts.instanceReader;
92
95
 
93
96
  // initialize instance supporting contracts
@@ -95,6 +98,7 @@ contract Instance is
95
98
  _productStore.initialize();
96
99
  _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
100
  _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
101
+ _requestSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
98
102
  _instanceReader.initialize();
99
103
 
100
104
  _componentService = IComponentService(
@@ -333,6 +337,10 @@ contract Instance is
333
337
  return _riskSet;
334
338
  }
335
339
 
340
+ function getRequestSet() external view returns (RequestSet) {
341
+ return _requestSet;
342
+ }
343
+
336
344
  function getInstanceAdmin() external view returns (InstanceAdmin) {
337
345
  return _instanceAdmin;
338
346
  }
@@ -13,7 +13,7 @@ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
13
  import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
14
  import {Str} from "../type/String.sol";
15
15
  import {VersionPart} from "../type/Version.sol";
16
- import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
16
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME, REQUEST_SET_TARGET_NAME} from "./TargetNames.sol";
17
17
 
18
18
 
19
19
  contract InstanceAdmin is
@@ -123,6 +123,7 @@ contract InstanceAdmin is
123
123
  _createInstanceTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME);
124
124
  _createInstanceTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
125
125
  _createInstanceTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
126
+ _createInstanceTarget(address(_instance.getRequestSet()), REQUEST_SET_TARGET_NAME);
126
127
  }
127
128
 
128
129
 
@@ -10,9 +10,10 @@ import {ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION
10
10
  import {BundleSet} from "../instance/BundleSet.sol";
11
11
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
12
12
  import {InstanceStore} from "../instance/InstanceStore.sol";
13
- import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
13
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME, REQUEST_SET_TARGET_NAME} from "./TargetNames.sol";
14
14
  import {ProductStore} from "../instance/ProductStore.sol";
15
15
  import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
16
+ import {RequestSet} from "../instance/RequestSet.sol";
16
17
  import {RiskSet} from "../instance/RiskSet.sol";
17
18
 
18
19
 
@@ -71,6 +72,7 @@ contract InstanceAuthorizationV3
71
72
  _addInstanceTarget(PRODUCT_STORE_TARGET_NAME);
72
73
  _addInstanceTarget(BUNDLE_SET_TARGET_NAME);
73
74
  _addInstanceTarget(RISK_SET_TARGET_NAME);
75
+ _addInstanceTarget(REQUEST_SET_TARGET_NAME);
74
76
  }
75
77
 
76
78
 
@@ -84,6 +86,18 @@ contract InstanceAuthorizationV3
84
86
  _setupProductStoreAuthorization();
85
87
  _setupBundleSetAuthorization();
86
88
  _setUpRiskSetAuthorization();
89
+ _setUpRequestIdSetAuthorization();
90
+ }
91
+
92
+ function _setUpRequestIdSetAuthorization()
93
+ internal
94
+ {
95
+ IAccess.FunctionInfo[] storage functions;
96
+
97
+ // authorize oracle service role
98
+ functions = _authorizeForTarget(REQUEST_SET_TARGET_NAME, getServiceRole(ORACLE()));
99
+ _authorize(functions, RequestSet.add.selector, "add");
100
+ _authorize(functions, RequestSet.remove.selector, "remove");
87
101
  }
88
102
 
89
103