@etherisc/gif-next 3.0.0-80e6cc5-373 → 3.0.0-82728fa-320

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 (487) 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 +139 -72
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
  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 +20 -10
  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 +126 -75
  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 +72 -57
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
  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 +166 -104
  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 +200 -138
  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 +159 -102
  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 +163 -106
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
  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 +171 -114
  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 +49 -54
  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 +78 -26
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +145 -51
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
  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 +77 -179
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -75
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
  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 +53 -58
  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/Cloneable.sol/Cloneable.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  101. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -81
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -66
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +176 -117
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +182 -115
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +122 -128
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +72 -57
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +202 -216
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +163 -142
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +285 -244
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +127 -185
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -29
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +1 -28
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
  236. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
  238. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +72 -57
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -34
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  262. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +101 -56
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
  268. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.json +170 -109
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +25 -22
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -23
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -21
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.json +2 -21
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -36
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  331. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  332. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +63 -86
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  337. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  338. package/contracts/accounting/AccountingService.sol +5 -6
  339. package/contracts/accounting/AccountingServiceManager.sol +4 -6
  340. package/contracts/accounting/IAccountingService.sol +1 -1
  341. package/contracts/authorization/AccessAdmin.sol +22 -18
  342. package/contracts/authorization/AccessAdminLib.sol +12 -9
  343. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  344. package/contracts/authorization/Authorization.sol +2 -2
  345. package/contracts/authorization/IAccessAdmin.sol +3 -3
  346. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  347. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  348. package/contracts/distribution/BasicDistribution.sol +0 -2
  349. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  350. package/contracts/distribution/Distribution.sol +0 -2
  351. package/contracts/distribution/DistributionService.sol +24 -20
  352. package/contracts/distribution/DistributionServiceManager.sol +4 -6
  353. package/contracts/examples/fire/FirePool.sol +0 -4
  354. package/contracts/examples/fire/FireProduct.sol +0 -4
  355. package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
  356. package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
  357. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  358. package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
  359. package/contracts/instance/IInstance.sol +1 -1
  360. package/contracts/instance/Instance.sol +8 -12
  361. package/contracts/instance/InstanceAdmin.sol +10 -17
  362. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  363. package/contracts/instance/InstanceReader.sol +18 -40
  364. package/contracts/instance/InstanceService.sol +18 -20
  365. package/contracts/instance/InstanceServiceManager.sol +4 -6
  366. package/contracts/instance/base/Cloneable.sol +4 -10
  367. package/contracts/instance/base/ObjectSet.sol +2 -2
  368. package/contracts/oracle/BasicOracle.sol +0 -2
  369. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  370. package/contracts/oracle/IOracleService.sol +12 -16
  371. package/contracts/oracle/Oracle.sol +3 -4
  372. package/contracts/oracle/OracleService.sol +37 -67
  373. package/contracts/oracle/OracleServiceManager.sol +4 -6
  374. package/contracts/pool/BasicPool.sol +2 -4
  375. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  376. package/contracts/pool/BundleService.sol +25 -19
  377. package/contracts/pool/BundleServiceManager.sol +5 -7
  378. package/contracts/pool/IPoolService.sol +5 -6
  379. package/contracts/pool/Pool.sol +1 -3
  380. package/contracts/pool/PoolLib.sol +5 -102
  381. package/contracts/pool/PoolService.sol +67 -101
  382. package/contracts/pool/PoolServiceManager.sol +4 -6
  383. package/contracts/product/ApplicationService.sol +13 -34
  384. package/contracts/product/ApplicationServiceManager.sol +4 -6
  385. package/contracts/product/BasicProduct.sol +0 -2
  386. package/contracts/product/BasicProductAuthorization.sol +7 -7
  387. package/contracts/product/ClaimService.sol +10 -34
  388. package/contracts/product/ClaimServiceManager.sol +5 -7
  389. package/contracts/product/IPolicyService.sol +0 -1
  390. package/contracts/product/PolicyService.sol +44 -57
  391. package/contracts/product/PolicyServiceManager.sol +4 -6
  392. package/contracts/product/PricingService.sol +7 -8
  393. package/contracts/product/PricingServiceManager.sol +4 -6
  394. package/contracts/product/Product.sol +0 -2
  395. package/contracts/product/RiskService.sol +8 -40
  396. package/contracts/product/RiskServiceManager.sol +4 -6
  397. package/contracts/registry/IRegistry.sol +20 -14
  398. package/contracts/registry/IRegistryService.sol +10 -14
  399. package/contracts/registry/IRelease.sol +0 -3
  400. package/contracts/registry/Registry.sol +124 -78
  401. package/contracts/registry/RegistryAdmin.sol +11 -22
  402. package/contracts/registry/RegistryAuthorization.sol +4 -3
  403. package/contracts/registry/RegistryService.sol +99 -82
  404. package/contracts/registry/RegistryServiceManager.sol +4 -11
  405. package/contracts/registry/ReleaseAdmin.sol +9 -16
  406. package/contracts/registry/ReleaseRegistry.sol +64 -74
  407. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  408. package/contracts/registry/TokenRegistry.sol +6 -15
  409. package/contracts/shared/Component.sol +27 -22
  410. package/contracts/shared/ComponentService.sol +45 -130
  411. package/contracts/shared/ComponentServiceManager.sol +5 -7
  412. package/contracts/shared/ContractLib.sol +359 -93
  413. package/contracts/shared/IComponent.sol +5 -3
  414. package/contracts/shared/IComponentService.sol +0 -14
  415. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  416. package/contracts/shared/INftOwnable.sol +0 -2
  417. package/contracts/shared/IRegisterable.sol +14 -3
  418. package/contracts/shared/IRegistryLinked.sol +1 -3
  419. package/contracts/shared/IService.sol +2 -2
  420. package/contracts/shared/IVersionable.sol +19 -0
  421. package/contracts/shared/InstanceLinkedComponent.sol +38 -128
  422. package/contracts/shared/NftOwnable.sol +9 -22
  423. package/contracts/shared/PolicyHolder.sol +2 -4
  424. package/contracts/shared/Registerable.sol +37 -20
  425. package/contracts/shared/RegistryLinked.sol +4 -23
  426. package/contracts/shared/Service.sol +8 -9
  427. package/contracts/shared/TokenHandler.sol +4 -1
  428. package/contracts/shared/Versionable.sol +47 -0
  429. package/contracts/staking/IStaking.sol +2 -2
  430. package/contracts/staking/Staking.sol +28 -33
  431. package/contracts/staking/StakingLib.sol +3 -1
  432. package/contracts/staking/StakingManager.sol +3 -6
  433. package/contracts/staking/StakingReader.sol +9 -17
  434. package/contracts/staking/StakingService.sol +16 -13
  435. package/contracts/staking/StakingServiceManager.sol +4 -8
  436. package/contracts/staking/StakingStore.sol +8 -8
  437. package/contracts/staking/TargetHandler.sol +4 -5
  438. package/contracts/type/ObjectType.sol +31 -2
  439. package/contracts/type/Referral.sol +0 -6
  440. package/contracts/type/Seconds.sol +0 -4
  441. package/contracts/type/String.sol +0 -30
  442. package/contracts/type/Timestamp.sol +1 -10
  443. package/contracts/type/Version.sol +15 -16
  444. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  445. package/contracts/upgradeability/ProxyManager.sol +46 -54
  446. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  447. package/package.json +1 -2
  448. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +0 -4
  449. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +0 -500
  450. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +0 -4
  451. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +0 -229
  452. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +0 -4
  453. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +0 -1198
  454. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +0 -4
  455. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +0 -849
  456. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +0 -4
  457. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +0 -1466
  458. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +0 -4
  459. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +0 -844
  460. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +0 -4
  461. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +0 -2371
  462. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +0 -4
  463. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +0 -844
  464. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +0 -4
  465. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +0 -586
  466. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +0 -4
  467. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +0 -901
  468. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
  469. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
  470. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
  471. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
  472. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +0 -4
  473. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +0 -33
  474. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  475. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
  476. package/contracts/examples/flight/FlightLib.sol +0 -311
  477. package/contracts/examples/flight/FlightMessageVerifier.sol +0 -128
  478. package/contracts/examples/flight/FlightOracle.sol +0 -167
  479. package/contracts/examples/flight/FlightOracleAuthorization.sol +0 -34
  480. package/contracts/examples/flight/FlightPool.sol +0 -89
  481. package/contracts/examples/flight/FlightPoolAuthorization.sol +0 -37
  482. package/contracts/examples/flight/FlightProduct.sol +0 -644
  483. package/contracts/examples/flight/FlightProductAuthorization.sol +0 -45
  484. package/contracts/examples/flight/FlightUSD.sol +0 -28
  485. package/contracts/examples/flight/originalV1.sol +0 -396
  486. package/contracts/shared/EcdsaChecker.sol +0 -5
  487. package/contracts/type/RequestIdSet.sol +0 -62
@@ -1,644 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
-
7
- import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
- import {IComponents} from "../../instance/module/IComponents.sol";
9
-
10
- import {Amount, AmountLib} from "../../type/Amount.sol";
11
- import {BasicProduct} from "../../product/BasicProduct.sol";
12
- import {ClaimId} from "../../type/ClaimId.sol";
13
- import {FeeLib} from "../../type/Fee.sol";
14
- import {FlightLib} from "./FlightLib.sol";
15
- import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
16
- import {FlightOracle} from "./FlightOracle.sol";
17
- import {InstanceReader} from "../../instance/InstanceReader.sol";
18
- import {NftId, NftIdLib} from "../../type/NftId.sol";
19
- import {PayoutId} from "../../type/PayoutId.sol";
20
- import {ReferralLib} from "../../type/Referral.sol";
21
- import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
22
- import {RequestId} from "../../type/RequestId.sol";
23
- import {Seconds, SecondsLib} from "../../type/Seconds.sol";
24
- import {Str} from "../../type/String.sol";
25
- import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
26
-
27
-
28
- /// @dev FlightProduct implements the flight delay product.
29
- contract FlightProduct is
30
- BasicProduct
31
- {
32
-
33
- event LogRequestFlightRatings(uint256 requestId, bytes32 carrierFlightNumber, uint256 departureTime, uint256 arrivalTime, bytes32 riskId);
34
- event LogRequestFlightStatus(uint256 requestId, uint256 arrivalTime, bytes32 carrierFlightNumber, bytes32 departureYearMonthDay);
35
- event LogPayoutTransferred(bytes32 bpKey, uint256 claimId, uint256 payoutId, uint256 amount);
36
- event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
37
-
38
- // TODO convert error logs to custom errors
39
- event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
40
- event LogPolicyExpired(bytes32 bpKey);
41
-
42
- event LogErrorRiskInvalid(RequestId requestId, RiskId riskId);
43
- event LogErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
44
- event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
45
-
46
- error ErrorApplicationDataSignatureMismatch(address expectedSigner, address actualSigner);
47
-
48
- // solhint-disable
49
- // Minimum observations for valid prediction
50
- uint256 public immutable MIN_OBSERVATIONS = 10;
51
- // Minimum time before departure for applying
52
- Seconds public MIN_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(14);
53
- // Maximum time before departure for applying
54
- Seconds public MAX_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(90);
55
- // Maximum duration of flight
56
- Seconds public MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
57
- // Check for delay after .. minutes after scheduled arrival
58
- Seconds public CHECK_OFFSET = SecondsLib.fromHours(1);
59
- // Max time to process claims after departure
60
- Seconds public LIFETIME = SecondsLib.fromDays(30);
61
-
62
- // uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
63
- // All amounts in cent = multiplier is 10 ** 16!
64
- Amount public MIN_PREMIUM;
65
- Amount public MAX_PREMIUM;
66
- Amount public MAX_PAYOUT;
67
- Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight is 3x max payout.
68
-
69
- // Maximum cumulated weighted premium per risk
70
- uint256 public MARGIN_PERCENT = 30;
71
-
72
- // Maximum number of policies to process in one callback
73
- uint8 public MAX_POLICIES_TO_PROCESS = 5;
74
-
75
- // ['observations','late15','late30','late45','cancelled','diverted']
76
- // no payouts for delays of 30' or less
77
- uint8[6] public WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
78
- uint8 public constant MAX_WEIGHT = 50;
79
-
80
- // GIF V3 specifics
81
- NftId internal _defaultBundleNftId;
82
-
83
- // TODO add product (base contract) functions
84
- // - getOracleNftId(idx)
85
- // - getDistributionNftId()
86
- // - getPoolNftId()
87
- NftId internal _oracleNftId; // TODO refactor to getOracleNftId(0)
88
- // solhint-enable
89
-
90
- FlightMessageVerifier internal _flightMessageVerifier;
91
-
92
-
93
- struct FlightRisk {
94
- Str flightData; // example: "LX 180 ZRH BKK 20241104"
95
- Timestamp departureTime;
96
- Timestamp arrivalTime;
97
- Amount sumOfSumInsuredAmounts;
98
- // uint256 premiumMultiplier; // what is this? UFixed?
99
- // uint256 weight; // what is this? UFixed?
100
- bytes1 status; // 'L'ate, 'C'ancelled, 'D'iverted, ...
101
- int256 delayMinutes;
102
- }
103
-
104
- struct ApplicationData {
105
- Str flightData;
106
- Timestamp departureTime;
107
- Timestamp arrivalTime;
108
- Amount premiumAmount;
109
- uint256[6] statistics;
110
- uint8 v;
111
- bytes32 r;
112
- bytes32 s;
113
- }
114
-
115
- struct PermitData {
116
- address owner;
117
- address spender;
118
- uint256 value;
119
- uint256 deadline;
120
- uint8 v;
121
- bytes32 r;
122
- bytes32 s;
123
- }
124
-
125
-
126
- constructor(
127
- address registry,
128
- NftId instanceNftid,
129
- string memory componentName,
130
- IAuthorization authorization,
131
- FlightMessageVerifier messageVerifier
132
- )
133
- {
134
- address initialOwner = msg.sender;
135
-
136
- _initialize(
137
- registry,
138
- instanceNftid,
139
- componentName,
140
- authorization,
141
- initialOwner);
142
-
143
- _flightMessageVerifier = messageVerifier;
144
- }
145
-
146
- //--- external functions ------------------------------------------------//
147
- //--- unpermissioned functions ------------------------------------------//
148
-
149
- function setOracleNftId()
150
- external
151
- {
152
- _oracleNftId = _getInstanceReader().getProductInfo(
153
- getNftId()).oracleNftId[0];
154
- }
155
-
156
- function calculatePayoutAmounts(
157
- FlightProduct flightProduct,
158
- Amount premium,
159
- uint256[6] memory statistics
160
- )
161
- external
162
- view
163
- returns (
164
- uint256 weight,
165
- Amount[5] memory payoutAmounts,
166
- Amount sumInsuredAmount // simply the max of payoutAmounts
167
- )
168
- {
169
- return FlightLib.calculatePayoutAmounts(
170
- flightProduct,
171
- premium,
172
- statistics);
173
- }
174
-
175
- /// @dev Creates a policy using a permit for the policy holder.
176
- /// The policy holder is defined as the owner parameter of the permit data.
177
- /// NOTE: This function makes the assumption that the product token
178
- /// supports permits. This assumption is not verfied.
179
- function createPolicyWithPermit(
180
- PermitData memory permit,
181
- ApplicationData memory application
182
- )
183
- external
184
- virtual
185
- restricted()
186
- returns (
187
- RiskId riskId,
188
- NftId policyNftId
189
- )
190
- {
191
- // process permit data
192
- processPermit(permit);
193
-
194
- // create policy
195
- address policyHolder = permit.owner;
196
- (
197
- riskId,
198
- policyNftId
199
- ) = createPolicy(
200
- policyHolder,
201
- application.flightData,
202
- application.departureTime,
203
- application.arrivalTime,
204
- application.premiumAmount,
205
- application.statistics);
206
- // application.v,
207
- // application.r,
208
- // application.s);
209
- }
210
-
211
-
212
- function processPermit(
213
- PermitData memory permit
214
- )
215
- public
216
- virtual
217
- restricted()
218
- {
219
- address tokenAddress = address(getToken());
220
-
221
- // process permit data
222
- ERC20Permit(tokenAddress).permit(
223
- permit.owner,
224
- permit.spender,
225
- permit.value,
226
- permit.deadline,
227
- permit.v,
228
- permit.r,
229
- permit.s);
230
- }
231
-
232
-
233
- function createPolicy(
234
- address policyHolder,
235
- Str flightData,
236
- Timestamp departureTime,
237
- Timestamp arrivalTime,
238
- Amount premiumAmount,
239
- uint256[6] memory statistics
240
- // signature fields
241
- // uint8 v,
242
- // bytes32 r,
243
- // bytes32 s
244
- )
245
- public
246
- virtual
247
- restricted()
248
- returns (
249
- RiskId riskId,
250
- NftId policyNftId
251
- )
252
- {
253
- // checks
254
- // disabled for now - using rbac for security
255
- // FlightLib.checkApplicationDataAndSignature(
256
- // this,
257
- // flightData,
258
- // departureTime,
259
- // arrivalTime,
260
- // premiumAmount,
261
- // statistics,
262
- // v, r, s);
263
-
264
- (riskId, policyNftId) = _prepareApplication(
265
- policyHolder,
266
- flightData,
267
- departureTime,
268
- arrivalTime,
269
- premiumAmount,
270
- statistics);
271
-
272
- _createPolicy(
273
- policyNftId,
274
- TimestampLib.zero(), // do not ativate yet
275
- premiumAmount); // max premium amount
276
-
277
- // interactions (token transfer + callback to token holder, if contract)
278
- _collectPremium(
279
- policyNftId,
280
- departureTime); // activate at scheduled departure time of flight
281
-
282
- // send oracle request for flight status (interacts with flight oracle contract)
283
- _sendRequest(
284
- _oracleNftId,
285
- abi.encode(
286
- FlightOracle.FlightStatusRequest(
287
- riskId,
288
- flightData,
289
- departureTime)),
290
- // allow up to 30 days to process the claim
291
- arrivalTime.addSeconds(SecondsLib.fromDays(30)),
292
- "flightStatusCallback");
293
- }
294
-
295
-
296
- function _prepareApplication(
297
- address policyHolder,
298
- Str flightData,
299
- Timestamp departureTime,
300
- Timestamp arrivalTime,
301
- Amount premiumAmount,
302
- uint256[6] memory statistics
303
- )
304
- internal
305
- virtual
306
- returns (
307
- RiskId riskId,
308
- NftId policyNftId
309
- )
310
- {
311
- Amount[5] memory payoutAmounts;
312
- Amount sumInsuredAmount;
313
-
314
- (
315
- riskId,
316
- payoutAmounts,
317
- sumInsuredAmount
318
- ) = _createRiskAndPayoutAmounts(
319
- flightData,
320
- departureTime,
321
- arrivalTime,
322
- premiumAmount,
323
- statistics);
324
-
325
- policyNftId = _createApplication(
326
- policyHolder,
327
- riskId,
328
- sumInsuredAmount,
329
- premiumAmount,
330
- LIFETIME,
331
- _defaultBundleNftId,
332
- ReferralLib.zero(),
333
- abi.encode(
334
- premiumAmount,
335
- payoutAmounts)); // application data
336
- }
337
-
338
-
339
- /// @dev Callback for flight status oracle.
340
- /// Function may only be alled by oracle service.
341
- function flightStatusCallback(
342
- RequestId requestId,
343
- bytes memory responseData
344
- )
345
- external
346
- virtual
347
- restricted()
348
- {
349
- FlightOracle.FlightStatusResponse memory response = abi.decode(
350
- responseData, (FlightOracle.FlightStatusResponse));
351
-
352
- _processFlightStatus(
353
- requestId,
354
- response.riskId,
355
- response.status,
356
- response.delayMinutes,
357
- MAX_POLICIES_TO_PROCESS);
358
- }
359
-
360
-
361
- /// @dev Manual fallback function for product owner.
362
- function processFlightStatus(
363
- RequestId requestId,
364
- RiskId riskId,
365
- bytes1 status,
366
- int256 delayMinutes,
367
- uint8 maxPoliciesToProcess
368
- )
369
- external
370
- virtual
371
- restricted()
372
- onlyOwner()
373
- {
374
- _processFlightStatus(
375
- requestId,
376
- riskId,
377
- status,
378
- delayMinutes,
379
- maxPoliciesToProcess);
380
- }
381
-
382
- //--- owner functions ---------------------------------------------------//
383
-
384
- /// @dev Call after product registration with the instance, when the product token/tokenhandler is available
385
- function completeSetup()
386
- external
387
- virtual
388
- restricted()
389
- onlyOwner()
390
- {
391
- IERC20Metadata token = IERC20Metadata(getToken());
392
- uint256 tokenMultiplier = 10 ** token.decimals();
393
-
394
- MIN_PREMIUM = AmountLib.toAmount(15 * tokenMultiplier);
395
- MAX_PREMIUM = AmountLib.toAmount(200 * tokenMultiplier);
396
- MAX_PAYOUT = AmountLib.toAmount(500 * tokenMultiplier);
397
- MAX_TOTAL_PAYOUT = AmountLib.toAmount(3 * MAX_PAYOUT.toInt());
398
- }
399
-
400
-
401
- function setDefaultBundle(NftId bundleNftId) external restricted() onlyOwner() { _defaultBundleNftId = bundleNftId; }
402
- function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
403
- function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
404
- function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
405
-
406
-
407
- //--- view functions ----------------------------------------------------//
408
-
409
-
410
- function calculateNetPremium(
411
- Amount, // sumInsuredAmount: not used in this product
412
- RiskId, // riskId: not used in this product
413
- Seconds, // lifetime: not used in this product, a flight is a one time risk
414
- bytes memory applicationData // holds the premium amount the customer is willing to pay
415
- )
416
- external
417
- virtual override
418
- view
419
- returns (Amount netPremiumAmount)
420
- {
421
- (netPremiumAmount, ) = abi.decode(applicationData, (Amount, Amount[5]));
422
- }
423
-
424
-
425
- function getFlightMessageVerifier()
426
- external
427
- view
428
- returns (FlightMessageVerifier)
429
- {
430
- return _flightMessageVerifier;
431
- }
432
-
433
-
434
- function getOracleNftId()
435
- public
436
- view
437
- returns (NftId oracleNftId)
438
- {
439
- return _oracleNftId;
440
- }
441
-
442
-
443
- //--- internal functions ------------------------------------------------//
444
-
445
-
446
- function _createRiskAndPayoutAmounts(
447
- Str flightData,
448
- Timestamp departureTime,
449
- Timestamp arrivalTime,
450
- Amount premiumAmount,
451
- uint256[6] memory statistics
452
- )
453
- internal
454
- virtual
455
- returns (
456
- RiskId riskId,
457
- Amount[5] memory payoutAmounts,
458
- Amount sumInsuredAmount
459
- )
460
- {
461
- uint256 weight;
462
-
463
- (
464
- weight,
465
- payoutAmounts,
466
- sumInsuredAmount
467
- ) = FlightLib.calculatePayoutAmounts(
468
- this,
469
- premiumAmount,
470
- statistics);
471
-
472
- riskId = _checkAndUpdateFlightRisk(
473
- flightData,
474
- departureTime,
475
- arrivalTime,
476
- sumInsuredAmount,
477
- weight);
478
- }
479
-
480
-
481
- function _checkAndUpdateFlightRisk(
482
- Str flightData,
483
- Timestamp departureTime,
484
- Timestamp arrivalTime,
485
- Amount sumInsuredAmount,
486
- uint256 weight
487
- )
488
- internal
489
- virtual
490
- returns (RiskId riskId)
491
- {
492
- bool exists;
493
- FlightRisk memory flightRisk;
494
- (riskId, exists, flightRisk) = FlightLib.getFlightRisk(
495
- _getInstanceReader(),
496
- getNftId(),
497
- flightData,
498
- departureTime,
499
- arrivalTime);
500
-
501
- // create risk, if new
502
- if (!exists) {
503
- bytes32 riskKey = FlightLib.getRiskKey(flightData);
504
- _createRisk(riskKey, abi.encode(flightRisk));
505
- }
506
-
507
- // check for cluster risk: additional sum insured amount must not exceed MAX_TOTAL_PAYOUT
508
- require (
509
- flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount <= MAX_TOTAL_PAYOUT,
510
- "ERROR:FDD-006:CLUSTER_RISK"
511
- );
512
-
513
- // update existing risk with additional sum insured amount
514
- flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
515
- _updateRisk(riskId, abi.encode(flightRisk));
516
- }
517
-
518
-
519
- function _processFlightStatus(
520
- RequestId requestId,
521
- RiskId riskId,
522
- bytes1 status,
523
- int256 delayMinutes,
524
- uint8 maxPoliciesToProcess
525
- )
526
- internal
527
- virtual
528
- {
529
- // check risk exists
530
- InstanceReader reader = _getInstanceReader();
531
- (
532
- bool exists,
533
- FlightRisk memory flightRisk
534
- ) = FlightLib.getFlightRisk(reader, getNftId(), riskId);
535
-
536
- if (!exists) {
537
- emit LogErrorRiskInvalid(requestId, riskId);
538
- return;
539
- }
540
-
541
- uint8 payoutOption = FlightLib.checkAndGetPayoutOption(
542
- requestId, riskId, status, delayMinutes);
543
-
544
- _processPayoutsAndClosePolicies(
545
- riskId,
546
- payoutOption,
547
- maxPoliciesToProcess);
548
-
549
- // logging
550
- emit LogFlightStatusProcessed(requestId, riskId, status, delayMinutes, payoutOption);
551
- }
552
-
553
-
554
- // REMARK caller responsible to check that risk exists.
555
- function _processPayoutsAndClosePolicies(
556
- RiskId riskId,
557
- uint8 payoutOption,
558
- uint8 maxPoliciesToProcess
559
- )
560
- internal
561
- virtual
562
- {
563
- // determine numbers of policies to process
564
- InstanceReader reader = _getInstanceReader();
565
- uint256 policiesToProcess = reader.policiesForRisk(riskId);
566
- policiesToProcess = policiesToProcess < maxPoliciesToProcess ? policiesToProcess : maxPoliciesToProcess;
567
-
568
- // go trough policies
569
- for (uint256 i = 0; i < policiesToProcess; i++) {
570
- NftId policyNftId = reader.getPolicyForRisk(riskId, i);
571
-
572
- // create payout (if any)
573
- if (payoutOption < type(uint8).max) {
574
- bytes memory applicationData = reader.getPolicyInfo(
575
- policyNftId).applicationData;
576
-
577
- _resolvePayout(
578
- policyNftId,
579
- FlightLib.getPayoutAmount(
580
- applicationData,
581
- payoutOption));
582
- }
583
-
584
- // expire and close policy
585
- _expire(policyNftId, TimestampLib.current());
586
- _close(policyNftId);
587
- }
588
- }
589
-
590
-
591
- function _resolvePayout(
592
- NftId policyNftId,
593
- Amount payoutAmount
594
- )
595
- internal
596
- virtual
597
- {
598
- // create confirmed claim
599
- ClaimId claimId = _submitClaim(policyNftId, payoutAmount, "");
600
- _confirmClaim(policyNftId, claimId, payoutAmount, "");
601
-
602
- // create and execute payout
603
- PayoutId payoutId = _createPayout(policyNftId, claimId, payoutAmount, "");
604
- _processPayout(policyNftId, payoutId);
605
- }
606
-
607
-
608
- function _initialize(
609
- address registry,
610
- NftId instanceNftId,
611
- string memory componentName,
612
- IAuthorization authorization,
613
- address initialOwner
614
- )
615
- internal
616
- initializer
617
- {
618
- _initializeBasicProduct(
619
- registry,
620
- instanceNftId,
621
- componentName,
622
- IComponents.ProductInfo({
623
- isProcessingFundedClaims: false,
624
- isInterceptingPolicyTransfers: false,
625
- hasDistribution: false,
626
- expectedNumberOfOracles: 1,
627
- numberOfOracles: 0,
628
- poolNftId: NftIdLib.zero(),
629
- distributionNftId: NftIdLib.zero(),
630
- oracleNftId: new NftId[](0)
631
- }),
632
- IComponents.FeeInfo({
633
- productFee: FeeLib.zero(),
634
- processingFee: FeeLib.zero(),
635
- distributionFee: FeeLib.zero(),
636
- minDistributionOwnerFee: FeeLib.zero(),
637
- poolFee: FeeLib.zero(),
638
- stakingFee: FeeLib.zero(),
639
- performanceFee: FeeLib.zero()
640
- }),
641
- authorization,
642
- initialOwner); // number of oracles
643
- }
644
- }
@@ -1,45 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IAccess} from "../../../contracts/authorization/IAccess.sol";
5
-
6
- import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
7
- import {FlightProduct} from "./FlightProduct.sol";
8
- import {ORACLE} from "../../../contracts/type/ObjectType.sol";
9
- import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
-
11
-
12
- contract FlightProductAuthorization
13
- is BasicProductAuthorization
14
- {
15
-
16
- constructor(string memory poolName)
17
- BasicProductAuthorization(poolName)
18
- {}
19
-
20
- function _setupTargetAuthorizations()
21
- internal
22
- virtual override
23
- {
24
- super._setupTargetAuthorizations();
25
- IAccess.FunctionInfo[] storage functions;
26
-
27
- // authorize oracle service
28
- functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
- _authorize(functions, FlightProduct.flightStatusCallback.selector, "flightStatusCallback");
30
-
31
- // authorize public role (open access to any account, only allows to lock target)
32
- functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
33
- _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
34
- _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
35
-
36
- // TODO: only owner
37
- _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
38
- _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
39
- _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
40
- _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
41
- _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
42
- _authorize(functions, FlightProduct.setWallet.selector, "setWallet");
43
- }
44
- }
45
-