@etherisc/gif-next 0.0.2-f1f3b2c-994 → 0.0.2-f2273b3-211

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 (483) hide show
  1. package/README.md +27 -6
  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 +163 -55
  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 +200 -16
  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 +94 -14
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +8 -8
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +275 -171
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +111 -65
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +158 -195
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +336 -295
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +717 -292
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +386 -117
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +590 -204
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +445 -375
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +3 -3
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -173
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -106
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +130 -54
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +71 -41
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +181 -116
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -51
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +224 -182
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +112 -63
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -2
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  189. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -38
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +277 -213
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +3 -3
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +337 -65
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +12 -12
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Component.sol/Component.json +105 -104
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -86
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +107 -124
  242. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +1 -1
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  256. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Service.sol/Service.json +55 -2
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +113 -136
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
  268. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -49
  270. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/Staking.sol/Staking.json +203 -206
  272. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +3 -3
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -51
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +181 -55
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +130 -130
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  316. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  336. package/contracts/accounting/AccountingService.sol +262 -0
  337. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  338. package/contracts/accounting/IAccountingService.sol +45 -0
  339. package/contracts/authorization/AccessAdmin.sol +216 -125
  340. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  341. package/contracts/authorization/Authorization.sol +321 -205
  342. package/contracts/authorization/IAccess.sol +1 -0
  343. package/contracts/authorization/IAccessAdmin.sol +14 -8
  344. package/contracts/authorization/IAuthorization.sol +27 -7
  345. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  346. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  347. package/contracts/distribution/BasicDistribution.sol +15 -12
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  349. package/contracts/distribution/Distribution.sol +41 -47
  350. package/contracts/distribution/DistributionService.sol +100 -78
  351. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  352. package/contracts/distribution/IDistributionComponent.sol +1 -1
  353. package/contracts/distribution/IDistributionService.sol +19 -19
  354. package/contracts/examples/fire/FirePool.sol +25 -10
  355. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  356. package/contracts/examples/fire/FireProduct.sol +40 -13
  357. package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
  358. package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
  359. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  360. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  361. package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
  362. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  363. package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -23
  364. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  365. package/contracts/instance/BundleSet.sol +42 -38
  366. package/contracts/instance/IInstance.sol +17 -10
  367. package/contracts/instance/IInstanceService.sol +9 -29
  368. package/contracts/instance/Instance.sol +52 -34
  369. package/contracts/instance/InstanceAdmin.sol +249 -100
  370. package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
  371. package/contracts/instance/InstanceReader.sol +174 -32
  372. package/contracts/instance/InstanceService.sol +85 -146
  373. package/contracts/instance/InstanceServiceManager.sol +1 -1
  374. package/contracts/instance/InstanceStore.sol +13 -2
  375. package/contracts/instance/RiskSet.sol +118 -0
  376. package/contracts/instance/base/ObjectCounter.sol +1 -2
  377. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  378. package/contracts/instance/base/ObjectSet.sol +31 -33
  379. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  380. package/contracts/instance/module/IComponents.sol +10 -7
  381. package/contracts/instance/module/IDistribution.sol +2 -1
  382. package/contracts/instance/module/IPolicy.sol +2 -1
  383. package/contracts/instance/module/IRisk.sol +3 -0
  384. package/contracts/oracle/BasicOracle.sol +0 -1
  385. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  386. package/contracts/oracle/IOracleService.sol +2 -1
  387. package/contracts/oracle/Oracle.sol +5 -16
  388. package/contracts/oracle/OracleService.sol +107 -78
  389. package/contracts/oracle/OracleServiceManager.sol +1 -1
  390. package/contracts/pool/BasicPool.sol +33 -24
  391. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  392. package/contracts/pool/BundleService.sol +88 -154
  393. package/contracts/pool/BundleServiceManager.sol +1 -1
  394. package/contracts/pool/IBundleService.sol +15 -43
  395. package/contracts/pool/IPoolComponent.sol +1 -7
  396. package/contracts/pool/IPoolService.sol +58 -64
  397. package/contracts/pool/Pool.sol +112 -120
  398. package/contracts/pool/PoolLib.sol +216 -0
  399. package/contracts/pool/PoolService.sol +436 -242
  400. package/contracts/pool/PoolServiceManager.sol +1 -1
  401. package/contracts/product/ApplicationService.sol +24 -16
  402. package/contracts/product/ApplicationServiceManager.sol +1 -1
  403. package/contracts/product/BasicProduct.sol +10 -12
  404. package/contracts/product/BasicProductAuthorization.sol +24 -11
  405. package/contracts/product/ClaimService.sol +202 -151
  406. package/contracts/product/ClaimServiceManager.sol +1 -1
  407. package/contracts/product/IApplicationService.sol +5 -2
  408. package/contracts/product/IClaimService.sol +14 -2
  409. package/contracts/product/IPolicyService.sol +26 -11
  410. package/contracts/product/IPricingService.sol +9 -9
  411. package/contracts/product/IProductComponent.sol +10 -1
  412. package/contracts/product/PolicyService.sol +248 -252
  413. package/contracts/product/PolicyServiceLib.sol +65 -0
  414. package/contracts/product/PolicyServiceManager.sol +1 -1
  415. package/contracts/product/PricingService.sol +30 -26
  416. package/contracts/product/PricingServiceManager.sol +3 -3
  417. package/contracts/product/Product.sol +106 -60
  418. package/contracts/product/RiskService.sol +74 -25
  419. package/contracts/product/RiskServiceManager.sol +1 -1
  420. package/contracts/registry/ChainNft.sol +10 -11
  421. package/contracts/registry/IRegistry.sol +14 -15
  422. package/contracts/registry/IRegistryService.sol +6 -4
  423. package/contracts/registry/IRelease.sol +26 -0
  424. package/contracts/registry/ITransferInterceptor.sol +1 -2
  425. package/contracts/registry/Registry.sol +29 -6
  426. package/contracts/registry/RegistryAdmin.sol +132 -226
  427. package/contracts/registry/RegistryService.sol +40 -58
  428. package/contracts/registry/RegistryServiceManager.sol +1 -1
  429. package/contracts/registry/ReleaseAdmin.sol +245 -0
  430. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  431. package/contracts/registry/ReleaseRegistry.sol +139 -124
  432. package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
  433. package/contracts/registry/TokenRegistry.sol +6 -8
  434. package/contracts/shared/Component.sol +69 -118
  435. package/contracts/shared/ComponentService.sol +422 -371
  436. package/contracts/shared/ComponentServiceManager.sol +1 -1
  437. package/contracts/shared/ComponentVerifyingService.sol +27 -15
  438. package/contracts/shared/ContractLib.sol +224 -9
  439. package/contracts/shared/IComponent.sol +8 -20
  440. package/contracts/shared/IComponentService.sol +41 -37
  441. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  442. package/contracts/shared/INftOwnable.sol +2 -0
  443. package/contracts/shared/IRegisterable.sol +23 -1
  444. package/contracts/shared/IService.sol +3 -5
  445. package/contracts/shared/InstanceLinkedComponent.sol +68 -42
  446. package/contracts/shared/Lifecycle.sol +7 -7
  447. package/contracts/shared/NftOwnable.sol +26 -6
  448. package/contracts/shared/PolicyHolder.sol +1 -1
  449. package/contracts/shared/Registerable.sol +53 -19
  450. package/contracts/shared/RegistryLinked.sol +7 -13
  451. package/contracts/shared/Service.sol +9 -31
  452. package/contracts/shared/TokenHandler.sol +274 -72
  453. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  454. package/contracts/staking/IStaking.sol +6 -10
  455. package/contracts/staking/IStakingService.sol +12 -4
  456. package/contracts/staking/StakeManagerLib.sol +69 -20
  457. package/contracts/staking/Staking.sol +73 -41
  458. package/contracts/staking/StakingReader.sol +1 -16
  459. package/contracts/staking/StakingService.sol +70 -24
  460. package/contracts/staking/StakingServiceManager.sol +5 -4
  461. package/contracts/type/Key32.sol +2 -2
  462. package/contracts/type/Key32Set.sol +62 -0
  463. package/contracts/type/NftId.sol +6 -0
  464. package/contracts/type/ObjectType.sol +48 -21
  465. package/contracts/type/RiskId.sol +23 -6
  466. package/contracts/type/RoleId.sol +23 -15
  467. package/contracts/type/Selector.sol +5 -0
  468. package/contracts/type/Timestamp.sol +0 -5
  469. package/contracts/type/UFixed.sol +9 -119
  470. package/contracts/type/Version.sol +15 -5
  471. package/contracts/upgradeability/ProxyManager.sol +2 -1
  472. package/package.json +3 -3
  473. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  474. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  475. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  476. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  477. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  479. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  480. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  481. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  482. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  483. package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,33 +1,36 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IInstance} from "../instance/IInstance.sol";
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
6
5
  import {IComponentService} from "../shared/IComponentService.sol";
6
+ import {IDistribution} from "../instance/module/IDistribution.sol";
7
+ import {IDistributionService} from "./IDistributionService.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
7
9
  import {IInstanceService} from "../instance/IInstanceService.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
8
11
  import {IRegistryService} from "../registry/IRegistryService.sol";
9
- import {InstanceReader} from "../instance/InstanceReader.sol";
10
12
  import {IComponents} from "../instance/module/IComponents.sol";
11
13
  import {IPolicy} from "../instance/module/IPolicy.sol";
12
14
 
13
15
  import {Amount, AmountLib} from "../type/Amount.sol";
14
- import {NftId, NftIdLib} from "../type/NftId.sol";
15
- import {KEEP_STATE} from "../type/StateId.sol";
16
- import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
17
16
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
18
- import {IDistributionService} from "./IDistributionService.sol";
19
- import {UFixed} from "../type/UFixed.sol";
20
17
  import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
18
+ import {NftId, NftIdLib} from "../type/NftId.sol";
19
+ import {KEEP_STATE} from "../type/StateId.sol";
20
+ import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
21
+ import {InstanceReader} from "../instance/InstanceReader.sol";
22
+ import {InstanceStore} from "../instance/InstanceStore.sol";
21
23
  import {ReferralId, ReferralLib} from "../type/Referral.sol";
24
+ import {Seconds} from "../type/Seconds.sol";
22
25
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
23
- import {IDistribution} from "../instance/module/IDistribution.sol";
24
- import {InstanceStore} from "../instance/InstanceStore.sol";
26
+ import {UFixed} from "../type/UFixed.sol";
25
27
 
26
28
 
27
29
  contract DistributionService is
28
30
  ComponentVerifyingService,
29
31
  IDistributionService
30
32
  {
33
+ IAccountingService private _accountingService;
31
34
  IComponentService private _componentService;
32
35
  IInstanceService private _instanceService;
33
36
  IRegistryService private _registryService;
@@ -41,12 +44,13 @@ contract DistributionService is
41
44
  initializer()
42
45
  {
43
46
  (
44
- address registryAddress,
45
- address authority
47
+ address authority,
48
+ address registry
46
49
  ) = abi.decode(data, (address, address));
47
50
 
48
- _initializeService(registryAddress, authority, owner);
51
+ __Service_init(authority, registry, owner);
49
52
 
53
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
50
54
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
51
55
  _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
52
56
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
@@ -61,7 +65,7 @@ contract DistributionService is
61
65
  UFixed maxDiscountPercentage,
62
66
  UFixed commissionPercentage,
63
67
  uint32 maxReferralCount,
64
- uint32 maxReferralLifetime,
68
+ Seconds maxReferralLifetime,
65
69
  bool allowSelfReferrals,
66
70
  bool allowRenewals,
67
71
  bytes memory data
@@ -70,14 +74,14 @@ contract DistributionService is
70
74
  returns (DistributorType distributorType)
71
75
  {
72
76
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
73
- InstanceReader instanceReader = instance.getInstanceReader();
77
+ // InstanceReader instanceReader = instance.getInstanceReader();
74
78
 
75
79
  {
76
- NftId productNftId = _getProductNftId(instanceReader, distributionNftId);
77
- IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
80
+ NftId productNftId = _getProductNftId(distributionNftId);
81
+ IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
78
82
 
79
- UFixed variableDistributionFees = productInfo.distributionFee.fractionalFee;
80
- UFixed variableFeesPartsTotal = productInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
83
+ UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
84
+ UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
81
85
 
82
86
  if (variableFeesPartsTotal > variableDistributionFees) {
83
87
  revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
@@ -136,21 +140,20 @@ contract DistributionService is
136
140
  instance.getInstanceStore().createDistributor(distributorNftId, info);
137
141
  }
138
142
 
139
- // function updateDistributorType(
140
- // NftId distributorNftId,
141
- // DistributorType distributorType,
142
- // bytes memory data
143
- // )
144
- // external
145
- // virtual
146
- // {
147
- // (, IInstance instance) = _getAndVerifyCallingDistribution();
148
- // InstanceReader instanceReader = instance.getInstanceReader();
149
- // IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
150
- // distributorInfo.distributorType = distributorType;
151
- // distributorInfo.data = data;
152
- // instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
153
- // }
143
+ function changeDistributorType(
144
+ NftId distributorNftId,
145
+ DistributorType distributorType,
146
+ bytes memory data
147
+ )
148
+ external
149
+ virtual
150
+ {
151
+ (,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
152
+ IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
153
+ distributorInfo.distributorType = distributorType;
154
+ distributorInfo.data = data;
155
+ instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
156
+ }
154
157
 
155
158
 
156
159
  function createReferral(
@@ -163,47 +166,51 @@ contract DistributionService is
163
166
  )
164
167
  external
165
168
  virtual
169
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
166
170
  returns (ReferralId referralId)
167
171
  {
168
172
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
169
173
 
170
174
  if (bytes(code).length == 0) {
171
- revert ErrorIDistributionServiceInvalidReferral(code);
175
+ revert ErrorDistributionServiceInvalidReferral(code);
172
176
  }
173
- if (expiryAt.eqz()) {
174
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
177
+ if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
178
+ revert ErrorDistributionServiceExpirationInvalid(expiryAt);
175
179
  }
176
180
 
177
- InstanceReader instanceReader = instance.getInstanceReader();
178
- DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
179
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
181
+ {
182
+ InstanceReader instanceReader = instance.getInstanceReader();
183
+ DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
184
+ IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
180
185
 
181
- if (distributorTypeData.maxReferralCount < maxReferrals) {
182
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
183
- }
184
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
185
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
186
- }
187
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
188
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
189
- }
190
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
191
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
186
+ if (distributorTypeData.maxReferralCount < maxReferrals) {
187
+ revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
188
+ }
189
+ if (distributorTypeData.minDiscountPercentage > discountPercentage) {
190
+ revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
191
+ }
192
+ if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
193
+ revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
194
+ }
195
+ if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
196
+ revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
197
+ }
192
198
  }
193
199
 
194
- referralId = ReferralLib.toReferralId(distributionNftId, code);
195
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
196
- distributorNftId,
197
- code,
198
- discountPercentage,
199
- maxReferrals,
200
- 0, // used referrals
201
- expiryAt,
202
- data
203
- );
204
-
205
- instance.getInstanceStore().createReferral(referralId, info);
206
- return referralId;
200
+ {
201
+ referralId = ReferralLib.toReferralId(distributionNftId, code);
202
+ IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
203
+ distributorNftId,
204
+ code,
205
+ discountPercentage,
206
+ maxReferrals,
207
+ 0, // used referrals
208
+ expiryAt,
209
+ data
210
+ );
211
+
212
+ instance.getInstanceStore().createReferral(referralId, info);
213
+ }
207
214
  }
208
215
 
209
216
  /// @inheritdoc IDistributionService
@@ -213,10 +220,14 @@ contract DistributionService is
213
220
  )
214
221
  external
215
222
  virtual
216
- restricted
223
+ restricted()
224
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
217
225
  {
218
226
  if (referralIsValid(distributionNftId, referralId)) {
219
- IInstance instance = _getInstanceForDistribution(distributionNftId);
227
+ IRegistry registry = getRegistry();
228
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
229
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
230
+
220
231
  // update book keeping for referral info
221
232
  IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
222
233
  referralInfo.usedReferrals += 1;
@@ -231,9 +242,12 @@ contract DistributionService is
231
242
  )
232
243
  external
233
244
  virtual
234
- restricted
245
+ restricted()
246
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
235
247
  {
236
- IInstance instance = _getInstanceForDistribution(distributionNftId);
248
+ IRegistry registry = getRegistry();
249
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
250
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
237
251
  InstanceReader reader = instance.getInstanceReader();
238
252
  InstanceStore store = instance.getInstanceStore();
239
253
 
@@ -245,12 +259,12 @@ contract DistributionService is
245
259
 
246
260
  // increase distribution balance by commission amount and distribution owner fee
247
261
  Amount commissionAmount = premium.commissionAmount;
248
- _componentService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
262
+ _accountingService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
249
263
 
250
264
  // update book keeping for referral info
251
265
  IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
252
266
 
253
- _componentService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
267
+ _accountingService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
254
268
 
255
269
  // update book keeping for distributor info
256
270
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
@@ -258,7 +272,7 @@ contract DistributionService is
258
272
  store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
259
273
  } else {
260
274
  // increase distribution balance by distribution owner fee
261
- _componentService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
275
+ _accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
262
276
  }
263
277
  }
264
278
 
@@ -267,13 +281,14 @@ contract DistributionService is
267
281
  public
268
282
  virtual
269
283
  // TODO: restricted() (once #462 is done)
284
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
270
285
  returns (Amount withdrawnAmount)
271
286
  {
272
287
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
273
288
  InstanceReader reader = instance.getInstanceReader();
274
289
 
275
290
  IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
276
- address distributionWallet = distributionInfo.wallet;
291
+ address distributionWallet = distributionInfo.tokenHandler.getWallet();
277
292
 
278
293
  Amount commissionAmount = reader.getFeeAmount(distributorNftId);
279
294
 
@@ -291,25 +306,32 @@ contract DistributionService is
291
306
  {
292
307
  InstanceStore store = instance.getInstanceStore();
293
308
  // decrease fee counter for distribution balance
294
- _componentService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
309
+ _accountingService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
295
310
  // decrease fee counter for distributor fee
296
- _componentService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
311
+ _accountingService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
297
312
  }
298
313
 
299
314
  // transfer amount to distributor
300
315
  {
301
316
  address distributor = getRegistry().ownerOf(distributorNftId);
302
317
  emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
303
- distributionInfo.tokenHandler.distributeTokens(distributionWallet, distributor, withdrawnAmount);
318
+ distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
304
319
  }
305
320
  }
306
321
 
307
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
322
+ function referralIsValid(NftId distributionNftId, ReferralId referralId)
323
+ public
324
+ view
325
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
326
+ returns (bool isValid)
327
+ {
308
328
  if (distributionNftId.eqz() || referralId.eqz()) {
309
329
  return false;
310
330
  }
311
331
 
312
- IInstance instance = _getInstanceForDistribution(distributionNftId);
332
+ IRegistry registry = getRegistry();
333
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
334
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
313
335
  IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
314
336
 
315
337
  if (info.distributorNftId.eqz()) {
@@ -325,7 +347,7 @@ contract DistributionService is
325
347
  view
326
348
  returns(IInstance instance)
327
349
  {
328
- NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
350
+ NftId instanceNftId = getRegistry().getParentNftId(distributionNftId);
329
351
  address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
330
352
  return IInstance(instanceAddress);
331
353
  }
@@ -17,7 +17,7 @@ contract DistributionServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  DistributionService svc = new DistributionService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -12,7 +12,7 @@ interface IDistributionComponent is IInstanceLinkedComponent {
12
12
  error ErrorDistributionNotDistributor(address distributor);
13
13
  error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
14
14
 
15
- event LogDistributorUpdated(address to, address caller);
15
+ event LogDistributorUpdated(address to, address operator);
16
16
 
17
17
  /// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
18
18
  function isDistributor(address candidate) external view returns (bool);
@@ -8,30 +8,31 @@ import {IService} from "../shared/IService.sol";
8
8
  import {UFixed} from "../type/UFixed.sol";
9
9
  import {DistributorType} from "../type/DistributorType.sol";
10
10
  import {ReferralId} from "../type/Referral.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
11
12
  import {Timestamp} from "../type/Timestamp.sol";
12
13
 
13
14
 
14
15
  interface IDistributionService is IService {
15
16
 
16
17
  error ErrorDistributionServiceCallerNotRegistered(address caller);
17
- error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
- error ErrorIDistributionServiceCallerNotDistributor(address caller);
19
- error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
20
- error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
21
- error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
22
- error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
23
- error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
24
- error ErrorIDistributionServiceInvalidReferral(string code);
25
- error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
- error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
- error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
18
+ error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
19
+ error ErrorDistributionServiceCallerNotDistributor(address caller);
20
+ error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
21
+ error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
22
+ error ErrorDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
23
+ error ErrorDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
24
+ error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
25
+ error ErrorDistributionServiceInvalidReferral(string code);
26
+ error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
27
+ error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
28
+ error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
28
29
 
29
30
  error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
30
31
 
31
32
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
32
33
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
33
34
 
34
- error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
35
+ error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
35
36
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
36
37
 
37
38
  event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
@@ -42,7 +43,7 @@ interface IDistributionService is IService {
42
43
  UFixed maxDiscountPercentage,
43
44
  UFixed commissionPercentage,
44
45
  uint32 maxReferralCount,
45
- uint32 maxReferralLifetime,
46
+ Seconds maxReferralLifetime,
46
47
  bool allowSelfReferrals,
47
48
  bool allowRenewals,
48
49
  bytes memory data
@@ -56,12 +57,11 @@ interface IDistributionService is IService {
56
57
  bytes memory data
57
58
  ) external returns (NftId distributorNftId);
58
59
 
59
- // TODO re-enable and reorganize (service contract too large)
60
- // function updateDistributorType(
61
- // NftId distributorNftId,
62
- // DistributorType distributorType,
63
- // bytes memory data
64
- // ) external;
60
+ function changeDistributorType(
61
+ NftId distributorNftId,
62
+ DistributorType distributorType,
63
+ bytes memory data
64
+ ) external;
65
65
 
66
66
  function createReferral(
67
67
  NftId distributorNftId,
@@ -1,22 +1,23 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
4
6
  import {Amount, AmountLib} from "../../type/Amount.sol";
5
7
  import {BasicPool} from "../../pool/BasicPool.sol";
6
- import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
8
  import {Fee} from "../../type/Fee.sol";
8
9
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
9
11
  import {NftId} from "../../type/NftId.sol";
10
12
  import {Seconds} from "../../type/Timestamp.sol";
11
- import {UFixed} from "../../type/UFixed.sol";
13
+ import {UFixed, UFixedLib} from "../../type/UFixed.sol";
12
14
 
13
15
  contract FirePool is
14
16
  BasicPool
15
- {
16
-
17
+ {
17
18
  constructor(
18
19
  address registry,
19
- NftId instanceNftId,
20
+ NftId fireProductNftId,
20
21
  string memory componentName,
21
22
  address token,
22
23
  IAuthorization authorization
@@ -25,18 +26,28 @@ contract FirePool is
25
26
  address initialOwner = msg.sender;
26
27
  _intialize(
27
28
  registry,
28
- instanceNftId,
29
+ fireProductNftId,
29
30
  componentName,
30
31
  token,
32
+ IComponents.PoolInfo({
33
+ maxBalanceAmount: AmountLib.max(),
34
+ isInterceptingBundleTransfers: false,
35
+ isProcessingConfirmedClaims: false,
36
+ isExternallyManaged: false,
37
+ isVerifyingApplications: false,
38
+ collateralizationLevel: UFixedLib.one(),
39
+ retentionLevel: UFixedLib.one()
40
+ }),
31
41
  authorization,
32
42
  initialOwner);
33
43
  }
34
44
 
35
45
  function _intialize(
36
46
  address registry,
37
- NftId instanceNftId,
47
+ NftId fireProductNftId,
38
48
  string memory componentName,
39
49
  address token,
50
+ IComponents.PoolInfo memory poolInfo,
40
51
  IAuthorization authorization,
41
52
  address initialOwner
42
53
  )
@@ -45,10 +56,11 @@ contract FirePool is
45
56
  {
46
57
  _initializeBasicPool(
47
58
  registry,
48
- instanceNftId,
49
- authorization,
50
- token,
59
+ fireProductNftId,
51
60
  componentName,
61
+ token,
62
+ poolInfo,
63
+ authorization,
52
64
  initialOwner);
53
65
  }
54
66
 
@@ -72,4 +84,7 @@ contract FirePool is
72
84
  netStakedAmount = _stake(bundleNftId, initialAmount);
73
85
  }
74
86
 
87
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
88
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
89
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
75
90
  }
@@ -25,8 +25,9 @@ contract FirePoolAuthorization
25
25
  IAccess.FunctionInfo[] storage functions;
26
26
 
27
27
  // authorize public role (open access to any account, only allows to lock target)
28
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
28
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
29
29
  // TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
30
+ _authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
30
31
  _authorize(functions, FirePool.createBundle.selector, "createBundle");
31
32
  }
32
33