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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +44 -48
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +119 -119
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +75 -63
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +20 -114
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +2 -96
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +187 -114
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -75
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +2 -96
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +113 -40
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +21 -96
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +49 -129
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +231 -66
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +131 -132
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +23 -98
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +379 -753
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +28 -122
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +91 -83
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +29 -104
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -100
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +59 -72
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +34 -21
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -9
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -33
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -197
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +160 -34
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +151 -36
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +41 -41
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +141 -91
  113. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  114. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +66 -79
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -3
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
  128. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  133. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +85 -77
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  139. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +67 -59
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +19 -13
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +71 -63
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +57 -51
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +50 -50
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +4 -79
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +90 -85
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -62
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -27
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +4 -79
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +55 -43
  164. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  165. package/artifacts/contracts/pool/Pool.sol/Pool.json +4 -79
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +113 -101
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -63
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -44
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +86 -80
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -67
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +24 -18
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +21 -9
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +15 -28
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +81 -69
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +60 -60
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +51 -51
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  207. package/artifacts/contracts/product/Product.sol/Product.json +2 -77
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.json +37 -50
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -42
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +30 -24
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  220. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/Registry.sol/Registry.json +132 -66
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -188
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -37
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +205 -205
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +122 -119
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  239. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +20 -20
  240. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +329 -113
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +61 -61
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  250. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +2 -77
  253. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
  255. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +271 -55
  257. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -2
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +2 -2
  265. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.json +2 -2
  268. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  270. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
  272. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  274. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -4
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  278. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  282. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  283. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Service.sol/Service.json +2 -2
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  292. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +91 -147
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +15 -221
  295. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  296. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  297. package/artifacts/contracts/staking/Staking.sol/Staking.json +139 -195
  298. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  300. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +53 -53
  302. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  304. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +35 -241
  306. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +40 -40
  308. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +220 -220
  310. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  311. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +9 -14
  312. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  313. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  314. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  316. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  318. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  320. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  322. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  324. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  326. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  328. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  330. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  331. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  332. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  334. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  335. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  336. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  338. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  340. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  342. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  344. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  345. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  346. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  348. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  350. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  352. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  354. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  356. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  358. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  360. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  362. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  364. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  366. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  368. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  369. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  370. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -22
  371. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  372. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  373. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  374. package/contracts/accounting/AccountingService.sol +17 -29
  375. package/contracts/accounting/IAccountingService.sol +7 -8
  376. package/contracts/authorization/AccessAdmin.sol +16 -33
  377. package/contracts/authorization/AccessAdminLib.sol +18 -1
  378. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  379. package/contracts/authorization/IAccessAdmin.sol +9 -8
  380. package/contracts/distribution/DistributionService.sol +24 -19
  381. package/contracts/distribution/IDistributionComponent.sol +0 -2
  382. package/contracts/distribution/IDistributionService.sol +8 -7
  383. package/contracts/examples/flight/FlightLib.sol +85 -74
  384. package/contracts/examples/flight/FlightNft.sol +234 -0
  385. package/contracts/examples/flight/FlightOracle.sol +20 -62
  386. package/contracts/examples/flight/FlightOracleAuthorization.sol +27 -5
  387. package/contracts/examples/flight/FlightPool.sol +1 -1
  388. package/contracts/examples/flight/FlightProduct.sol +254 -242
  389. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  390. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  391. package/contracts/instance/BaseStore.sol +4 -0
  392. package/contracts/instance/BundleSet.sol +7 -8
  393. package/contracts/instance/IBaseStore.sol +8 -0
  394. package/contracts/instance/IInstance.sol +10 -7
  395. package/contracts/instance/IInstanceService.sol +11 -4
  396. package/contracts/instance/Instance.sol +8 -0
  397. package/contracts/instance/InstanceAdmin.sol +2 -2
  398. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  399. package/contracts/instance/InstanceReader.sol +34 -5
  400. package/contracts/instance/InstanceService.sol +68 -36
  401. package/contracts/instance/InstanceStore.sol +14 -14
  402. package/contracts/instance/ProductStore.sol +14 -14
  403. package/contracts/instance/RequestSet.sol +63 -0
  404. package/contracts/instance/RiskSet.sol +6 -7
  405. package/contracts/instance/TargetNames.sol +1 -0
  406. package/contracts/instance/base/BalanceStore.sol +7 -7
  407. package/contracts/instance/base/ObjectSet.sol +9 -1
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  409. package/contracts/oracle/BasicOracle.sol +1 -0
  410. package/contracts/oracle/IOracleComponent.sol +10 -0
  411. package/contracts/oracle/IOracleService.sol +5 -5
  412. package/contracts/oracle/Oracle.sol +50 -26
  413. package/contracts/oracle/OracleService.sol +26 -23
  414. package/contracts/pool/BundleService.sol +3 -3
  415. package/contracts/pool/IBundleService.sol +9 -10
  416. package/contracts/pool/IPoolComponent.sol +1 -1
  417. package/contracts/pool/IPoolService.sol +14 -14
  418. package/contracts/pool/PoolService.sol +2 -2
  419. package/contracts/product/ClaimService.sol +1 -1
  420. package/contracts/product/IApplicationService.sol +8 -8
  421. package/contracts/product/IClaimService.sol +9 -9
  422. package/contracts/product/IPolicyService.sol +7 -7
  423. package/contracts/product/IRiskService.sol +4 -5
  424. package/contracts/product/PolicyService.sol +1 -1
  425. package/contracts/product/PolicyServiceLib.sol +5 -3
  426. package/contracts/product/RiskService.sol +2 -2
  427. package/contracts/registry/ChainNft.sol +10 -9
  428. package/contracts/registry/IRegistry.sol +11 -10
  429. package/contracts/registry/Registry.sol +16 -13
  430. package/contracts/registry/RegistryAdmin.sol +7 -1
  431. package/contracts/registry/RegistryAuthorization.sol +0 -2
  432. package/contracts/registry/ReleaseAdmin.sol +12 -5
  433. package/contracts/registry/ReleaseRegistry.sol +7 -8
  434. package/contracts/registry/TokenRegistry.sol +3 -3
  435. package/contracts/shared/ComponentService.sol +38 -4
  436. package/contracts/shared/IComponent.sol +0 -4
  437. package/contracts/shared/IComponentService.sol +31 -9
  438. package/contracts/shared/INftOwnable.sol +1 -1
  439. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  440. package/contracts/shared/TokenHandler.sol +5 -5
  441. package/contracts/staking/IStaking.sol +33 -31
  442. package/contracts/staking/IStakingService.sol +7 -16
  443. package/contracts/staking/Staking.sol +5 -4
  444. package/contracts/staking/StakingService.sol +2 -3
  445. package/contracts/staking/StakingStore.sol +3 -3
  446. package/contracts/staking/TargetHandler.sol +2 -2
  447. package/contracts/type/RequestId.sol +6 -0
  448. package/contracts/upgradeability/ProxyManager.sol +2 -2
  449. package/package.json +3 -3
@@ -279,10 +279,11 @@ contract AccessAdmin is
279
279
  {
280
280
  Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
281
281
  func = _functionInfo[target][selector];
282
- roleId = RoleIdLib.toRoleId(
283
- _authority.getTargetFunctionRole(
284
- target,
285
- selector.toBytes4()));
282
+ roleId = AccessAdminLib.getFunctionRoleId(_authority, target, selector);
283
+ // roleId = RoleIdLib.toRoleId(
284
+ // _authority.getTargetFunctionRole(
285
+ // target,
286
+ // selector.toBytes4()));
286
287
  }
287
288
 
288
289
 
@@ -318,7 +319,7 @@ contract AccessAdmin is
318
319
  (RoleId roleId, bool exists) = getRoleForName(roleInfo.name.toString());
319
320
 
320
321
  if (!exists) {
321
- if (!AccessAdminLib.isDynamicRoleId(authzRoleId)) {
322
+ if (!AccessAdminLib.isDynamicRoleId(authzRoleId) || roleInfo.targetType == TargetType.Custom) {
322
323
  roleId = authzRoleId;
323
324
  }
324
325
 
@@ -366,7 +367,7 @@ contract AccessAdmin is
366
367
  // add role to list of roles
367
368
  _roleIds.push(roleId);
368
369
 
369
- emit LogAccessAdminRoleCreated(_adminName, roleId, info.targetType, info.adminRoleId, info.name.toString());
370
+ emit LogAccessAdminRoleCreated(roleId, info.adminRoleId, info.targetType, info.name.toString(), _adminName);
370
371
  }
371
372
 
372
373
 
@@ -386,7 +387,7 @@ contract AccessAdmin is
386
387
  Blocknumber lastUpdateIn = _roleInfo[roleId].lastUpdateIn;
387
388
  _roleInfo[roleId].lastUpdateIn = BlocknumberLib.current();
388
389
 
389
- emit LogAccessAdminRoleActivatedSet(_adminName, roleId, active, lastUpdateIn);
390
+ emit LogAccessAdminRoleActivatedSet(roleId, active, _adminName, lastUpdateIn);
390
391
  }
391
392
 
392
393
 
@@ -417,9 +418,9 @@ contract AccessAdmin is
417
418
  0);
418
419
 
419
420
  emit LogAccessAdminRoleGranted(
420
- _adminName,
421
421
  account,
422
- AccessAdminLib.getRoleName(this, roleId));
422
+ AccessAdminLib.getRoleName(this, roleId),
423
+ _adminName);
423
424
  }
424
425
 
425
426
 
@@ -440,7 +441,7 @@ contract AccessAdmin is
440
441
  RoleId.unwrap(roleId),
441
442
  account);
442
443
 
443
- emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
444
+ emit LogAccessAdminRoleRevoked(account, _roleInfo[roleId].name.toString(), _adminName);
444
445
  }
445
446
 
446
447
 
@@ -556,7 +557,7 @@ contract AccessAdmin is
556
557
  // grant contract role to target
557
558
  _grantRoleToAccount(targetRoleId, target);
558
559
 
559
- emit LogAccessAdminTargetCreated(_adminName, targetName, managed, target, targetRoleId);
560
+ emit LogAccessAdminTargetCreated(target, targetRoleId, managed, targetName, _adminName);
560
561
  }
561
562
 
562
563
 
@@ -570,7 +571,7 @@ contract AccessAdmin is
570
571
  Blocknumber lastUpdateIn = _targetInfo[target].lastUpdateIn;
571
572
  _targetInfo[target].lastUpdateIn = BlocknumberLib.current();
572
573
 
573
- emit LogAccessAdminTargetLockedSet(_adminName, target, locked, lastUpdateIn);
574
+ emit LogAccessAdminTargetLockedSet(target, locked, _adminName, lastUpdateIn);
574
575
  }
575
576
 
576
577
 
@@ -651,29 +652,11 @@ contract AccessAdmin is
651
652
 
652
653
  // logging
653
654
  emit LogAccessAdminFunctionGranted(
654
- _adminName,
655
655
  target,
656
+ selector,
657
+ roleId,
656
658
  AccessAdminLib.toFunctionGrantingString(this, func.name, roleId),
659
+ _adminName,
657
660
  lastUpdateIn);
658
661
  }
659
-
660
-
661
- function _checkAuthorization(
662
- address authorization,
663
- ObjectType expectedDomain,
664
- VersionPart expectedRelease,
665
- bool expectServiceAuthorization,
666
- bool checkAlreadyInitialized
667
- )
668
- internal
669
- view
670
- {
671
- AccessAdminLib.checkAuthorization(
672
- address(_authorization),
673
- authorization,
674
- expectedDomain,
675
- expectedRelease,
676
- expectServiceAuthorization,
677
- checkAlreadyInitialized);
678
- }
679
662
  }
@@ -12,11 +12,12 @@ import {IRegistry} from "../registry/IRegistry.sol";
12
12
  import {IService} from "../shared/IService.sol";
13
13
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
14
14
 
15
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
15
16
  import {BlocknumberLib} from "../type/Blocknumber.sol";
16
17
  import {ContractLib} from "../shared/ContractLib.sol";
17
18
  import {ObjectType} from "../type/ObjectType.sol";
18
19
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
19
- import {SelectorLib} from "../type/Selector.sol";
20
+ import {Selector, SelectorLib} from "../type/Selector.sol";
20
21
  import {Str, StrLib} from "../type/String.sol";
21
22
  import {TimestampLib} from "../type/Timestamp.sol";
22
23
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
@@ -481,6 +482,22 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
481
482
  }
482
483
 
483
484
 
485
+ function getFunctionRoleId(
486
+ AccessManagerCloneable authority,
487
+ address target,
488
+ Selector selector
489
+ )
490
+ public
491
+ view
492
+ returns (RoleId functionRoleId)
493
+ {
494
+ return RoleIdLib.toRoleId(
495
+ authority.getTargetFunctionRole(
496
+ target,
497
+ selector.toBytes4()));
498
+ }
499
+
500
+
484
501
  function getServiceRoleId(
485
502
  address serviceAddress,
486
503
  IAccess.TargetType serviceTargetType
@@ -24,6 +24,8 @@ contract AccessManagerCloneable is
24
24
  error ErrorAccessManagerTargetAdminLocked(address target);
25
25
  error ErrorAccessManagerCallerAdminLocked(address caller);
26
26
 
27
+ event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
28
+
27
29
  VersionPart private _release;
28
30
  bool private _isLocked;
29
31
 
@@ -39,6 +41,7 @@ contract AccessManagerCloneable is
39
41
 
40
42
  function initialize(address admin)
41
43
  public
44
+ override
42
45
  initializer()
43
46
  {
44
47
  __ERC165_init();
@@ -94,6 +97,7 @@ contract AccessManagerCloneable is
94
97
  onlyAdminRole()
95
98
  {
96
99
  _isLocked = locked;
100
+ emit LogAccessManagerLocked(address(this), locked);
97
101
  }
98
102
 
99
103
 
@@ -12,6 +12,7 @@ import {Blocknumber} from "../type/Blocknumber.sol";
12
12
  import {NftId} from "../type/NftId.sol";
13
13
  import {ObjectType} from "../type/ObjectType.sol";
14
14
  import {RoleId} from "../type/RoleId.sol";
15
+ import {Selector} from "../type/Selector.sol";
15
16
  import {Str} from "../type/String.sol";
16
17
  import {VersionPart} from "../type/Version.sol";
17
18
 
@@ -24,14 +25,14 @@ interface IAccessAdmin is
24
25
  {
25
26
 
26
27
  // roles, targets and functions
27
- event LogAccessAdminRoleCreated(string admin, RoleId roleId, TargetType targetType, RoleId roleAdminId, string name);
28
- event LogAccessAdminTargetCreated(string admin, string name, bool managed, address target, RoleId roleId);
29
-
30
- event LogAccessAdminRoleActivatedSet(string admin, RoleId roleId, bool active, Blocknumber lastUpdateIn);
31
- event LogAccessAdminRoleGranted(string admin, address account, string roleName);
32
- event LogAccessAdminRoleRevoked(string admin, address account, string roleName);
33
- event LogAccessAdminTargetLockedSet(string admin, address target, bool locked, Blocknumber lastUpdateIn);
34
- event LogAccessAdminFunctionGranted(string admin, address target, string func, Blocknumber lastUpdateIn);
28
+ event LogAccessAdminRoleCreated(RoleId indexed roleId, RoleId indexed roleAdminId, TargetType indexed targetType, string name, string admin);
29
+ event LogAccessAdminTargetCreated(address indexed target, RoleId indexed roleId, bool indexed managed, string name, string admin);
30
+
31
+ event LogAccessAdminRoleActivatedSet(RoleId indexed roleId, bool indexed active, string admin, Blocknumber indexed lastUpdateIn);
32
+ event LogAccessAdminRoleGranted(address indexed account, string roleName, string admin);
33
+ event LogAccessAdminRoleRevoked(address indexed account, string roleName, string admin);
34
+ event LogAccessAdminTargetLockedSet(address indexed target, bool indexed locked, string admin, Blocknumber indexed lastUpdateIn);
35
+ event LogAccessAdminFunctionGranted(address indexed target, Selector indexed selector, RoleId indexed roleId, string func, string admin, Blocknumber lastUpdateIn);
35
36
 
36
37
  // only deployer modifier
37
38
  error ErrorAccessAdminNotDeployer();
@@ -98,21 +98,24 @@ contract DistributionService is
98
98
  }
99
99
 
100
100
  distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
101
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
102
- name: name,
103
- distributionNftId: distributionNftId,
104
- minDiscountPercentage: minDiscountPercentage,
105
- maxDiscountPercentage: maxDiscountPercentage,
106
- commissionPercentage: commissionPercentage,
107
- maxReferralCount: maxReferralCount,
108
- maxReferralLifetime: maxReferralLifetime,
109
- allowSelfReferrals: allowSelfReferrals,
110
- allowRenewals: allowRenewals,
111
- data: data});
112
-
113
- instance.getInstanceStore().createDistributorType(distributorType, info);
101
+
102
+ {
103
+ IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
104
+ name: name,
105
+ distributionNftId: distributionNftId,
106
+ minDiscountPercentage: minDiscountPercentage,
107
+ maxDiscountPercentage: maxDiscountPercentage,
108
+ commissionPercentage: commissionPercentage,
109
+ maxReferralCount: maxReferralCount,
110
+ maxReferralLifetime: maxReferralLifetime,
111
+ allowSelfReferrals: allowSelfReferrals,
112
+ allowRenewals: allowRenewals,
113
+ data: data});
114
+
115
+ instance.getInstanceStore().createDistributorType(distributorType, info);
116
+ }
114
117
 
115
- emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
118
+ emit LogDistributionServiceDistributorTypeCreated(distributionNftId, distributorType, name, commissionPercentage);
116
119
  }
117
120
 
118
121
 
@@ -148,7 +151,7 @@ contract DistributionService is
148
151
 
149
152
  instance.getInstanceStore().createDistributor(distributorNftId, info);
150
153
 
151
- emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributorType, distributor);
154
+ emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributor, distributorType);
152
155
  }
153
156
 
154
157
  function changeDistributorType(
@@ -236,7 +239,7 @@ contract DistributionService is
236
239
 
237
240
  instance.getInstanceStore().createReferral(referralId, info);
238
241
 
239
- emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code);
242
+ emit LogDistributionServiceReferralCreated(distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
240
243
  }
241
244
  }
242
245
 
@@ -258,7 +261,7 @@ contract DistributionService is
258
261
  referralInfo.usedReferrals += 1;
259
262
  instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
260
263
 
261
- emit LogDistributionServiceReferralProcessed(distributionNftId, referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
264
+ emit LogDistributionServiceReferralProcessed(referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
262
265
  }
263
266
  }
264
267
 
@@ -295,12 +298,14 @@ contract DistributionService is
295
298
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
296
299
  distributorInfo.numPoliciesSold += 1;
297
300
  store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
301
+ emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
298
302
  } else {
299
303
  // increase distribution balance by distribution owner fee
300
304
  _accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
305
+ emit LogDistributionServiceSaleProcessed(distributionNftId, premium.premiumAmount, distributionOwnerFee);
301
306
  }
302
307
 
303
- emit LogDistributionServiceSaleProcessed(distributionNftId, referralId);
308
+
304
309
  }
305
310
 
306
311
  /// @inheritdoc IDistributionService
@@ -341,7 +346,7 @@ contract DistributionService is
341
346
  // transfer amount to distributor
342
347
  {
343
348
  address distributor = getRegistry().ownerOf(distributorNftId);
344
- emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
349
+ emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, withdrawnAmount, address(distributionInfo.tokenHandler.TOKEN()));
345
350
  distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
346
351
  }
347
352
  }
@@ -11,8 +11,6 @@ import {UFixed} from "../type/UFixed.sol";
11
11
 
12
12
  interface IDistributionComponent is IInstanceLinkedComponent {
13
13
 
14
- event LogDistributorUpdated(address to, address operator);
15
-
16
14
  function getDiscountPercentage(
17
15
  string memory referralCode
18
16
  ) external view returns (UFixed discountPercentage, ReferralStatus status);
@@ -39,13 +39,14 @@ interface IDistributionService is IService {
39
39
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
40
40
  error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
41
41
 
42
- event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
43
- event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
44
- event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
45
- event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
46
- event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code);
47
- event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
48
- event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId);
42
+ event LogDistributionServiceCommissionWithdrawn(NftId indexed distributorNftId, address indexed recipient, Amount amount, address indexed tokenAddress);
43
+ event LogDistributionServiceDistributorTypeCreated(NftId indexed distributionNftId, DistributorType indexed distributorType, string name, UFixed commissionPercentage);
44
+ event LogDistributionServiceDistributorCreated(NftId indexed distributionNftId, NftId indexed distributorNftId, address indexed distributor, DistributorType distributorType);
45
+ event LogDistributionServiceDistributorTypeChanged(NftId indexed distributorNftId, DistributorType indexed oldDistributorType, DistributorType indexed newDistributorType);
46
+ event LogDistributionServiceReferralCreated(NftId indexed distributorNftId, ReferralId indexed referralId, string code, UFixed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
47
+ event LogDistributionServiceReferralProcessed(NftId indexed distributorNftId, ReferralId indexed referralId, uint32 usedReferrals);
48
+ event LogDistributionServiceSaleProcessed(NftId indexed distributionNftId, Amount premium, Amount distributionOwnerFee);
49
+ event LogDistributionServiceSaleProcessedWithReferral(NftId indexed distributionNftId, NftId indexed distributorNftId, ReferralId indexed referralId, uint32 numPoliciesSold, Amount premium, Amount distributionOwnerFee, Amount commissionAmount);
49
50
 
50
51
  function createDistributorType(
51
52
  string memory name,
@@ -11,6 +11,7 @@ import {InstanceReader} from "../../instance/InstanceReader.sol";
11
11
  import {NftId} from "../../type/NftId.sol";
12
12
  import {RequestId} from "../../type/RequestId.sol";
13
13
  import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
14
+ import {Seconds} from "../../type/Seconds.sol";
14
15
  import {StateId} from "../../type/StateId.sol";
15
16
  import {Str} from "../../type/String.sol";
16
17
  import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
@@ -18,39 +19,30 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
18
19
 
19
20
  library FlightLib {
20
21
 
21
- function checkApplicationDataAndSignature(
22
+ event LogFlightProductErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
23
+ event LogFlightProductErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
24
+
25
+ error ErrorFlightProductRiskInvalid(RiskId riskId);
26
+ error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
27
+ error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
28
+ error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
29
+ error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
30
+ error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
31
+ error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
32
+ error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
33
+ error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
34
+
35
+ function checkApplicationData(
22
36
  FlightProduct flightProduct,
23
37
  Str flightData,
24
38
  Timestamp departureTime,
25
39
  Timestamp arrivalTime,
26
- Amount premiumAmount,
27
- uint256[6] memory statistics
28
- // signature fields
29
- // uint8 v,
30
- // bytes32 r,
31
- // bytes32 s
40
+ Amount premiumAmount
32
41
  )
33
42
  public
34
43
  view
35
44
  {
36
45
  _checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
37
-
38
- // (
39
- // address actualSigner,,
40
- // bool success
41
- // ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
42
- // flightData,
43
- // departureTime,
44
- // arrivalTime,
45
- // premiumAmount,
46
- // statistics,
47
- // v, r, s);
48
-
49
- // if (!success) {
50
- // revert FlightProduct.ErrorApplicationDataSignatureMismatch(
51
- // flightProduct.getFlightMessageVerifier().getExpectedSigner(),
52
- // actualSigner);
53
- // }
54
46
  }
55
47
 
56
48
 
@@ -63,67 +55,49 @@ library FlightLib {
63
55
  internal
64
56
  view
65
57
  {
58
+ bool testMode = flightProduct.isTestMode();
59
+
66
60
  // solhint-disable
67
61
  if (premiumAmount < flightProduct.MIN_PREMIUM()) {
68
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
62
+ revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
69
63
  }
70
64
  if (premiumAmount > flightProduct.MAX_PREMIUM()) {
71
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
65
+ revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
72
66
  }
73
67
  if (arrivalTime <= departureTime) {
74
- revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
68
+ revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
75
69
  }
76
-
77
70
  if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
78
- revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
71
+ revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
79
72
  }
80
- if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
81
- revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
73
+
74
+ // test mode allows the creation for policies that are outside restricted policy creation times
75
+ if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
76
+ revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
82
77
  }
83
- if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
84
- revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
78
+ if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
79
+ revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
85
80
  }
86
81
  // solhint-enable
87
82
  }
88
83
 
89
84
 
90
- // TODO fix or cleanup
91
- // function checkApplication(
92
- // FlightProduct flightProduct,
93
- // Str carrierFlightNumber,
94
- // Timestamp departureTime,
95
- // Timestamp arrivalTime,
96
- // Amount premium
97
- // )
98
- // external
99
- // view
100
- // returns (uint256 errors)
101
- // {
102
- // // Validate input parameters
103
- // if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
104
- // if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
105
- // if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
106
- // if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
107
- // if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
108
- // if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
109
-
110
- // (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
111
- // flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
112
-
113
- // if (exists) {
114
- // Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
115
- // if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
116
- // errors = errors | (uint256(1) << 6);
117
- // }
118
- // }
119
-
120
- // return errors;
121
- // }
85
+ function checkClusterRisk(
86
+ Amount sumOfSumInsuredAmounts,
87
+ Amount sumInsuredAmount,
88
+ Amount maxTotalPayout
89
+ )
90
+ public
91
+ pure
92
+ {
93
+ if (sumOfSumInsuredAmounts + sumInsuredAmount > maxTotalPayout) {
94
+ revert ErrorFlightProductClusterRisk(sumOfSumInsuredAmounts + sumInsuredAmount, maxTotalPayout);
95
+ }
96
+ }
122
97
 
123
98
 
124
99
  /// @dev calculates payout option based on flight status and delay minutes.
125
100
  /// Is not a view function as it emits log evens in case of unexpected status.
126
- // TODO decide if reverts instead of log events could work too (and convert the function into a view function)
127
101
  function checkAndGetPayoutOption(
128
102
  RequestId requestId,
129
103
  RiskId riskId,
@@ -138,13 +112,13 @@ library FlightLib {
138
112
 
139
113
  // check status
140
114
  if (status != "L" && status != "A" && status != "C" && status != "D") {
141
- emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
115
+ emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
142
116
  return payoutOption;
143
117
  }
144
118
 
145
119
  if (status == "A") {
146
120
  // todo: active, reschedule oracle call + 45 min
147
- emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
121
+ emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
148
122
  return payoutOption;
149
123
  }
150
124
 
@@ -167,7 +141,7 @@ library FlightLib {
167
141
  {
168
142
  // check we have enough observations
169
143
  if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
170
- revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
144
+ revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
171
145
  }
172
146
 
173
147
  weight = 0;
@@ -200,10 +174,10 @@ library FlightLib {
200
174
  )
201
175
  {
202
176
  if (premium < flightProduct.MIN_PREMIUM()) {
203
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
177
+ revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
204
178
  }
205
179
  if (premium > flightProduct.MAX_PREMIUM()) {
206
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
180
+ revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
207
181
  }
208
182
 
209
183
  sumInsuredAmount = AmountLib.zero();
@@ -222,13 +196,43 @@ library FlightLib {
222
196
  }
223
197
 
224
198
 
199
+ function getPayoutOption(
200
+ InstanceReader reader,
201
+ NftId productNftId,
202
+ RiskId riskId
203
+ )
204
+ public
205
+ view
206
+ returns (
207
+ bool exists,
208
+ bool statusAvailable,
209
+ uint8 payoutOption
210
+ )
211
+ {
212
+ FlightProduct.FlightRisk memory flightRisk;
213
+ (exists, flightRisk) = getFlightRisk(
214
+ reader,
215
+ productNftId,
216
+ riskId,
217
+ false);
218
+
219
+ statusAvailable = flightRisk.statusUpdatedAt.gtz();
220
+ payoutOption = flightRisk.payoutOption;
221
+ }
222
+
223
+
225
224
  function getPayoutAmount(
226
225
  bytes memory applicationData,
227
226
  uint8 payoutOption
228
227
  )
229
228
  public
229
+ pure
230
230
  returns (Amount payoutAmount)
231
231
  {
232
+ if (payoutOption == type(uint8).max) {
233
+ return AmountLib.zero();
234
+ }
235
+
232
236
  // retrieve payout amounts from application data
233
237
  (, Amount[5] memory payoutAmounts) = abi.decode(
234
238
  applicationData, (Amount, Amount[5]));
@@ -256,7 +260,7 @@ library FlightLib {
256
260
  )
257
261
  {
258
262
  riskId = getRiskId(productNftId, flightData);
259
- (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
263
+ (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
260
264
 
261
265
  // create new risk if not existing
262
266
  if (!exists) {
@@ -268,7 +272,9 @@ library FlightLib {
268
272
  arrivalTimeLocal: arrivalTimeLocal,
269
273
  sumOfSumInsuredAmounts: AmountLib.toAmount(0),
270
274
  status: bytes1(0),
271
- delayMinutes: 0});
275
+ delayMinutes: 0,
276
+ payoutOption: uint8(0),
277
+ statusUpdatedAt: TimestampLib.zero()});
272
278
  }
273
279
  }
274
280
 
@@ -276,7 +282,8 @@ library FlightLib {
276
282
  function getFlightRisk(
277
283
  InstanceReader reader,
278
284
  NftId productNftId,
279
- RiskId riskId
285
+ RiskId riskId,
286
+ bool requireRiskExists
280
287
  )
281
288
  public
282
289
  view
@@ -288,6 +295,10 @@ library FlightLib {
288
295
  // check if risk exists
289
296
  exists = reader.isProductRisk(productNftId, riskId);
290
297
 
298
+ if (!exists && requireRiskExists) {
299
+ revert ErrorFlightProductRiskInvalid(riskId);
300
+ }
301
+
291
302
  // get risk data if risk exists
292
303
  if (exists) {
293
304
  flightRisk = abi.decode(