@etherisc/gif-next 3.0.0-a35a440-562 → 3.0.0-a511887-523

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. package/README.md +0 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  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 +45 -3
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +158 -67
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +112 -49
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +187 -76
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +224 -113
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +193 -74
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +192 -73
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +200 -81
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -18
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +181 -34
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +75 -177
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +128 -52
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  178. package/artifacts/contracts/product/Product.sol/Product.json +112 -49
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +173 -144
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +44 -2
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -49
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +46 -4
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
  255. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  264. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
  269. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/Staking.sol/Staking.json +195 -86
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +25 -22
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -23
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -21
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.json +2 -21
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -36
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  332. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  338. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  339. package/contracts/accounting/AccountingService.sol +2 -2
  340. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  341. package/contracts/accounting/IAccountingService.sol +1 -1
  342. package/contracts/authorization/AccessAdmin.sol +19 -16
  343. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  344. package/contracts/authorization/Authorization.sol +2 -2
  345. package/contracts/authorization/IAccessAdmin.sol +2 -3
  346. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  347. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  349. package/contracts/distribution/DistributionService.sol +11 -8
  350. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  351. package/contracts/instance/IInstance.sol +1 -1
  352. package/contracts/instance/Instance.sol +3 -6
  353. package/contracts/instance/InstanceAdmin.sol +9 -14
  354. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  355. package/contracts/instance/InstanceReader.sol +3 -25
  356. package/contracts/instance/InstanceService.sol +4 -4
  357. package/contracts/instance/InstanceServiceManager.sol +3 -3
  358. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  359. package/contracts/oracle/IOracleService.sol +12 -12
  360. package/contracts/oracle/Oracle.sol +3 -2
  361. package/contracts/oracle/OracleService.sol +1 -1
  362. package/contracts/oracle/OracleServiceManager.sol +3 -3
  363. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  364. package/contracts/pool/BundleService.sol +5 -5
  365. package/contracts/pool/BundleServiceManager.sol +3 -3
  366. package/contracts/pool/PoolLib.sol +7 -4
  367. package/contracts/pool/PoolService.sol +3 -3
  368. package/contracts/pool/PoolServiceManager.sol +3 -3
  369. package/contracts/product/ApplicationService.sol +4 -5
  370. package/contracts/product/ApplicationServiceManager.sol +3 -3
  371. package/contracts/product/BasicProductAuthorization.sol +7 -7
  372. package/contracts/product/ClaimService.sol +1 -1
  373. package/contracts/product/ClaimServiceManager.sol +3 -3
  374. package/contracts/product/PolicyService.sol +1 -1
  375. package/contracts/product/PolicyServiceManager.sol +3 -3
  376. package/contracts/product/PricingService.sol +1 -1
  377. package/contracts/product/PricingServiceManager.sol +3 -3
  378. package/contracts/product/RiskService.sol +1 -1
  379. package/contracts/product/RiskServiceManager.sol +3 -3
  380. package/contracts/registry/IRegistry.sol +20 -14
  381. package/contracts/registry/IRegistryService.sol +10 -14
  382. package/contracts/registry/IRelease.sol +0 -3
  383. package/contracts/registry/Registry.sol +124 -78
  384. package/contracts/registry/RegistryAdmin.sol +9 -15
  385. package/contracts/registry/RegistryAuthorization.sol +2 -1
  386. package/contracts/registry/RegistryService.sol +96 -78
  387. package/contracts/registry/RegistryServiceManager.sol +3 -3
  388. package/contracts/registry/ReleaseAdmin.sol +14 -12
  389. package/contracts/registry/ReleaseRegistry.sol +52 -50
  390. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  391. package/contracts/shared/Component.sol +24 -17
  392. package/contracts/shared/ComponentService.sol +28 -101
  393. package/contracts/shared/ComponentServiceManager.sol +3 -3
  394. package/contracts/shared/IComponent.sol +5 -3
  395. package/contracts/shared/IComponentService.sol +0 -14
  396. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  397. package/contracts/shared/IRegisterable.sol +8 -3
  398. package/contracts/shared/IRegistryLinked.sol +3 -1
  399. package/contracts/shared/IService.sol +2 -2
  400. package/contracts/shared/IVersionable.sol +19 -0
  401. package/contracts/shared/InstanceLinkedComponent.sol +39 -124
  402. package/contracts/shared/NftOwnable.sol +1 -14
  403. package/contracts/shared/PolicyHolder.sol +2 -2
  404. package/contracts/shared/Registerable.sol +36 -18
  405. package/contracts/shared/RegistryLinked.sol +11 -4
  406. package/contracts/shared/Service.sol +6 -5
  407. package/contracts/shared/TokenHandler.sol +4 -1
  408. package/contracts/shared/Versionable.sol +47 -0
  409. package/contracts/staking/IStaking.sol +2 -2
  410. package/contracts/staking/Staking.sol +7 -17
  411. package/contracts/staking/StakingManager.sol +3 -3
  412. package/contracts/staking/StakingService.sol +10 -7
  413. package/contracts/staking/StakingServiceManager.sol +3 -4
  414. package/contracts/staking/StakingStore.sol +10 -8
  415. package/contracts/type/ObjectType.sol +31 -2
  416. package/contracts/type/Referral.sol +0 -6
  417. package/contracts/type/Seconds.sol +0 -4
  418. package/contracts/type/String.sol +0 -30
  419. package/contracts/type/Timestamp.sol +1 -10
  420. package/contracts/type/Version.sol +15 -16
  421. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  422. package/contracts/upgradeability/ProxyManager.sol +46 -50
  423. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  424. package/package.json +1 -2
  425. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +0 -4
  426. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +0 -500
  427. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +0 -4
  428. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +0 -229
  429. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +0 -4
  430. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +0 -1198
  431. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +0 -4
  432. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +0 -849
  433. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +0 -4
  434. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +0 -1466
  435. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +0 -4
  436. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +0 -844
  437. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +0 -4
  438. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +0 -2324
  439. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +0 -4
  440. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +0 -844
  441. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +0 -4
  442. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +0 -586
  443. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +0 -4
  444. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +0 -901
  445. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +0 -4
  446. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +0 -33
  447. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  448. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
  449. package/contracts/examples/flight/FlightLib.sol +0 -311
  450. package/contracts/examples/flight/FlightMessageVerifier.sol +0 -128
  451. package/contracts/examples/flight/FlightOracle.sol +0 -167
  452. package/contracts/examples/flight/FlightOracleAuthorization.sol +0 -34
  453. package/contracts/examples/flight/FlightPool.sol +0 -89
  454. package/contracts/examples/flight/FlightPoolAuthorization.sol +0 -37
  455. package/contracts/examples/flight/FlightProduct.sol +0 -626
  456. package/contracts/examples/flight/FlightProductAuthorization.sol +0 -44
  457. package/contracts/examples/flight/FlightUSD.sol +0 -28
  458. package/contracts/examples/flight/originalV1.sol +0 -396
  459. package/contracts/shared/EcdsaChecker.sol +0 -5
  460. package/contracts/type/RequestIdSet.sol +0 -62
@@ -1,396 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // pragma solidity ^0.8.20;
3
- pragma solidity ^0.8.20;
4
-
5
- // import "@etherisc/gif-interface/contracts/0.7/Product.sol";
6
-
7
- // contract FlightDelayChainlink is Product {
8
- contract FlightDelayChainlink {
9
-
10
- bytes32 public constant NAME = "FlightDelayChainlink";
11
- bytes32 public constant VERSION = "0.1.6";
12
-
13
- event LogRequestFlightRatings(uint256 requestId, bytes32 carrierFlightNumber, uint256 departureTime, uint256 arrivalTime, bytes32 riskId);
14
- event LogRequestFlightStatus(uint256 requestId, uint256 arrivalTime, bytes32 carrierFlightNumber, bytes32 departureYearMonthDay);
15
- event LogPayoutTransferred(bytes32 bpKey, uint256 claimId, uint256 payoutId, uint256 amount);
16
- event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
17
- event LogUnprocessableStatus(bytes32 bpKey, uint256 requestId);
18
- event LogPolicyExpired(bytes32 bpKey);
19
- event LogRequestPayment(bytes32 bpKey, uint256 requestId);
20
- event LogUnexpectedStatus(bytes32 bpKey, uint256 requestId, bytes1 status, int256 delay, address customer);
21
-
22
- event LogCallback(bytes32 _bytes, bytes _data);
23
-
24
-
25
- bytes32 public constant POLICY_FLOW = "PolicyFlowDefault";
26
-
27
- // Minimum observations for valid prediction
28
- uint256 public constant MIN_OBSERVATIONS = 10;
29
- // Minimum time before departure for applying
30
- uint256 public constant MIN_TIME_BEFORE_DEPARTURE = 14 * 24 hours;
31
- // Maximum time before departure for applying
32
- uint256 public constant MAX_TIME_BEFORE_DEPARTURE = 90 * 24 hours;
33
- // Maximum duration of flight
34
- uint256 public constant MAX_FLIGHT_DURATION = 2 days;
35
- // Check for delay after .. minutes after scheduled arrival
36
- uint256 public constant CHECK_OFFSET = 1 hours;
37
-
38
- // uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
39
- // All amounts in cent = multiplier is 10 ** 16!
40
- uint256 public constant MIN_PREMIUM = 1500 * 10 ** 16; // for testing purposes
41
- uint256 public constant MAX_PREMIUM = 1500 * 10 ** 16; // in cent
42
- uint256 public constant MAX_PAYOUT = 75000 * 10 ** 16; // in cent
43
- uint256 public constant MARGIN_PERCENT = 30;
44
- string public constant RATINGS_CALLBACK = "flightRatingsCallback";
45
- string public constant STATUSES_CALLBACK = "flightStatusCallback";
46
-
47
- // ['observations','late15','late30','late45','cancelled','diverted']
48
- uint8[6] public weightPattern = [0, 0, 0, 30, 50, 50];
49
- uint8 public constant maxWeight = 50;
50
-
51
- // Maximum cumulated weighted premium per risk
52
- uint256 public constant MAX_TOTAL_PAYOUT = 3 * MAX_PAYOUT; // Maximum risk per flight is 3x max payout.
53
-
54
- struct Risk {
55
- bytes32 carrierFlightNumber;
56
- bytes32 departureYearMonthDay;
57
- uint256 departureTime;
58
- uint256 arrivalTime;
59
- uint delayInMinutes;
60
- uint8 delay;
61
- uint256 estimatedMaxTotalPayout;
62
- uint256 premiumMultiplier;
63
- uint256 weight;
64
- }
65
-
66
- mapping(bytes32 => Risk) public risks;
67
- mapping(bytes32 => address) public bpKeyToAddress;
68
- mapping(address => bytes32[]) public addressToBpKeys;
69
- mapping(address => uint256) public addressToPolicyCount;
70
-
71
- uint256 public uniqueIndex;
72
- bytes32 public ratingsOracleType;
73
- uint256 public ratingsOracleId;
74
- bytes32 public statusesOracleType;
75
- uint256 public statusesOracleId;
76
-
77
- address public owner;
78
-
79
- uint256 public productId;
80
-
81
- // empty modifier to support compiling without inheritance from V1 product
82
- modifier onlyOwner() { _; }
83
- modifier onlyOracle() { _; }
84
-
85
- constructor(
86
- address _productServiceAddress,
87
- bytes32 _ratingsOracleType,
88
- uint256 _ratingsOracleId,
89
- bytes32 _statusesOracleType,
90
- uint256 _statusesOracleId
91
- )
92
- // Product(_productServiceAddress, NAME, POLICY_FLOW)
93
- {
94
- setOracles(_ratingsOracleType, _ratingsOracleId, _statusesOracleType, _statusesOracleId);
95
- }
96
-
97
- function setOracles(
98
- bytes32 _ratingsOracleType,
99
- uint256 _ratingsOracleId,
100
- bytes32 _statusesOracleType,
101
- uint256 _statusesOracleId
102
- )
103
- public
104
- onlyOwner
105
- {
106
- ratingsOracleType = _ratingsOracleType;
107
- ratingsOracleId = _ratingsOracleId;
108
- statusesOracleType = _statusesOracleType;
109
- statusesOracleId = _statusesOracleId;
110
- }
111
-
112
- function uniqueId(address _addr)
113
- internal
114
- returns (bytes32 _uniqueId)
115
- {
116
- uniqueIndex += 1;
117
- return keccak256(abi.encode(_addr, productId, uniqueIndex));
118
- }
119
-
120
- function getValue() internal returns(uint256) {
121
- return msg.value;
122
- }
123
-
124
- function applyForPolicy(
125
- // domain specific
126
- bytes32 _carrierFlightNumber,
127
- bytes32 _departureYearMonthDay,
128
- uint256 _departureTime,
129
- uint256 _arrivalTime,
130
- uint256[5] memory _payouts
131
- ) external payable {
132
- // Validate input parameters
133
-
134
- uint256 premium = getValue();
135
- bytes32 bpKey = uniqueId(msg.sender);
136
-
137
- require(premium >= MIN_PREMIUM, "ERROR:FDD-001:INVALID_PREMIUM");
138
- require(premium <= MAX_PREMIUM, "ERROR:FDD-002:INVALID_PREMIUM");
139
- require(_arrivalTime > _departureTime, "ERROR:FDD-003:ARRIVAL_BEFORE_DEPARTURE_TIME");
140
- /* for demo uncommented ********************************************************/
141
- require(
142
- _arrivalTime <= _departureTime + MAX_FLIGHT_DURATION,
143
- "ERROR:FDD-004:INVALID_ARRIVAL/DEPARTURE_TIME"
144
- );
145
- require(
146
- _departureTime >= block.timestamp + MIN_TIME_BEFORE_DEPARTURE,
147
- "ERROR:FDD-012:INVALID_ARRIVAL/DEPARTURE_TIME"
148
- );
149
- require(
150
- _departureTime <= block.timestamp + MAX_TIME_BEFORE_DEPARTURE,
151
- "ERROR:FDD-005:INVALID_ARRIVAL/DEPARTURE_TIME"
152
- );
153
-
154
- // Create risk if not exists
155
- bytes32 riskId = keccak256(abi.encode(_carrierFlightNumber, _departureTime, _arrivalTime));
156
- Risk storage risk = risks[riskId];
157
-
158
- if (risk.carrierFlightNumber == "") {
159
- risk.carrierFlightNumber = _carrierFlightNumber;
160
- risk.departureYearMonthDay = _departureYearMonthDay;
161
- risk.departureTime = _departureTime;
162
- risk.arrivalTime = _arrivalTime;
163
- }
164
-
165
- require (
166
- premium * risk.premiumMultiplier + risk.estimatedMaxTotalPayout < MAX_TOTAL_PAYOUT,
167
- "ERROR:FDD-006:CLUSTER_RISK"
168
- );
169
-
170
- // if this is the first policy for this flight,
171
- // we "block" this risk by setting risk.estimatedMaxTotalPayout to
172
- // the maximum. Next flight for this risk can only be insured after this one has been underwritten.
173
- if (risk.estimatedMaxTotalPayout == 0) {
174
- risk.estimatedMaxTotalPayout = MAX_TOTAL_PAYOUT;
175
- }
176
-
177
- // Create new application
178
- // _newApplication(bpKey, abi.encode(premium, _payouts, msg.sender, riskId));
179
-
180
- // // Request flight ratings
181
- uint256 requestId; // = _request(
182
- // bpKey,
183
- // abi.encode(_carrierFlightNumber),
184
- // RATINGS_CALLBACK,
185
- // ratingsOracleType,
186
- // ratingsOracleId
187
- // );
188
-
189
- emit LogRequestFlightRatings(
190
- requestId,
191
- _carrierFlightNumber,
192
- _departureTime,
193
- _arrivalTime,
194
- riskId
195
- );
196
-
197
- /**
198
- * Record bpKey to address relation for easier lookup.
199
- */
200
- bpKeyToAddress[bpKey] = msg.sender;
201
- addressToBpKeys[msg.sender].push(bpKey);
202
- addressToPolicyCount[msg.sender] += 1;
203
-
204
- }
205
-
206
- function checkApplication(
207
- bytes32 _carrierFlightNumber,
208
- uint256 _departureTime,
209
- uint256 _arrivalTime,
210
- uint256 _premium
211
- )
212
- external view
213
- returns (uint256 errors)
214
- {
215
- // Validate input parameters
216
- if (_premium < MIN_PREMIUM) errors = errors | (uint256(1) << 0);
217
- if (_premium > MAX_PREMIUM) errors = errors | (uint256(1) << 1);
218
- if (_arrivalTime < _departureTime) errors = errors | (uint256(1) << 2);
219
- if (_arrivalTime > _departureTime + MAX_FLIGHT_DURATION) errors = errors | (uint256(1) << 3);
220
- if (_departureTime < block.timestamp + MIN_TIME_BEFORE_DEPARTURE) errors = errors | (uint256(1) << 4);
221
- if (_departureTime > block.timestamp + MAX_TIME_BEFORE_DEPARTURE) errors = errors | (uint256(1) << 5);
222
- bytes32 riskId = keccak256(abi.encode(_carrierFlightNumber, _departureTime, _arrivalTime));
223
- Risk storage risk = risks[riskId];
224
- if (_premium * risk.premiumMultiplier + risk.estimatedMaxTotalPayout >= MAX_TOTAL_PAYOUT) errors = errors | (uint256(1) << 6);
225
-
226
- return errors;
227
- }
228
-
229
- function declineAndPayback(bytes32 _bpKey, address payable _customer, uint256 _premium)
230
- internal
231
- {
232
- // _decline(_bpKey);
233
- // _customer.transfer(_premium);
234
- }
235
-
236
- function flightRatingsCallback(
237
- uint256 _requestId,
238
- bytes32 _bpKey,
239
- bytes calldata _response
240
- ) external onlyOracle {
241
-
242
- // Statistics: ['observations','late15','late30','late45','cancelled','diverted']
243
- uint256[6] memory _statistics = abi.decode(_response, (uint256[6]));
244
- uint256 premium;
245
- uint256[5] memory payouts;
246
- address payable customer;
247
- // (uint256 premium, uint256[5] memory payouts, address payable customer, bytes32 riskId) =
248
- // abi.decode(_getApplicationData(_bpKey), (uint256,uint256[5],address,bytes32));
249
- // if (_statistics[0] < MIN_OBSERVATIONS) {
250
- // declineAndPayback(_bpKey, customer, premium);
251
- // return;
252
- // }
253
-
254
- (uint256 weight, uint256[5] memory calculatedPayouts) = calculatePayouts(premium, _statistics);
255
- Risk storage risk; // = risks[riskId];
256
-
257
- for (uint256 i = 0; i < 5; i++) {
258
- if (calculatedPayouts[i] > MAX_PAYOUT) {
259
- emit LogError("ERROR:FDD-007:PAYOUT_GT_MAXPAYOUT", i, payouts[i], calculatedPayouts[i]);
260
- declineAndPayback(_bpKey, customer, premium);
261
- return;
262
- }
263
- if (calculatedPayouts[i] != payouts[i]) {
264
- emit LogError("ERROR:FDD-008:INVALID_PAYOUT_OPTION", i, payouts[i], calculatedPayouts[i]);
265
- declineAndPayback(_bpKey, customer, premium);
266
- return;
267
- }
268
- }
269
-
270
- // It's the first policy for this risk, we accept any premium
271
- // REMARK: all policy holders for this flight will share the same max payout estimates
272
- // trends during the onboarding of policies are not considered
273
- // if (risk.premiumMultiplier == 0) {
274
- // risk.premiumMultiplier = maxWeight * 10000 / weight;
275
- // risk.estimatedMaxTotalPayout = 0;
276
- // }
277
- // uint256 estimatedMaxPayout = premium * risk.premiumMultiplier;
278
- // if (estimatedMaxPayout > MAX_PAYOUT) { estimatedMaxPayout = MAX_PAYOUT; }
279
- // risk.estimatedMaxTotalPayout = risk.estimatedMaxTotalPayout + estimatedMaxPayout;
280
- // risk.weight = weight;
281
-
282
- // _underwrite(_bpKey);
283
-
284
- // uint256 requestId = _request(
285
- // _bpKey,
286
- // abi.encode(
287
- // risk.arrivalTime + CHECK_OFFSET,
288
- // risk.carrierFlightNumber,
289
- // risk.departureYearMonthDay
290
- // ),
291
- // STATUSES_CALLBACK,
292
- // statusesOracleType,
293
- // statusesOracleId
294
- // );
295
-
296
- // Now everything is prepared
297
- // address(RiskPool).transfer(premium);
298
-
299
- // emit LogRequestFlightStatus(
300
- // requestId,
301
- // risk.arrivalTime + CHECK_OFFSET,
302
- // risk.carrierFlightNumber,
303
- // risk.departureYearMonthDay
304
- // );
305
- }
306
-
307
- function flightStatusCallback(uint256 _requestId, bytes32 _bpKey, bytes calldata _response)
308
- external
309
- onlyOracle
310
- {
311
- (bytes1 status, int256 delay) = abi.decode(_response, (bytes1, int256));
312
- // (/* uint256 premium */, uint256[5] memory payouts, address payable customer, /* bytes32 riskId */) =
313
- // abi.decode(_getApplicationData(_bpKey), (uint256,uint256[5],address,bytes32));
314
-
315
- if (status != "L" && status != "A" && status != "C" && status != "D") {
316
- emit LogUnprocessableStatus(_bpKey, _requestId);
317
- return;
318
- }
319
-
320
- if (status == "A") {
321
- // todo: active, reschedule oracle call + 45 min
322
- // emit LogUnexpectedStatus(_bpKey, _requestId, status, delay, customer);
323
- return;
324
- }
325
-
326
- // if (status == "C") {
327
- // resolvePayout(_bpKey, payouts[3], customer);
328
- // } else if (status == "D") {
329
- // resolvePayout(_bpKey, payouts[4], customer);
330
- // } else if (delay >= 15 && delay < 30) {
331
- // resolvePayout(_bpKey, payouts[0], customer);
332
- // } else if (delay >= 30 && delay < 45) {
333
- // resolvePayout(_bpKey, payouts[1], customer);
334
- // } else if (delay >= 45) {
335
- // resolvePayout(_bpKey, payouts[2], customer);
336
- // } else {
337
- // resolvePayout(_bpKey, 0, customer);
338
- // }
339
- }
340
-
341
- function resolvePayout(bytes32 _bpKey, uint256 _payoutAmount, address payable _customer) internal {
342
- if (_payoutAmount == 0) {
343
- // _expire(_bpKey);
344
- emit LogPolicyExpired(_bpKey);
345
- } else {
346
- // uint256 claimId = _newClaim(_bpKey, abi.encode(_payoutAmount));
347
- // uint256 payoutId = _confirmClaim(_bpKey, claimId, abi.encode(_payoutAmount));
348
- // _payout(_bpKey, payoutId, true, abi.encode(_payoutAmount));
349
- _customer.transfer(_payoutAmount);
350
- // emit LogPayoutTransferred(_bpKey, claimId, payoutId, _payoutAmount);
351
- }
352
- }
353
-
354
- function calculatePayouts(uint256 _premium, uint256[6] memory _statistics)
355
- public
356
- view
357
- returns (uint256 _weight, uint256[5] memory _payoutOptions)
358
- {
359
- require(_premium >= MIN_PREMIUM, "ERROR:FDD-009:INVALID_PREMIUM");
360
- require(_premium <= MAX_PREMIUM, "ERROR:FDD-010:INVALID_PREMIUM");
361
- require(_statistics[0] >= MIN_OBSERVATIONS, "ERROR:FDD-011:LOW_OBSERVATIONS");
362
-
363
- _weight = 0;
364
- _payoutOptions = [uint256(0), 0, 0, 0, 0];
365
-
366
- for (uint256 i = 1; i < 6; i++) {
367
- _weight += weightPattern[i] * _statistics[i] * 10000 / _statistics[0];
368
- // 1% = 100 / 100% = 10,000
369
- }
370
-
371
- // To avoid div0 in the payout section, we have to make a minimal assumption on weight
372
- if (_weight == 0) {
373
- _weight = 100000 / _statistics[0];
374
- }
375
-
376
- _weight = _weight * (100 + MARGIN_PERCENT) / 100;
377
-
378
- for (uint256 i = 0; i < 5; i++) {
379
- _payoutOptions[i] = _premium * weightPattern[i + 1] * 10000 / _weight;
380
-
381
- if (_payoutOptions[i] > MAX_PAYOUT) {
382
- _payoutOptions[i] = MAX_PAYOUT;
383
- }
384
- }
385
- }
386
-
387
- function faucet(uint256 _amount) // for testing only
388
- public
389
- onlyOwner
390
- {
391
- require(_amount <= address(this).balance);
392
- address payable receiver;
393
- receiver = payable(owner);
394
- receiver.transfer(_amount);
395
- }
396
- }
@@ -1,5 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
5
- import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
@@ -1,62 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {RequestId} from "../type/RequestId.sol";
5
-
6
- // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
- library LibRequestIdSet {
8
-
9
- struct Set {
10
- RequestId[] ids;
11
- mapping(RequestId requestId => uint256 index) at;
12
- }
13
-
14
- error ErrorRequestIdSetAlreadyAdded(RequestId requestId);
15
- error ErrorRequestIdSetNotInSet(RequestId requestId);
16
-
17
-
18
- function add(Set storage set, RequestId requestId) external {
19
- if (set.at[requestId] > 0) {
20
- revert ErrorRequestIdSetAlreadyAdded(requestId);
21
- }
22
-
23
- set.ids.push(requestId);
24
- set.at[requestId] = set.ids.length;
25
- }
26
-
27
- function remove(Set storage set, RequestId requestId) external {
28
- uint256 requestIdIndex = set.at[requestId];
29
-
30
- if (requestIdIndex == 0) {
31
- revert ErrorRequestIdSetNotInSet(requestId);
32
- }
33
-
34
- uint256 toDeleteIndex = requestIdIndex - 1;
35
- uint256 lastIndex = set.ids.length - 1;
36
-
37
- if (lastIndex != toDeleteIndex) {
38
- RequestId lastId = set.ids[lastIndex];
39
- set.ids[toDeleteIndex] = lastId;
40
- set.at[lastId] = requestIdIndex; // Replace lastValue's index to valueIndex
41
- }
42
-
43
- set.ids.pop();
44
- delete set.at[requestId];
45
- }
46
-
47
- function isEmpty(Set storage set) external view returns(bool empty) {
48
- return set.ids.length == 0;
49
- }
50
-
51
- function contains(Set storage set, RequestId requestId) external view returns(bool inSet) {
52
- return set.at[requestId] > 0;
53
- }
54
-
55
- function size(Set storage set) external view returns(uint256 length) {
56
- return set.ids.length;
57
- }
58
-
59
- function getElementAt(Set storage set, uint256 index) external view returns(RequestId requestId) {
60
- return set.ids[index];
61
- }
62
- }