@etherisc/gif-next 3.0.0-d6ff88d-936 → 3.0.0-d899b88-408

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 (385) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -12
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -52
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  46. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  47. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
  48. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  50. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  51. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +185 -30
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +14 -14
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +370 -654
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
  64. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +15 -15
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +12 -12
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +16 -16
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +18 -18
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +119 -131
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +93 -34
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  133. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  139. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
  141. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  154. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  156. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
  158. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
  160. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  162. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
  164. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  165. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  166. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  167. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  168. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  169. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
  171. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  172. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
  175. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  177. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
  180. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  181. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  182. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
  184. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  185. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  186. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
  188. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  190. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +34 -28
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +113 -125
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +123 -135
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +106 -96
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +73 -48
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +25 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  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 +2 -2
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -48
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -14
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  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/Fee.sol/FeeLib.json +2 -7
  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 +2 -2
  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 +2 -2
  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/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  326. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  328. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  330. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  332. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  334. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  336. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  338. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  340. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  341. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  343. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  344. package/contracts/accounting/AccountingService.sol +17 -29
  345. package/contracts/accounting/IAccountingService.sol +7 -8
  346. package/contracts/authorization/AccessAdmin.sol +6 -25
  347. package/contracts/authorization/AccessAdminLib.sol +18 -1
  348. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  349. package/contracts/distribution/DistributionService.sol +5 -3
  350. package/contracts/distribution/IDistributionService.sol +4 -3
  351. package/contracts/examples/flight/FlightLib.sol +90 -75
  352. package/contracts/examples/flight/FlightNft.sol +234 -0
  353. package/contracts/examples/flight/FlightOracle.sol +68 -9
  354. package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
  355. package/contracts/examples/flight/FlightPool.sol +1 -1
  356. package/contracts/examples/flight/FlightProduct.sol +279 -246
  357. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  358. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  359. package/contracts/instance/BaseStore.sol +4 -0
  360. package/contracts/instance/IBaseStore.sol +8 -0
  361. package/contracts/instance/IInstanceService.sol +2 -0
  362. package/contracts/instance/InstanceAdmin.sol +0 -1
  363. package/contracts/instance/InstanceReader.sol +19 -5
  364. package/contracts/instance/InstanceService.sol +4 -0
  365. package/contracts/oracle/BasicOracle.sol +1 -0
  366. package/contracts/oracle/Oracle.sol +2 -2
  367. package/contracts/pool/BundleService.sol +1 -1
  368. package/contracts/pool/IBundleService.sol +1 -1
  369. package/contracts/pool/IPoolService.sol +1 -1
  370. package/contracts/pool/PoolService.sol +1 -1
  371. package/contracts/product/IPolicyService.sol +1 -1
  372. package/contracts/product/PolicyService.sol +1 -1
  373. package/contracts/product/PolicyServiceLib.sol +5 -3
  374. package/contracts/registry/ChainNft.sol +1 -1
  375. package/contracts/registry/IRegistry.sol +1 -1
  376. package/contracts/registry/Registry.sol +1 -1
  377. package/contracts/registry/RegistryAdmin.sol +7 -1
  378. package/contracts/registry/ReleaseAdmin.sol +8 -1
  379. package/contracts/shared/ComponentService.sol +5 -0
  380. package/contracts/shared/IComponentService.sol +1 -0
  381. package/contracts/staking/IStaking.sol +2 -0
  382. package/contracts/staking/IStakingService.sol +1 -1
  383. package/contracts/staking/Staking.sol +1 -0
  384. package/contracts/staking/StakingService.sol +1 -1
  385. package/package.json +3 -3
@@ -9,7 +9,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
9
9
  import {Amount, AmountLib} from "../type/Amount.sol";
10
10
  import {Fee} from "../type/Fee.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
- import {ObjectType, ACCOUNTING, BUNDLE, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
12
+ import {ObjectType, ACCOUNTING, BUNDLE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
13
13
  import {Service} from "../shared/Service.sol";
14
14
 
15
15
 
@@ -46,7 +46,7 @@ contract AccountingService is
46
46
  virtual
47
47
  restricted()
48
48
  {
49
- _changeTargetBalance(DECREASE, instanceStore, componentNftId, AmountLib.zero(), feeAmount);
49
+ _changeTargetBalance(DECREASE, instanceStore, componentNftId, COMPONENT(), AmountLib.zero(), feeAmount);
50
50
  }
51
51
 
52
52
 
@@ -60,7 +60,7 @@ contract AccountingService is
60
60
  restricted()
61
61
  {
62
62
  _checkNftType(productNftId, PRODUCT());
63
- _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
63
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
64
64
  }
65
65
 
66
66
  function increaseProductFeesForPool(
@@ -73,7 +73,7 @@ contract AccountingService is
73
73
  restricted()
74
74
  {
75
75
  _checkNftType(productNftId, PRODUCT());
76
- _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
76
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
77
77
  }
78
78
 
79
79
 
@@ -83,7 +83,7 @@ contract AccountingService is
83
83
  restricted()
84
84
  {
85
85
  _checkNftType(productNftId, PRODUCT());
86
- _changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
86
+ _changeTargetBalance(DECREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
87
87
  }
88
88
 
89
89
  function increaseDistributionBalance(
@@ -97,7 +97,7 @@ contract AccountingService is
97
97
  restricted()
98
98
  {
99
99
  _checkNftType(distributionNftId, DISTRIBUTION());
100
- _changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
100
+ _changeTargetBalance(INCREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
101
101
  }
102
102
 
103
103
 
@@ -112,7 +112,7 @@ contract AccountingService is
112
112
  restricted()
113
113
  {
114
114
  _checkNftType(distributionNftId, DISTRIBUTION());
115
- _changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
115
+ _changeTargetBalance(DECREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
116
116
  }
117
117
 
118
118
  function increaseDistributorBalance(
@@ -126,7 +126,7 @@ contract AccountingService is
126
126
  restricted()
127
127
  {
128
128
  _checkNftType(distributorNftId, DISTRIBUTOR());
129
- _changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
129
+ _changeTargetBalance(INCREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
130
130
  }
131
131
 
132
132
  function decreaseDistributorBalance(
@@ -140,7 +140,7 @@ contract AccountingService is
140
140
  restricted()
141
141
  {
142
142
  _checkNftType(distributorNftId, DISTRIBUTOR());
143
- _changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
143
+ _changeTargetBalance(DECREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
144
144
  }
145
145
 
146
146
  function increasePoolBalance(
@@ -154,7 +154,7 @@ contract AccountingService is
154
154
  restricted()
155
155
  {
156
156
  _checkNftType(poolNftId, POOL());
157
- _changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
157
+ _changeTargetBalance(INCREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
158
158
  }
159
159
 
160
160
  function decreasePoolBalance(
@@ -168,7 +168,7 @@ contract AccountingService is
168
168
  restricted()
169
169
  {
170
170
  _checkNftType(poolNftId, POOL());
171
- _changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
171
+ _changeTargetBalance(DECREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
172
172
  }
173
173
 
174
174
  function increaseBundleBalance(
@@ -182,7 +182,7 @@ contract AccountingService is
182
182
  restricted()
183
183
  {
184
184
  _checkNftType(bundleNftId, BUNDLE());
185
- _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
185
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
186
186
  }
187
187
 
188
188
  function decreaseBundleBalance(
@@ -196,7 +196,7 @@ contract AccountingService is
196
196
  restricted()
197
197
  {
198
198
  _checkNftType(bundleNftId, BUNDLE());
199
- _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
199
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
200
200
  }
201
201
 
202
202
  function increaseBundleBalanceForPool(
@@ -210,7 +210,7 @@ contract AccountingService is
210
210
  restricted()
211
211
  {
212
212
  _checkNftType(bundleNftId, BUNDLE());
213
- _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
213
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
214
214
  }
215
215
 
216
216
  function decreaseBundleBalanceForPool(
@@ -224,7 +224,7 @@ contract AccountingService is
224
224
  restricted()
225
225
  {
226
226
  _checkNftType(bundleNftId, BUNDLE());
227
- _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
227
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
228
228
  }
229
229
 
230
230
 
@@ -234,6 +234,7 @@ contract AccountingService is
234
234
  bool increase,
235
235
  InstanceStore instanceStore,
236
236
  NftId targetNftId,
237
+ ObjectType objectType,
237
238
  Amount amount,
238
239
  Amount feeAmount
239
240
  )
@@ -249,21 +250,8 @@ contract AccountingService is
249
250
  if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
250
251
  if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
251
252
  }
252
- }
253
-
254
253
 
255
- function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
256
- internal
257
- virtual
258
- {
259
- emit LogComponentServiceUpdateFee(
260
- productNftId,
261
- name,
262
- feeBefore.fractionalFee,
263
- feeBefore.fixedFee,
264
- feeAfter.fractionalFee,
265
- feeAfter.fixedFee
266
- );
254
+ emit LogAccountingServiceBalanceChanged(targetNftId, amount, feeAmount, increase, objectType);
267
255
  }
268
256
 
269
257
  function _getDomain() internal pure virtual override returns(ObjectType) {
@@ -6,20 +6,19 @@ import {Amount} from "../type/Amount.sol";
6
6
  import {InstanceStore} from "../instance/InstanceStore.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
- import {UFixed} from "../type/UFixed.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
10
 
11
11
  /// @dev component base class
12
12
  /// component examples are staking, product, distribution, pool and oracle
13
13
  interface IAccountingService is
14
14
  IService
15
15
  {
16
- event LogComponentServiceUpdateFee(
17
- NftId nftId,
18
- string feeName,
19
- UFixed previousFractionalFee,
20
- Amount previousFixedFee,
21
- UFixed newFractionalFee,
22
- Amount newFixedFee
16
+ event LogAccountingServiceBalanceChanged(
17
+ NftId indexed nftId,
18
+ Amount indexed amount,
19
+ Amount indexed feeAmount,
20
+ bool increase,
21
+ ObjectType objectType
23
22
  );
24
23
 
25
24
  function decreaseComponentFees(InstanceStore instanceStore, NftId componentNftId, Amount feeAmount) external;
@@ -279,10 +279,11 @@ contract AccessAdmin is
279
279
  {
280
280
  Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
281
281
  func = _functionInfo[target][selector];
282
- roleId = RoleIdLib.toRoleId(
283
- _authority.getTargetFunctionRole(
284
- target,
285
- selector.toBytes4()));
282
+ roleId = AccessAdminLib.getFunctionRoleId(_authority, target, selector);
283
+ // roleId = RoleIdLib.toRoleId(
284
+ // _authority.getTargetFunctionRole(
285
+ // target,
286
+ // selector.toBytes4()));
286
287
  }
287
288
 
288
289
 
@@ -318,7 +319,7 @@ contract AccessAdmin is
318
319
  (RoleId roleId, bool exists) = getRoleForName(roleInfo.name.toString());
319
320
 
320
321
  if (!exists) {
321
- if (!AccessAdminLib.isDynamicRoleId(authzRoleId)) {
322
+ if (!AccessAdminLib.isDynamicRoleId(authzRoleId) || roleInfo.targetType == TargetType.Custom) {
322
323
  roleId = authzRoleId;
323
324
  }
324
325
 
@@ -656,24 +657,4 @@ contract AccessAdmin is
656
657
  AccessAdminLib.toFunctionGrantingString(this, func.name, roleId),
657
658
  lastUpdateIn);
658
659
  }
659
-
660
-
661
- function _checkAuthorization(
662
- address authorization,
663
- ObjectType expectedDomain,
664
- VersionPart expectedRelease,
665
- bool expectServiceAuthorization,
666
- bool checkAlreadyInitialized
667
- )
668
- internal
669
- view
670
- {
671
- AccessAdminLib.checkAuthorization(
672
- address(_authorization),
673
- authorization,
674
- expectedDomain,
675
- expectedRelease,
676
- expectServiceAuthorization,
677
- checkAlreadyInitialized);
678
- }
679
660
  }
@@ -12,11 +12,12 @@ import {IRegistry} from "../registry/IRegistry.sol";
12
12
  import {IService} from "../shared/IService.sol";
13
13
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
14
14
 
15
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
15
16
  import {BlocknumberLib} from "../type/Blocknumber.sol";
16
17
  import {ContractLib} from "../shared/ContractLib.sol";
17
18
  import {ObjectType} from "../type/ObjectType.sol";
18
19
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
19
- import {SelectorLib} from "../type/Selector.sol";
20
+ import {Selector, SelectorLib} from "../type/Selector.sol";
20
21
  import {Str, StrLib} from "../type/String.sol";
21
22
  import {TimestampLib} from "../type/Timestamp.sol";
22
23
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
@@ -481,6 +482,22 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
481
482
  }
482
483
 
483
484
 
485
+ function getFunctionRoleId(
486
+ AccessManagerCloneable authority,
487
+ address target,
488
+ Selector selector
489
+ )
490
+ public
491
+ view
492
+ returns (RoleId functionRoleId)
493
+ {
494
+ return RoleIdLib.toRoleId(
495
+ authority.getTargetFunctionRole(
496
+ target,
497
+ selector.toBytes4()));
498
+ }
499
+
500
+
484
501
  function getServiceRoleId(
485
502
  address serviceAddress,
486
503
  IAccess.TargetType serviceTargetType
@@ -24,6 +24,8 @@ contract AccessManagerCloneable is
24
24
  error ErrorAccessManagerTargetAdminLocked(address target);
25
25
  error ErrorAccessManagerCallerAdminLocked(address caller);
26
26
 
27
+ event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
28
+
27
29
  VersionPart private _release;
28
30
  bool private _isLocked;
29
31
 
@@ -39,6 +41,7 @@ contract AccessManagerCloneable is
39
41
 
40
42
  function initialize(address admin)
41
43
  public
44
+ override
42
45
  initializer()
43
46
  {
44
47
  __ERC165_init();
@@ -94,6 +97,7 @@ contract AccessManagerCloneable is
94
97
  onlyAdminRole()
95
98
  {
96
99
  _isLocked = locked;
100
+ emit LogAccessManagerLocked(address(this), locked);
97
101
  }
98
102
 
99
103
 
@@ -112,7 +112,7 @@ contract DistributionService is
112
112
 
113
113
  instance.getInstanceStore().createDistributorType(distributorType, info);
114
114
 
115
- emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
115
+ emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name, commissionPercentage);
116
116
  }
117
117
 
118
118
 
@@ -236,7 +236,7 @@ contract DistributionService is
236
236
 
237
237
  instance.getInstanceStore().createReferral(referralId, info);
238
238
 
239
- emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code);
239
+ emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
240
240
  }
241
241
  }
242
242
 
@@ -295,12 +295,14 @@ contract DistributionService is
295
295
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
296
296
  distributorInfo.numPoliciesSold += 1;
297
297
  store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
298
+ emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
298
299
  } else {
299
300
  // increase distribution balance by distribution owner fee
300
301
  _accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
302
+ emit LogDistributionServiceSaleProcessed(distributionNftId, referralId, premium.premiumAmount, distributionOwnerFee);
301
303
  }
302
304
 
303
- emit LogDistributionServiceSaleProcessed(distributionNftId, referralId);
305
+
304
306
  }
305
307
 
306
308
  /// @inheritdoc IDistributionService
@@ -40,12 +40,13 @@ interface IDistributionService is IService {
40
40
  error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
41
41
 
42
42
  event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
43
- event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
43
+ event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name, UFixed commissionPercentage);
44
44
  event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
45
45
  event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
46
- event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code);
46
+ event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code, UFixed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
47
47
  event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
48
- event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId);
48
+ event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId, Amount premium, Amount distributionOwnerFee);
49
+ event LogDistributionServiceSaleProcessedWithReferral(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 numPoliciesSold, Amount premium, Amount distributionOwnerFee, Amount commissionAmount);
49
50
 
50
51
  function createDistributorType(
51
52
  string memory name,
@@ -11,6 +11,7 @@ import {InstanceReader} from "../../instance/InstanceReader.sol";
11
11
  import {NftId} from "../../type/NftId.sol";
12
12
  import {RequestId} from "../../type/RequestId.sol";
13
13
  import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
14
+ import {Seconds} from "../../type/Seconds.sol";
14
15
  import {StateId} from "../../type/StateId.sol";
15
16
  import {Str} from "../../type/String.sol";
16
17
  import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
@@ -18,39 +19,30 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
18
19
 
19
20
  library FlightLib {
20
21
 
21
- function checkApplicationDataAndSignature(
22
+ event LogFlightProductErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
23
+ event LogFlightProductErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
24
+
25
+ error ErrorFlightProductRiskInvalid(RiskId riskId);
26
+ error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
27
+ error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
28
+ error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
29
+ error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
30
+ error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
31
+ error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
32
+ error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
33
+ error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
34
+
35
+ function checkApplicationData(
22
36
  FlightProduct flightProduct,
23
37
  Str flightData,
24
38
  Timestamp departureTime,
25
39
  Timestamp arrivalTime,
26
- Amount premiumAmount,
27
- uint256[6] memory statistics
28
- // signature fields
29
- // uint8 v,
30
- // bytes32 r,
31
- // bytes32 s
40
+ Amount premiumAmount
32
41
  )
33
42
  public
34
43
  view
35
44
  {
36
45
  _checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
37
-
38
- // (
39
- // address actualSigner,,
40
- // bool success
41
- // ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
42
- // flightData,
43
- // departureTime,
44
- // arrivalTime,
45
- // premiumAmount,
46
- // statistics,
47
- // v, r, s);
48
-
49
- // if (!success) {
50
- // revert FlightProduct.ErrorApplicationDataSignatureMismatch(
51
- // flightProduct.getFlightMessageVerifier().getExpectedSigner(),
52
- // actualSigner);
53
- // }
54
46
  }
55
47
 
56
48
 
@@ -63,67 +55,49 @@ library FlightLib {
63
55
  internal
64
56
  view
65
57
  {
58
+ bool testMode = flightProduct.isTestMode();
59
+
66
60
  // solhint-disable
67
61
  if (premiumAmount < flightProduct.MIN_PREMIUM()) {
68
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
62
+ revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
69
63
  }
70
64
  if (premiumAmount > flightProduct.MAX_PREMIUM()) {
71
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
65
+ revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
72
66
  }
73
67
  if (arrivalTime <= departureTime) {
74
- revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
68
+ revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
75
69
  }
76
-
77
70
  if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
78
- revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
71
+ revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
79
72
  }
80
- if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
81
- revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
73
+
74
+ // test mode allows the creation for policies that are outside restricted policy creation times
75
+ if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
76
+ revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
82
77
  }
83
- if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
84
- revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
78
+ if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
79
+ revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
85
80
  }
86
81
  // solhint-enable
87
82
  }
88
83
 
89
84
 
90
- // TODO fix or cleanup
91
- // function checkApplication(
92
- // FlightProduct flightProduct,
93
- // Str carrierFlightNumber,
94
- // Timestamp departureTime,
95
- // Timestamp arrivalTime,
96
- // Amount premium
97
- // )
98
- // external
99
- // view
100
- // returns (uint256 errors)
101
- // {
102
- // // Validate input parameters
103
- // if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
104
- // if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
105
- // if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
106
- // if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
107
- // if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
108
- // if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
109
-
110
- // (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
111
- // flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
112
-
113
- // if (exists) {
114
- // Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
115
- // if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
116
- // errors = errors | (uint256(1) << 6);
117
- // }
118
- // }
119
-
120
- // return errors;
121
- // }
85
+ function checkClusterRisk(
86
+ Amount sumOfSumInsuredAmounts,
87
+ Amount sumInsuredAmount,
88
+ Amount maxTotalPayout
89
+ )
90
+ public
91
+ pure
92
+ {
93
+ if (sumOfSumInsuredAmounts + sumInsuredAmount > maxTotalPayout) {
94
+ revert ErrorFlightProductClusterRisk(sumOfSumInsuredAmounts + sumInsuredAmount, maxTotalPayout);
95
+ }
96
+ }
122
97
 
123
98
 
124
99
  /// @dev calculates payout option based on flight status and delay minutes.
125
100
  /// Is not a view function as it emits log evens in case of unexpected status.
126
- // TODO decide if reverts instead of log events could work too (and convert the function into a view function)
127
101
  function checkAndGetPayoutOption(
128
102
  RequestId requestId,
129
103
  RiskId riskId,
@@ -138,13 +112,13 @@ library FlightLib {
138
112
 
139
113
  // check status
140
114
  if (status != "L" && status != "A" && status != "C" && status != "D") {
141
- emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
115
+ emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
142
116
  return payoutOption;
143
117
  }
144
118
 
145
119
  if (status == "A") {
146
120
  // todo: active, reschedule oracle call + 45 min
147
- emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
121
+ emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
148
122
  return payoutOption;
149
123
  }
150
124
 
@@ -167,7 +141,7 @@ library FlightLib {
167
141
  {
168
142
  // check we have enough observations
169
143
  if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
170
- revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
144
+ revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
171
145
  }
172
146
 
173
147
  weight = 0;
@@ -200,10 +174,10 @@ library FlightLib {
200
174
  )
201
175
  {
202
176
  if (premium < flightProduct.MIN_PREMIUM()) {
203
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
177
+ revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
204
178
  }
205
179
  if (premium > flightProduct.MAX_PREMIUM()) {
206
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
180
+ revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
207
181
  }
208
182
 
209
183
  sumInsuredAmount = AmountLib.zero();
@@ -222,13 +196,43 @@ library FlightLib {
222
196
  }
223
197
 
224
198
 
199
+ function getPayoutOption(
200
+ InstanceReader reader,
201
+ NftId productNftId,
202
+ RiskId riskId
203
+ )
204
+ public
205
+ view
206
+ returns (
207
+ bool exists,
208
+ bool statusAvailable,
209
+ uint8 payoutOption
210
+ )
211
+ {
212
+ FlightProduct.FlightRisk memory flightRisk;
213
+ (exists, flightRisk) = getFlightRisk(
214
+ reader,
215
+ productNftId,
216
+ riskId,
217
+ false);
218
+
219
+ statusAvailable = flightRisk.statusUpdatedAt.gtz();
220
+ payoutOption = flightRisk.payoutOption;
221
+ }
222
+
223
+
225
224
  function getPayoutAmount(
226
225
  bytes memory applicationData,
227
226
  uint8 payoutOption
228
227
  )
229
228
  public
229
+ pure
230
230
  returns (Amount payoutAmount)
231
231
  {
232
+ if (payoutOption == type(uint8).max) {
233
+ return AmountLib.zero();
234
+ }
235
+
232
236
  // retrieve payout amounts from application data
233
237
  (, Amount[5] memory payoutAmounts) = abi.decode(
234
238
  applicationData, (Amount, Amount[5]));
@@ -243,7 +247,9 @@ library FlightLib {
243
247
  NftId productNftId,
244
248
  Str flightData,
245
249
  Timestamp departureTime,
246
- Timestamp arrivalTime
250
+ string memory departureTimeLocal,
251
+ Timestamp arrivalTime,
252
+ string memory arrivalTimeLocal
247
253
  )
248
254
  public
249
255
  view
@@ -254,17 +260,21 @@ library FlightLib {
254
260
  )
255
261
  {
256
262
  riskId = getRiskId(productNftId, flightData);
257
- (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
263
+ (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
258
264
 
259
265
  // create new risk if not existing
260
266
  if (!exists) {
261
267
  flightRisk = FlightProduct.FlightRisk({
262
268
  flightData: flightData,
263
269
  departureTime: departureTime,
270
+ departureTimeLocal: departureTimeLocal,
264
271
  arrivalTime: arrivalTime,
272
+ arrivalTimeLocal: arrivalTimeLocal,
265
273
  sumOfSumInsuredAmounts: AmountLib.toAmount(0),
266
274
  status: bytes1(0),
267
- delayMinutes: 0});
275
+ delayMinutes: 0,
276
+ payoutOption: uint8(0),
277
+ statusUpdatedAt: TimestampLib.zero()});
268
278
  }
269
279
  }
270
280
 
@@ -272,7 +282,8 @@ library FlightLib {
272
282
  function getFlightRisk(
273
283
  InstanceReader reader,
274
284
  NftId productNftId,
275
- RiskId riskId
285
+ RiskId riskId,
286
+ bool requireRiskExists
276
287
  )
277
288
  public
278
289
  view
@@ -284,6 +295,10 @@ library FlightLib {
284
295
  // check if risk exists
285
296
  exists = reader.isProductRisk(productNftId, riskId);
286
297
 
298
+ if (!exists && requireRiskExists) {
299
+ revert ErrorFlightProductRiskInvalid(riskId);
300
+ }
301
+
287
302
  // get risk data if risk exists
288
303
  if (exists) {
289
304
  flightRisk = abi.decode(