@etherisc/gif-next 0.0.2-78e428e-483 → 0.0.2-791e161-234

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 (500) hide show
  1. package/README.md +32 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +163 -389
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -283
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2025 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2379 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +732 -134
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +349 -140
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +111 -329
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -312
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -121
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +74 -66
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -338
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +374 -448
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -117
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +151 -323
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +307 -144
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +161 -143
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  161. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +365 -345
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -103
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +149 -321
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  196. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  198. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  200. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  202. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +3 -3
  204. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  206. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +473 -588
  208. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -126
  210. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  232. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  245. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  257. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  258. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  263. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  269. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  271. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  273. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  337. package/contracts/accounting/AccountingService.sol +262 -0
  338. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  339. package/contracts/accounting/IAccountingService.sol +45 -0
  340. package/contracts/authorization/AccessAdmin.sol +192 -124
  341. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  342. package/contracts/authorization/Authorization.sol +111 -40
  343. package/contracts/authorization/IAccess.sol +1 -0
  344. package/contracts/authorization/IAccessAdmin.sol +10 -6
  345. package/contracts/authorization/IAuthorization.sol +13 -7
  346. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  347. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  348. package/contracts/distribution/BasicDistribution.sol +8 -7
  349. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  350. package/contracts/distribution/Distribution.sol +33 -41
  351. package/contracts/distribution/DistributionService.sol +109 -89
  352. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  353. package/contracts/distribution/IDistributionComponent.sol +1 -1
  354. package/contracts/distribution/IDistributionService.sol +14 -11
  355. package/contracts/examples/fire/DamageLevel.sol +59 -0
  356. package/contracts/examples/fire/FirePool.sol +90 -0
  357. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  358. package/contracts/examples/fire/FireProduct.sol +436 -0
  359. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  360. package/contracts/examples/fire/FireUSD.sol +26 -0
  361. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  362. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  363. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  364. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  365. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleProduct.sol +366 -0
  367. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  368. package/contracts/instance/BundleSet.sol +38 -34
  369. package/contracts/instance/IInstance.sol +16 -36
  370. package/contracts/instance/IInstanceService.sol +9 -29
  371. package/contracts/instance/Instance.sol +47 -66
  372. package/contracts/instance/InstanceAdmin.sol +133 -73
  373. package/contracts/instance/InstanceAuthorizationV3.sol +53 -34
  374. package/contracts/instance/InstanceReader.sol +195 -27
  375. package/contracts/instance/InstanceService.sol +125 -164
  376. package/contracts/instance/InstanceServiceManager.sol +6 -7
  377. package/contracts/instance/InstanceStore.sol +11 -1
  378. package/contracts/instance/RiskSet.sol +117 -0
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +10 -4
  381. package/contracts/instance/base/ObjectSet.sol +24 -25
  382. package/contracts/instance/module/IComponents.sol +11 -8
  383. package/contracts/instance/module/IPolicy.sol +26 -25
  384. package/contracts/instance/module/IRisk.sol +3 -0
  385. package/contracts/oracle/BasicOracle.sol +0 -1
  386. package/contracts/oracle/IOracleService.sol +2 -1
  387. package/contracts/oracle/Oracle.sol +7 -17
  388. package/contracts/oracle/OracleService.sol +112 -81
  389. package/contracts/oracle/OracleServiceManager.sol +6 -6
  390. package/contracts/pool/BasicPool.sol +33 -24
  391. package/contracts/pool/BasicPoolAuthorization.sol +13 -3
  392. package/contracts/pool/BundleService.sol +83 -109
  393. package/contracts/pool/BundleServiceManager.sol +6 -6
  394. package/contracts/pool/IBundleService.sol +4 -18
  395. package/contracts/pool/IPoolComponent.sol +19 -15
  396. package/contracts/pool/IPoolService.sol +52 -48
  397. package/contracts/pool/Pool.sol +144 -127
  398. package/contracts/pool/PoolService.sol +292 -231
  399. package/contracts/pool/PoolServiceManager.sol +4 -4
  400. package/contracts/product/ApplicationService.sol +72 -43
  401. package/contracts/product/ApplicationServiceManager.sol +4 -4
  402. package/contracts/product/BasicProduct.sol +9 -12
  403. package/contracts/product/BasicProductAuthorization.sol +1 -3
  404. package/contracts/product/ClaimService.sol +426 -135
  405. package/contracts/product/ClaimServiceManager.sol +4 -4
  406. package/contracts/product/IApplicationService.sol +6 -2
  407. package/contracts/product/IClaimService.sol +44 -7
  408. package/contracts/product/IPolicyService.sol +44 -38
  409. package/contracts/product/IPricingService.sol +10 -10
  410. package/contracts/product/IProductComponent.sol +23 -4
  411. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  412. package/contracts/product/PolicyService.sol +502 -295
  413. package/contracts/product/PolicyServiceManager.sol +4 -4
  414. package/contracts/product/PricingService.sol +56 -55
  415. package/contracts/product/PricingServiceManager.sol +4 -4
  416. package/contracts/product/Product.sol +133 -93
  417. package/contracts/product/RiskService.sol +151 -0
  418. package/contracts/product/RiskServiceManager.sol +39 -0
  419. package/contracts/registry/ChainNft.sol +72 -40
  420. package/contracts/registry/IRegistry.sol +58 -28
  421. package/contracts/registry/IRegistryService.sol +5 -12
  422. package/contracts/registry/IRelease.sol +26 -0
  423. package/contracts/registry/ITransferInterceptor.sol +1 -2
  424. package/contracts/registry/Registry.sol +353 -203
  425. package/contracts/registry/RegistryAdmin.sol +161 -182
  426. package/contracts/registry/RegistryService.sol +37 -48
  427. package/contracts/registry/RegistryServiceManager.sol +3 -3
  428. package/contracts/registry/ReleaseAdmin.sol +245 -0
  429. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  430. package/contracts/registry/ReleaseRegistry.sol +258 -232
  431. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  432. package/contracts/registry/TokenRegistry.sol +5 -7
  433. package/contracts/shared/Component.sol +71 -125
  434. package/contracts/shared/ComponentService.sol +386 -347
  435. package/contracts/shared/ComponentServiceManager.sol +8 -5
  436. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  437. package/contracts/shared/ContractLib.sol +252 -0
  438. package/contracts/shared/IComponent.sol +8 -17
  439. package/contracts/shared/IComponentService.sol +45 -37
  440. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  441. package/contracts/shared/ILifecycle.sol +3 -1
  442. package/contracts/shared/INftOwnable.sol +2 -0
  443. package/contracts/shared/IPolicyHolder.sol +12 -22
  444. package/contracts/shared/IRegisterable.sol +23 -1
  445. package/contracts/shared/IService.sol +3 -5
  446. package/contracts/shared/InitializableERC165.sol +2 -2
  447. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  448. package/contracts/shared/KeyValueStore.sol +1 -1
  449. package/contracts/shared/Lifecycle.sol +15 -4
  450. package/contracts/shared/NftOwnable.sol +29 -9
  451. package/contracts/shared/PolicyHolder.sol +15 -52
  452. package/contracts/shared/Registerable.sol +55 -21
  453. package/contracts/shared/RegistryLinked.sol +9 -14
  454. package/contracts/shared/Service.sol +15 -32
  455. package/contracts/shared/TokenHandler.sol +357 -26
  456. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  457. package/contracts/staking/IStaking.sol +11 -5
  458. package/contracts/staking/IStakingService.sol +0 -3
  459. package/contracts/staking/StakeManagerLib.sol +18 -25
  460. package/contracts/staking/Staking.sol +71 -61
  461. package/contracts/staking/StakingManager.sol +8 -6
  462. package/contracts/staking/StakingReader.sol +12 -5
  463. package/contracts/staking/StakingService.sol +64 -36
  464. package/contracts/staking/StakingServiceManager.sol +2 -2
  465. package/contracts/staking/TargetManagerLib.sol +7 -3
  466. package/contracts/type/Amount.sol +15 -0
  467. package/contracts/type/ClaimId.sol +6 -1
  468. package/contracts/type/Key32.sol +2 -2
  469. package/contracts/type/Key32Set.sol +62 -0
  470. package/contracts/type/NftId.sol +7 -0
  471. package/contracts/type/ObjectType.sol +26 -11
  472. package/contracts/type/PayoutId.sol +10 -10
  473. package/contracts/type/RiskId.sol +35 -4
  474. package/contracts/type/RoleId.sol +4 -13
  475. package/contracts/type/Seconds.sol +8 -0
  476. package/contracts/type/StateId.sol +15 -1
  477. package/contracts/type/Timestamp.sol +0 -5
  478. package/contracts/type/UFixed.sol +13 -119
  479. package/contracts/type/Version.sol +15 -5
  480. package/contracts/upgradeability/ProxyManager.sol +68 -34
  481. package/contracts/upgradeability/Versionable.sol +2 -2
  482. package/package.json +4 -3
  483. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  484. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  485. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  486. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  487. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  488. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  489. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  490. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  491. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  492. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  493. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  494. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  495. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  496. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  497. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  498. package/contracts/product/ProductService.sol +0 -99
  499. package/contracts/product/ProductServiceManager.sol +0 -39
  500. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,262 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IAccountingService} from "./IAccountingService.sol";
7
+ import {InstanceStore} from "../instance/InstanceStore.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Fee} from "../type/Fee.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {ObjectType, ACCOUNTING, BUNDLE, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
13
+ import {Service} from "../shared/Service.sol";
14
+
15
+
16
+ contract AccountingService is
17
+ Service,
18
+ IAccountingService
19
+ {
20
+ bool private constant INCREASE = true;
21
+ bool private constant DECREASE = false;
22
+
23
+ function _initialize(
24
+ address owner,
25
+ bytes memory data
26
+ )
27
+ internal
28
+ virtual override
29
+ initializer()
30
+ {
31
+ (
32
+ address authority,
33
+ address registry
34
+ ) = abi.decode(data, (address, address));
35
+
36
+ __Service_init(authority, registry, owner);
37
+ _registerInterface(type(IAccountingService).interfaceId);
38
+ }
39
+
40
+ function decreaseComponentFees(
41
+ InstanceStore instanceStore,
42
+ NftId componentNftId,
43
+ Amount feeAmount
44
+ )
45
+ external
46
+ virtual
47
+ restricted()
48
+ {
49
+ _changeTargetBalance(DECREASE, instanceStore, componentNftId, AmountLib.zero(), feeAmount);
50
+ }
51
+
52
+
53
+ function increaseProductFees(
54
+ InstanceStore instanceStore,
55
+ NftId productNftId,
56
+ Amount feeAmount
57
+ )
58
+ external
59
+ virtual
60
+ restricted()
61
+ {
62
+ _checkNftType(productNftId, PRODUCT());
63
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
64
+ }
65
+
66
+
67
+ function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
68
+ external
69
+ virtual
70
+ restricted()
71
+ {
72
+ _checkNftType(productNftId, PRODUCT());
73
+ _changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
74
+ }
75
+
76
+ function increaseDistributionBalance(
77
+ InstanceStore instanceStore,
78
+ NftId distributionNftId,
79
+ Amount amount,
80
+ Amount feeAmount
81
+ )
82
+ external
83
+ virtual
84
+ restricted()
85
+ {
86
+ _checkNftType(distributionNftId, DISTRIBUTION());
87
+ _changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
88
+ }
89
+
90
+
91
+ function decreaseDistributionBalance(
92
+ InstanceStore instanceStore,
93
+ NftId distributionNftId,
94
+ Amount amount,
95
+ Amount feeAmount
96
+ )
97
+ external
98
+ virtual
99
+ restricted()
100
+ {
101
+ _checkNftType(distributionNftId, DISTRIBUTION());
102
+ _changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
103
+ }
104
+
105
+ function increaseDistributorBalance(
106
+ InstanceStore instanceStore,
107
+ NftId distributorNftId,
108
+ Amount amount,
109
+ Amount feeAmount
110
+ )
111
+ external
112
+ virtual
113
+ restricted()
114
+ {
115
+ _checkNftType(distributorNftId, DISTRIBUTOR());
116
+ _changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
117
+ }
118
+
119
+ function decreaseDistributorBalance(
120
+ InstanceStore instanceStore,
121
+ NftId distributorNftId,
122
+ Amount amount,
123
+ Amount feeAmount
124
+ )
125
+ external
126
+ virtual
127
+ restricted()
128
+ {
129
+ _checkNftType(distributorNftId, DISTRIBUTOR());
130
+ _changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
131
+ }
132
+
133
+ function increasePoolBalance(
134
+ InstanceStore instanceStore,
135
+ NftId poolNftId,
136
+ Amount amount,
137
+ Amount feeAmount
138
+ )
139
+ public
140
+ virtual
141
+ restricted()
142
+ {
143
+ _checkNftType(poolNftId, POOL());
144
+ _changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
145
+ }
146
+
147
+ function decreasePoolBalance(
148
+ InstanceStore instanceStore,
149
+ NftId poolNftId,
150
+ Amount amount,
151
+ Amount feeAmount
152
+ )
153
+ public
154
+ virtual
155
+ // TODO re-enable once role granting is stable and fixed
156
+ // restricted()
157
+ {
158
+ _checkNftType(poolNftId, POOL());
159
+ _changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
160
+ }
161
+
162
+ function increaseBundleBalance(
163
+ InstanceStore instanceStore,
164
+ NftId bundleNftId,
165
+ Amount amount,
166
+ Amount feeAmount
167
+ )
168
+ external
169
+ virtual
170
+ restricted()
171
+ {
172
+ _checkNftType(bundleNftId, BUNDLE());
173
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
174
+ }
175
+
176
+ function decreaseBundleBalance(
177
+ InstanceStore instanceStore,
178
+ NftId bundleNftId,
179
+ Amount amount,
180
+ Amount feeAmount
181
+ )
182
+ external
183
+ virtual
184
+ restricted()
185
+ {
186
+ _checkNftType(bundleNftId, BUNDLE());
187
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
188
+ }
189
+
190
+ function increaseBundleBalanceForPool(
191
+ InstanceStore instanceStore,
192
+ NftId bundleNftId,
193
+ Amount amount,
194
+ Amount feeAmount
195
+ )
196
+ external
197
+ virtual
198
+ restricted()
199
+ {
200
+ _checkNftType(bundleNftId, BUNDLE());
201
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
202
+ }
203
+
204
+ function decreaseBundleBalanceForPool(
205
+ InstanceStore instanceStore,
206
+ NftId bundleNftId,
207
+ Amount amount,
208
+ Amount feeAmount
209
+ )
210
+ external
211
+ virtual
212
+ restricted()
213
+ {
214
+ _checkNftType(bundleNftId, BUNDLE());
215
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
216
+ }
217
+
218
+
219
+ //-------- internal functions ------------------------------------------//
220
+
221
+ function _changeTargetBalance(
222
+ bool increase,
223
+ InstanceStore instanceStore,
224
+ NftId targetNftId,
225
+ Amount amount,
226
+ Amount feeAmount
227
+ )
228
+ internal
229
+ virtual
230
+ {
231
+ Amount totalAmount = amount + feeAmount;
232
+
233
+ if(increase) {
234
+ if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
235
+ if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
236
+ } else {
237
+ if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
238
+ if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
239
+ }
240
+ }
241
+
242
+
243
+ function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
244
+ internal
245
+ virtual
246
+ {
247
+ emit LogComponentServiceUpdateFee(
248
+ productNftId,
249
+ name,
250
+ feeBefore.fractionalFee,
251
+ feeBefore.fixedFee,
252
+ feeAfter.fractionalFee,
253
+ feeAfter.fixedFee
254
+ );
255
+ }
256
+
257
+ function _getDomain() internal pure virtual override returns(ObjectType) {
258
+ return ACCOUNTING();
259
+ }
260
+
261
+
262
+ }
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccountingService} from "./AccountingService.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
+
8
+ contract AccountingServiceManager is ProxyManager {
9
+
10
+ AccountingService private _accountingService;
11
+
12
+ /// @dev initializes proxy manager with service implementation
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ AccountingService svc = new AccountingService();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _accountingService = AccountingService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getAccountingService()
32
+ external
33
+ view
34
+ returns (AccountingService)
35
+ {
36
+ return _accountingService;
37
+ }
38
+ }
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+
5
+ import {Amount} from "../type/Amount.sol";
6
+ import {InstanceStore} from "../instance/InstanceStore.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {UFixed} from "../type/UFixed.sol";
10
+
11
+ /// @dev component base class
12
+ /// component examples are staking, product, distribution, pool and oracle
13
+ interface IAccountingService is
14
+ IService
15
+ {
16
+ event LogComponentServiceUpdateFee(
17
+ NftId nftId,
18
+ string feeName,
19
+ UFixed previousFractionalFee,
20
+ uint256 previousFixedFee,
21
+ UFixed newFractionalFee,
22
+ uint256 newFixedFee
23
+ );
24
+
25
+ function decreaseComponentFees(InstanceStore instanceStore, NftId componentNftId, Amount feeAmount) external;
26
+
27
+ function increaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
28
+ function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
29
+
30
+ function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
31
+ function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
32
+
33
+ function increaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
34
+ function decreaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
35
+
36
+ function increasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
37
+ function decreasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
38
+
39
+ function increaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
40
+ function decreaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
41
+
42
+ function increaseBundleBalanceForPool(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
43
+ function decreaseBundleBalanceForPool(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
44
+
45
+ }