@etherisc/gif-next 0.0.2-f12cf4d-104 → 0.0.2-f13fd28-503

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 (455) hide show
  1. package/README.md +23 -1
  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 +148 -62
  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 +149 -21
  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 +82 -12
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +100 -102
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -53
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +140 -110
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -40
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -56
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +260 -199
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -91
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -77
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -62
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +306 -161
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -18
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +150 -59
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +362 -99
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +549 -218
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +87 -73
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -70
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -40
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -54
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +98 -83
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +40 -22
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -53
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -310
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -83
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -122
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -40
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -53
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +241 -302
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -45
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +91 -65
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -22
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -144
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  157. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -131
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -181
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +51 -45
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +157 -144
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  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/Registry.sol/Registry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +316 -50
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  203. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  204. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +200 -472
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +50 -64
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +435 -5
  213. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +106 -305
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -40
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  231. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -53
  237. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  240. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  244. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  248. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  249. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  250. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  257. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  258. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +41 -29
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -33
  263. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -60
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +31 -19
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -20
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  278. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  279. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  320. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  324. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  326. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  329. package/contracts/accounting/AccountingService.sol +262 -0
  330. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  331. package/contracts/accounting/IAccountingService.sol +45 -0
  332. package/contracts/authorization/AccessAdmin.sol +177 -84
  333. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  334. package/contracts/authorization/Authorization.sol +277 -229
  335. package/contracts/authorization/IAccessAdmin.sol +13 -7
  336. package/contracts/authorization/IAuthorization.sol +15 -1
  337. package/contracts/distribution/BasicDistribution.sol +6 -6
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  339. package/contracts/distribution/Distribution.sol +32 -30
  340. package/contracts/distribution/DistributionService.sol +32 -30
  341. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  342. package/contracts/distribution/IDistributionService.sol +5 -6
  343. package/contracts/examples/fire/FirePool.sol +6 -2
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  345. package/contracts/examples/fire/FireProduct.sol +8 -1
  346. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  347. package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -7
  348. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  349. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  350. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +32 -0
  352. package/contracts/instance/BundleSet.sol +42 -38
  353. package/contracts/instance/IInstance.sol +13 -9
  354. package/contracts/instance/IInstanceService.sol +7 -6
  355. package/contracts/instance/Instance.sol +33 -18
  356. package/contracts/instance/InstanceAdmin.sol +247 -82
  357. package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
  358. package/contracts/instance/InstanceReader.sol +162 -32
  359. package/contracts/instance/InstanceService.sol +62 -72
  360. package/contracts/instance/InstanceServiceManager.sol +1 -1
  361. package/contracts/instance/InstanceStore.sol +13 -2
  362. package/contracts/instance/RiskSet.sol +118 -0
  363. package/contracts/instance/base/ObjectCounter.sol +1 -2
  364. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  365. package/contracts/instance/base/ObjectSet.sol +31 -33
  366. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  367. package/contracts/instance/module/IComponents.sol +3 -2
  368. package/contracts/instance/module/IRisk.sol +3 -0
  369. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  370. package/contracts/oracle/Oracle.sol +1 -1
  371. package/contracts/oracle/OracleService.sol +92 -74
  372. package/contracts/oracle/OracleServiceManager.sol +1 -1
  373. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  374. package/contracts/pool/BundleService.sol +35 -125
  375. package/contracts/pool/BundleServiceManager.sol +1 -1
  376. package/contracts/pool/IBundleService.sol +13 -38
  377. package/contracts/pool/IPoolService.sol +49 -56
  378. package/contracts/pool/Pool.sol +9 -9
  379. package/contracts/pool/PoolLib.sol +216 -0
  380. package/contracts/pool/PoolService.sol +323 -186
  381. package/contracts/pool/PoolServiceManager.sol +1 -1
  382. package/contracts/product/ApplicationService.sol +15 -15
  383. package/contracts/product/ApplicationServiceManager.sol +1 -1
  384. package/contracts/product/BasicProduct.sol +2 -0
  385. package/contracts/product/BasicProductAuthorization.sol +24 -10
  386. package/contracts/product/ClaimService.sol +157 -139
  387. package/contracts/product/ClaimServiceManager.sol +1 -1
  388. package/contracts/product/IApplicationService.sol +5 -2
  389. package/contracts/product/IClaimService.sol +14 -2
  390. package/contracts/product/IPolicyService.sol +23 -10
  391. package/contracts/product/IProductComponent.sol +4 -1
  392. package/contracts/product/PolicyService.sol +269 -257
  393. package/contracts/product/PolicyServiceLib.sol +65 -0
  394. package/contracts/product/PolicyServiceManager.sol +1 -1
  395. package/contracts/product/PricingService.sol +23 -19
  396. package/contracts/product/PricingServiceManager.sol +3 -3
  397. package/contracts/product/Product.sol +53 -7
  398. package/contracts/product/RiskService.sol +74 -25
  399. package/contracts/product/RiskServiceManager.sol +1 -1
  400. package/contracts/registry/ChainNft.sol +4 -2
  401. package/contracts/registry/IRegistry.sol +8 -15
  402. package/contracts/registry/IRelease.sol +26 -0
  403. package/contracts/registry/Registry.sol +7 -2
  404. package/contracts/registry/RegistryAdmin.sol +129 -237
  405. package/contracts/registry/RegistryService.sol +3 -3
  406. package/contracts/registry/RegistryServiceManager.sol +1 -1
  407. package/contracts/registry/ReleaseAdmin.sol +245 -0
  408. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  409. package/contracts/registry/ReleaseRegistry.sol +127 -101
  410. package/contracts/registry/ServiceAuthorizationV3.sol +84 -40
  411. package/contracts/registry/TokenRegistry.sol +6 -8
  412. package/contracts/shared/Component.sol +40 -42
  413. package/contracts/shared/ComponentService.sol +199 -286
  414. package/contracts/shared/ComponentServiceManager.sol +1 -1
  415. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  416. package/contracts/shared/ContractLib.sol +208 -9
  417. package/contracts/shared/IComponent.sol +3 -9
  418. package/contracts/shared/IComponentService.sol +9 -27
  419. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  420. package/contracts/shared/IRegisterable.sol +15 -4
  421. package/contracts/shared/IService.sol +3 -5
  422. package/contracts/shared/InstanceLinkedComponent.sol +3 -11
  423. package/contracts/shared/NftOwnable.sol +4 -4
  424. package/contracts/shared/PolicyHolder.sol +1 -1
  425. package/contracts/shared/Registerable.sol +45 -19
  426. package/contracts/shared/RegistryLinked.sol +1 -1
  427. package/contracts/shared/Service.sol +8 -27
  428. package/contracts/shared/TokenHandler.sol +40 -96
  429. package/contracts/staking/IStaking.sol +1 -9
  430. package/contracts/staking/IStakingService.sol +11 -1
  431. package/contracts/staking/StakeManagerLib.sol +63 -7
  432. package/contracts/staking/Staking.sol +45 -20
  433. package/contracts/staking/StakingReader.sol +1 -1
  434. package/contracts/staking/StakingService.sol +53 -57
  435. package/contracts/staking/StakingServiceManager.sol +5 -4
  436. package/contracts/type/Key32.sol +2 -2
  437. package/contracts/type/Key32Set.sol +62 -0
  438. package/contracts/type/NftId.sol +6 -0
  439. package/contracts/type/ObjectType.sol +48 -21
  440. package/contracts/type/RiskId.sol +23 -6
  441. package/contracts/type/RoleId.sol +24 -4
  442. package/contracts/type/Selector.sol +5 -0
  443. package/contracts/type/Timestamp.sol +0 -5
  444. package/contracts/type/UFixed.sol +9 -119
  445. package/contracts/type/Version.sol +15 -5
  446. package/contracts/upgradeability/ProxyManager.sol +1 -1
  447. package/package.json +1 -1
  448. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  449. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  450. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  451. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  452. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  453. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  454. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  455. package/contracts/instance/module/IAccess.sol +0 -46
@@ -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
+ }