@etherisc/gif-next 3.0.0-59a8fda-430 → 3.0.0-59cf385-536

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 (387) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -96
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -94
  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/IDistributionComponent.sol/IDistributionComponent.json +0 -94
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -87
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -127
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  47. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  48. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +2 -2
  49. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  50. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +21 -96
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +2 -2
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +14 -89
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +44 -119
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +2 -2
  65. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +2 -2
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  68. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +15 -109
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +12 -87
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +16 -91
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +18 -93
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  85. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +97 -97
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  123. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -77
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  134. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -75
  137. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -75
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -75
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -75
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
  158. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  159. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -75
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  161. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -75
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  173. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -75
  185. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  187. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  193. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
  196. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  197. package/artifacts/contracts/product/Product.sol/Product.json +0 -75
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  199. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
  202. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  204. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
  206. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -37
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +69 -69
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  214. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  216. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  220. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +85 -85
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  222. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  224. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +103 -87
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  226. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  228. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  229. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Component.sol/Component.json +0 -75
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +311 -95
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  236. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  237. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +0 -75
  242. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -75
  244. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +255 -39
  246. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -75
  248. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  249. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -75
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -75
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +5 -205
  279. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -123
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +19 -219
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  294. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  304. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  328. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  329. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  358. package/contracts/accounting/AccountingService.sol +17 -29
  359. package/contracts/accounting/IAccountingService.sol +7 -8
  360. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  361. package/contracts/distribution/DistributionService.sol +5 -3
  362. package/contracts/distribution/IDistributionComponent.sol +0 -2
  363. package/contracts/distribution/IDistributionService.sol +4 -3
  364. package/contracts/examples/flight/FlightNft.sol +234 -0
  365. package/contracts/instance/BaseStore.sol +4 -0
  366. package/contracts/instance/IBaseStore.sol +8 -0
  367. package/contracts/instance/IInstanceService.sol +2 -0
  368. package/contracts/instance/InstanceReader.sol +3 -1
  369. package/contracts/instance/InstanceService.sol +4 -0
  370. package/contracts/pool/BundleService.sol +1 -1
  371. package/contracts/pool/IBundleService.sol +1 -1
  372. package/contracts/pool/IPoolService.sol +1 -1
  373. package/contracts/pool/PoolService.sol +1 -1
  374. package/contracts/product/IPolicyService.sol +1 -1
  375. package/contracts/product/PolicyService.sol +1 -1
  376. package/contracts/registry/ChainNft.sol +1 -1
  377. package/contracts/registry/IRegistry.sol +1 -1
  378. package/contracts/registry/Registry.sol +5 -3
  379. package/contracts/registry/RegistryAuthorization.sol +0 -2
  380. package/contracts/shared/ComponentService.sol +36 -2
  381. package/contracts/shared/IComponent.sol +0 -4
  382. package/contracts/shared/IComponentService.sol +24 -2
  383. package/contracts/staking/IStaking.sol +2 -0
  384. package/contracts/staking/IStakingService.sol +1 -10
  385. package/contracts/staking/Staking.sol +1 -0
  386. package/contracts/staking/StakingService.sol +1 -1
  387. 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;
@@ -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
@@ -11,8 +11,6 @@ import {UFixed} from "../type/UFixed.sol";
11
11
 
12
12
  interface IDistributionComponent is IInstanceLinkedComponent {
13
13
 
14
- event LogDistributorUpdated(address to, address operator);
15
-
16
14
  function getDiscountPercentage(
17
15
  string memory referralCode
18
16
  ) external view returns (UFixed discountPercentage, ReferralStatus status);
@@ -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,
@@ -0,0 +1,234 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
5
+ import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
6
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
7
+
8
+ import {IPolicy} from "../../instance/module/IPolicy.sol";
9
+ import {IRegistry} from "../../registry/IRegistry.sol";
10
+
11
+ import {Amount} from "../../type/Amount.sol";
12
+ import {ChainNft} from "../../registry/ChainNft.sol";
13
+ import {FlightProduct} from "./FlightProduct.sol";
14
+ import {InstanceReader} from "../../instance/InstanceReader.sol";
15
+ import {NftId, NftIdLib} from "../../type/NftId.sol";
16
+ import {RiskId} from "../../type/RiskId.sol";
17
+
18
+
19
+ /**
20
+ * @title FlightNft
21
+ * @dev FlightNft provides NFT data for flight delay policies.
22
+ */
23
+ // contract FlightNft is IERC721Metadata {
24
+ contract FlightNft is
25
+ ERC721,
26
+ Ownable
27
+ {
28
+
29
+ error ErrorFlightNftNotMinter();
30
+ error ErrorFlightNftAlreadyMinted(uint256 tokenId);
31
+ error ErrorFlightNftNotAvailable(uint256 tokenId);
32
+ error ErrorFlightNftNotFlightPolicy(uint256 tokenId);
33
+
34
+ ChainNft public immutable chainNft;
35
+ FlightProduct public immutable flightProduct;
36
+ InstanceReader public immutable instanceReader;
37
+ IRegistry public registry;
38
+
39
+ address public minter;
40
+ string private _baseUri;
41
+
42
+
43
+ modifier onlyMinter() {
44
+ if(msg.sender != minter) {
45
+ revert ErrorFlightNftNotMinter();
46
+ }
47
+ _;
48
+ }
49
+
50
+
51
+ constructor(
52
+ address flightProductAddress,
53
+ string memory nftName,
54
+ string memory nftSymbol,
55
+ string memory baseUri
56
+ )
57
+ ERC721(nftName, nftSymbol)
58
+ Ownable(msg.sender)
59
+ {
60
+ flightProduct = FlightProduct(flightProductAddress);
61
+ registry = flightProduct.getRegistry();
62
+ chainNft = ChainNft(registry.getChainNftAddress());
63
+ instanceReader = flightProduct.getInstance().getInstanceReader();
64
+
65
+ minter = msg.sender;
66
+ _baseUri = baseUri;
67
+ }
68
+
69
+
70
+ /**
71
+ * Set the base URI to the specified value.
72
+ * Once set, this results in tokenURI() to return <baseUri><tokenId>.
73
+ */
74
+ function setBaseURI(string memory baseUri)
75
+ public
76
+ onlyOwner()
77
+ {
78
+ _baseUri = baseUri;
79
+ }
80
+
81
+
82
+ /**
83
+ * Set the minter address.
84
+ */
85
+ function setMinter(address minterAddress)
86
+ public
87
+ onlyOwner()
88
+ {
89
+ minter = minterAddress;
90
+ }
91
+
92
+
93
+ /**
94
+ * Mints a metadata NFT for the specified chainNft NFT.
95
+ * Only the minter can mint such NFTs.
96
+ */
97
+ function mint(uint256 tokenId)
98
+ external
99
+ onlyMinter()
100
+ {
101
+ // verify nft does not yet exist
102
+ if (_ownerOf(tokenId) != address(0)) {
103
+ revert ErrorFlightNftAlreadyMinted(tokenId);
104
+ }
105
+
106
+ // verify nft on chainNft exists
107
+ // also checks if nft exists (ERC721NonexistentToken)
108
+ address nftOwner = chainNft.ownerOf(tokenId);
109
+
110
+ // verify nft is flight delay policy
111
+ if (registry.getParentNftId(NftIdLib.toNftId(tokenId)) != registry.getNftIdForAddress(address(flightProduct))) {
112
+ revert ErrorFlightNftNotFlightPolicy(tokenId);
113
+ }
114
+
115
+ _mint(nftOwner, tokenId);
116
+ }
117
+
118
+
119
+ /**
120
+ * @dev Return the NFT token URI for the specified token.
121
+ * No check is performed to ensure the token exists.
122
+ */
123
+ function tokenURI(uint256 tokenId) public view override returns (string memory) {
124
+ string memory baseURI = _baseURI();
125
+ return bytes(baseURI).length > 0 ? string.concat(baseURI, toString(tokenId)) : "";
126
+ }
127
+
128
+
129
+ /**
130
+ * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each
131
+ * token will be the concatenation of the `baseURI` and the `tokenId`. Empty
132
+ * by default, can be overridden in child contracts.
133
+ */
134
+ function _baseURI() internal override view returns (string memory) {
135
+ return _baseUri;
136
+ }
137
+
138
+
139
+ function approve(address to, uint256 tokenId) public override { _revert(); }
140
+ function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public override { _revert(); }
141
+ function setApprovalForAll(address operator, bool approved) public override { _revert(); }
142
+ function transferFrom(address from, address to, uint256 tokenId) public override { _revert(); }
143
+
144
+ function balanceOf(address owner) public override view returns (uint256 balance) {
145
+ return chainNft.balanceOf(owner);
146
+ }
147
+
148
+ function getApproved(uint256 tokenId) public override view returns (address operator) {
149
+ return chainNft.getApproved(tokenId);
150
+ }
151
+
152
+ function isApprovedForAll(address owner, address operator) public override view returns (bool) {
153
+ return chainNft.isApprovedForAll(owner, operator);
154
+ }
155
+
156
+ function ownerOf(uint256 tokenId) public override view returns (address owner) {
157
+ return chainNft.ownerOf(tokenId);
158
+ }
159
+
160
+ function supportsInterface(bytes4 interfaceId) public override view returns (bool) {
161
+ return chainNft.supportsInterface(interfaceId);
162
+ }
163
+
164
+
165
+ function getPolicyData(NftId policyNftId)
166
+ public
167
+ view
168
+ returns (
169
+ RiskId riskId,
170
+ string memory flightData,
171
+ string memory departureTimeLocal,
172
+ string memory arrivalTimeLocal,
173
+ Amount premiumAmount,
174
+ Amount[5] memory payoutAmounts,
175
+ bytes1 status,
176
+ int256 delayMinutes
177
+ )
178
+ {
179
+ IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
180
+
181
+ // get financial data
182
+ premiumAmount = info.premiumAmount;
183
+
184
+ if (info.applicationData.length > 0) {
185
+ (, payoutAmounts) = abi.decode(info.applicationData, (Amount, Amount[5]));
186
+ }
187
+
188
+ // get risk data
189
+ riskId = info.riskId;
190
+ bytes memory data = instanceReader.getRiskInfo(riskId).data;
191
+
192
+ if (data.length > 0) {
193
+ FlightProduct.FlightRisk memory flightRisk = flightProduct.decodeFlightRiskData(data);
194
+ flightData = flightRisk.flightData.toString();
195
+ departureTimeLocal = flightRisk.departureTimeLocal;
196
+ arrivalTimeLocal = flightRisk.arrivalTimeLocal;
197
+ status = flightRisk.status;
198
+ delayMinutes = flightRisk.delayMinutes;
199
+ }
200
+ }
201
+
202
+
203
+ function toString(uint256 value) public pure returns (string memory) {
204
+ if (value == 0) {
205
+ return "0";
206
+ }
207
+
208
+ uint256 temp = value;
209
+ uint256 digits = 0;
210
+ while (temp != 0) {
211
+ digits++;
212
+ temp /= 10;
213
+ }
214
+
215
+ bytes memory buffer = new bytes(digits);
216
+ uint index = digits - 1;
217
+
218
+ temp = value;
219
+ while (temp != 0) {
220
+ buffer[index] = bytes1(uint8(48 + temp % 10));
221
+ temp /= 10;
222
+
223
+ if (index > 0) {
224
+ index--;
225
+ }
226
+ }
227
+
228
+ return string(buffer);
229
+ }
230
+
231
+ function _revert() private pure {
232
+ revert("FlightNft: Use GIF Chain NFT contract to interact with NFTs. See function getChainNft()");
233
+ }
234
+ }
@@ -42,6 +42,8 @@ abstract contract BaseStore is
42
42
  metadata.objectType = objectType;
43
43
  metadata.state = initialState;
44
44
  metadata.updatedIn = blocknumber;
45
+
46
+ emit LogBaseStoreMetadataCreated(key32, objectType, initialState);
45
47
  }
46
48
 
47
49
  function _updateState(
@@ -73,6 +75,8 @@ abstract contract BaseStore is
73
75
 
74
76
  // update metadata
75
77
  metadata.updatedIn = BlocknumberLib.current();
78
+
79
+ emit LogBaseStoreMetadataUpdated(key32, oldState, state);
76
80
  }
77
81
 
78
82
  function exists(Key32 key32) public view returns (bool) {
@@ -17,6 +17,14 @@ interface IBaseStore is ILifecycle {
17
17
  error ErrorBaseStoreStateZero(Key32 key);
18
18
  error ErrorBaseStoreNotExisting(Key32 key);
19
19
 
20
+ event LogBaseStoreMetadataCreated(
21
+ Key32 indexed key,
22
+ ObjectType indexed objectType,
23
+ StateId indexed state);
24
+ event LogBaseStoreMetadataUpdated(
25
+ Key32 indexed key,
26
+ StateId indexed oldState,
27
+ StateId indexed newState);
20
28
 
21
29
  struct Metadata {
22
30
  // slot 0
@@ -58,6 +58,8 @@ interface IInstanceService is IService {
58
58
 
59
59
  event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
60
60
  event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
61
+ event LogInstanceServiceMasterInstanceRegistered(NftId masterInstanceNftId, address masterInstance, address masterInstanceAdmin, address masterAccessManager,
62
+ address masterInstanceReader, address masterInstanceBundleSet, address masterInstanceRiskSet, address masterInstanceStore, address masterProductStore);
61
63
  event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
62
64
  event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
63
65
 
@@ -164,7 +164,9 @@ contract InstanceReader {
164
164
 
165
165
 
166
166
  /// @dev Returns the currently locked amount for the given NFT ID.
167
- /// The target NFT ID may reference a pool or a bundle.
167
+ /// Locked amounts are only tracked for bundles, not for pool. To get the
168
+ /// pool locked amount, then locked amounts of the bundles contained in the
169
+ /// pool must be summed up. The target NFT ID may only a bundle.
168
170
  function getLockedAmount(NftId targetNftId) external view returns (Amount) {
169
171
  return _store.getLockedAmount(targetNftId);
170
172
  }
@@ -372,6 +372,10 @@ contract InstanceService is
372
372
  IInstance masterInstance = IInstance(_masterInstance);
373
373
  IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
374
374
  masterInstanceNftId = info.nftId;
375
+
376
+ emit LogInstanceServiceMasterInstanceRegistered(
377
+ masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
378
+ _masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceStore, _masterProductStore);
375
379
  }
376
380
  }
377
381
 
@@ -130,7 +130,7 @@ contract BundleService is
130
130
  BundleSet bundleManager = instance.getBundleSet();
131
131
  bundleManager.add(bundleNftId);
132
132
 
133
- emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
133
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime, bundleFee.fixedFee, bundleFee.fractionalFee);
134
134
  }
135
135
 
136
136
 
@@ -30,7 +30,7 @@ interface IBundleService is IService {
30
30
 
31
31
  error ErrorBundleServiceExtensionLifetimeIsZero();
32
32
 
33
- event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
33
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime, Amount fixedFee, UFixed fractionalFee);
34
34
  event LogBundleServiceBundleClosed(NftId bundleNftId);
35
35
  event LogBundleServiceBundleLocked(NftId bundleNftId);
36
36
  event LogBundleServiceBundleUnlocked(NftId bundleNftId);
@@ -19,7 +19,7 @@ interface IPoolService is IService {
19
19
  event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
20
20
 
21
21
  event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
- event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
+ event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount balanceAmount, Amount feeAmount);
23
23
 
24
24
  event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
25
25
  event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
@@ -98,7 +98,7 @@ contract PoolService is
98
98
  unstakedAmount + feeAmount,
99
99
  AmountLib.zero());
100
100
 
101
- emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
101
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, feeAmount);
102
102
 
103
103
  if ((unstakedAmount + feeAmount).gtz()){
104
104
  IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
@@ -13,7 +13,7 @@ interface IPolicyService is IService {
13
13
 
14
14
  event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
15
  event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
- event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, NftId productNftId, Amount premiumAmount, Timestamp activateAt);
17
17
  event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
18
  event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
19
19
  event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
@@ -247,7 +247,7 @@ contract PolicyService is
247
247
  instance.getProductStore().updatePremiumState(policyNftId, PAID());
248
248
 
249
249
  // log premium collection before interactions with token
250
- emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
250
+ emit LogPolicyServicePolicyPremiumCollected(policyNftId, policyInfo.productNftId, premium.premiumAmount, activateAt);
251
251
 
252
252
  // interactions
253
253
  _transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
11
11
  event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
@@ -20,7 +20,7 @@ interface IRegistry is
20
20
  {
21
21
 
22
22
  event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
23
+ event LogRegistryServiceRegistered(NftId nftId, VersionPart majorVersion, ObjectType domain);
24
24
  event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
25
 
26
26
  // initialize