@etherisc/gif-next 0.0.2-f08528a-758 → 0.0.2-f0ccf08-591

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 (560) hide show
  1. package/README.md +113 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +365 -113
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +680 -264
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  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 +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +198 -478
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +120 -381
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +587 -316
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +205 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +123 -194
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +347 -90
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +546 -71
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +292 -59
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +556 -173
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1042 -314
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +370 -69
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1685 -774
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +305 -229
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -728
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +48 -7
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +117 -136
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +175 -421
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +387 -228
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +183 -105
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +705 -552
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +188 -180
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +122 -100
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +276 -435
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -229
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +155 -109
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +226 -335
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -138
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +268 -427
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +378 -30
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +604 -87
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +801 -395
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +538 -538
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +153 -121
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -252
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  275. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/Staking.sol/Staking.json +292 -393
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +213 -153
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  344. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  351. package/contracts/accounting/AccountingService.sol +261 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +45 -0
  354. package/contracts/authorization/AccessAdmin.sol +458 -266
  355. package/contracts/authorization/AccessAdminLib.sol +396 -0
  356. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  357. package/contracts/authorization/Authorization.sol +159 -203
  358. package/contracts/authorization/IAccess.sol +25 -6
  359. package/contracts/authorization/IAccessAdmin.sol +87 -79
  360. package/contracts/authorization/IAuthorization.sol +9 -36
  361. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  362. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  363. package/contracts/distribution/BasicDistribution.sol +20 -28
  364. package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
  365. package/contracts/distribution/Distribution.sol +43 -81
  366. package/contracts/distribution/DistributionService.sol +260 -129
  367. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  368. package/contracts/distribution/IDistributionComponent.sol +11 -14
  369. package/contracts/distribution/IDistributionService.sol +50 -26
  370. package/contracts/examples/fire/DamageLevel.sol +59 -0
  371. package/contracts/examples/fire/FirePool.sol +86 -0
  372. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  373. package/contracts/examples/fire/FireProduct.sol +433 -0
  374. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  375. package/contracts/examples/fire/FireUSD.sol +26 -0
  376. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  377. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  379. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  380. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  382. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  383. package/contracts/instance/BundleSet.sol +130 -0
  384. package/contracts/instance/IInstance.sol +105 -46
  385. package/contracts/instance/IInstanceService.sol +55 -34
  386. package/contracts/instance/Instance.sol +189 -98
  387. package/contracts/instance/InstanceAdmin.sol +276 -159
  388. package/contracts/instance/InstanceAuthorizationV3.sol +127 -64
  389. package/contracts/instance/InstanceReader.sol +478 -251
  390. package/contracts/instance/InstanceService.sol +299 -231
  391. package/contracts/instance/InstanceServiceManager.sol +8 -13
  392. package/contracts/instance/InstanceStore.sol +24 -2
  393. package/contracts/instance/RiskSet.sol +118 -0
  394. package/contracts/instance/base/BalanceStore.sol +3 -5
  395. package/contracts/instance/base/ObjectCounter.sol +1 -2
  396. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  397. package/contracts/instance/base/ObjectSet.sol +77 -0
  398. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  399. package/contracts/instance/module/IBundle.sol +6 -5
  400. package/contracts/instance/module/IComponents.sol +30 -20
  401. package/contracts/instance/module/IDistribution.sol +21 -9
  402. package/contracts/instance/module/IPolicy.sol +50 -29
  403. package/contracts/instance/module/IRisk.sol +5 -0
  404. package/contracts/mock/Dip.sol +1 -1
  405. package/contracts/oracle/BasicOracle.sol +1 -4
  406. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  407. package/contracts/oracle/IOracle.sol +9 -4
  408. package/contracts/oracle/IOracleComponent.sol +2 -1
  409. package/contracts/oracle/IOracleService.sol +2 -1
  410. package/contracts/oracle/Oracle.sol +21 -24
  411. package/contracts/oracle/OracleService.sol +117 -85
  412. package/contracts/oracle/OracleServiceManager.sol +8 -11
  413. package/contracts/pool/BasicPool.sol +37 -28
  414. package/contracts/pool/BasicPoolAuthorization.sol +42 -9
  415. package/contracts/pool/BundleService.sol +209 -109
  416. package/contracts/pool/BundleServiceManager.sol +8 -11
  417. package/contracts/pool/IBundleService.sol +31 -22
  418. package/contracts/pool/IPoolComponent.sol +20 -10
  419. package/contracts/pool/IPoolService.sol +90 -75
  420. package/contracts/pool/Pool.sol +145 -113
  421. package/contracts/pool/PoolLib.sol +353 -0
  422. package/contracts/pool/PoolService.sol +391 -256
  423. package/contracts/pool/PoolServiceManager.sol +6 -9
  424. package/contracts/product/ApplicationService.sol +127 -81
  425. package/contracts/product/ApplicationServiceManager.sol +6 -6
  426. package/contracts/product/BasicProduct.sol +12 -45
  427. package/contracts/product/BasicProductAuthorization.sol +31 -10
  428. package/contracts/product/ClaimService.sol +368 -179
  429. package/contracts/product/ClaimServiceManager.sol +6 -6
  430. package/contracts/product/IApplicationService.sol +9 -2
  431. package/contracts/product/IClaimService.sol +44 -8
  432. package/contracts/product/IPolicyService.sol +53 -36
  433. package/contracts/product/IPricingService.sol +11 -10
  434. package/contracts/product/IProductComponent.sol +28 -5
  435. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  436. package/contracts/product/PolicyService.sol +436 -271
  437. package/contracts/product/PolicyServiceLib.sol +139 -0
  438. package/contracts/product/PolicyServiceManager.sol +6 -9
  439. package/contracts/product/PricingService.sol +75 -65
  440. package/contracts/product/PricingServiceManager.sol +6 -9
  441. package/contracts/product/Product.sol +168 -93
  442. package/contracts/product/RiskService.sol +154 -0
  443. package/contracts/product/RiskServiceManager.sol +39 -0
  444. package/contracts/registry/ChainNft.sol +72 -40
  445. package/contracts/registry/IRegistry.sol +78 -29
  446. package/contracts/registry/IRegistryService.sol +3 -10
  447. package/contracts/registry/IRelease.sol +29 -0
  448. package/contracts/registry/ITransferInterceptor.sol +1 -2
  449. package/contracts/registry/Registry.sol +368 -216
  450. package/contracts/registry/RegistryAdmin.sol +112 -289
  451. package/contracts/registry/RegistryAuthorization.sol +277 -0
  452. package/contracts/registry/RegistryService.sol +41 -66
  453. package/contracts/registry/RegistryServiceManager.sol +5 -5
  454. package/contracts/registry/ReleaseAdmin.sol +195 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  456. package/contracts/registry/ReleaseRegistry.sol +520 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +201 -57
  458. package/contracts/registry/TokenRegistry.sol +14 -15
  459. package/contracts/shared/Component.sol +65 -136
  460. package/contracts/shared/ComponentService.sol +440 -343
  461. package/contracts/shared/ComponentServiceManager.sol +10 -7
  462. package/contracts/shared/ContractLib.sol +311 -0
  463. package/contracts/shared/IComponent.sol +5 -17
  464. package/contracts/shared/IComponentService.sol +49 -41
  465. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  466. package/contracts/shared/ILifecycle.sol +3 -1
  467. package/contracts/shared/INftOwnable.sol +2 -0
  468. package/contracts/shared/IPolicyHolder.sol +12 -22
  469. package/contracts/shared/IRegisterable.sol +22 -1
  470. package/contracts/shared/IService.sol +4 -6
  471. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  472. package/contracts/shared/InstanceLinkedComponent.sol +80 -37
  473. package/contracts/shared/KeyValueStore.sol +1 -1
  474. package/contracts/shared/Lifecycle.sol +15 -4
  475. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  476. package/contracts/shared/NftOwnable.sol +31 -11
  477. package/contracts/shared/PolicyHolder.sol +17 -57
  478. package/contracts/shared/Registerable.sol +52 -21
  479. package/contracts/shared/RegistryLinked.sol +9 -14
  480. package/contracts/shared/Service.sol +22 -38
  481. package/contracts/shared/TokenHandler.sol +310 -26
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  483. package/contracts/staking/IStaking.sol +26 -15
  484. package/contracts/staking/IStakingService.sol +31 -9
  485. package/contracts/staking/Staking.sol +122 -90
  486. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  487. package/contracts/staking/StakingManager.sol +10 -12
  488. package/contracts/staking/StakingReader.sol +26 -33
  489. package/contracts/staking/StakingService.sol +93 -37
  490. package/contracts/staking/StakingServiceManager.sol +8 -7
  491. package/contracts/staking/StakingStore.sol +14 -23
  492. package/contracts/staking/TargetManagerLib.sol +8 -4
  493. package/contracts/type/Amount.sol +27 -5
  494. package/contracts/type/Blocknumber.sol +7 -1
  495. package/contracts/type/ClaimId.sol +6 -1
  496. package/contracts/type/Fee.sol +8 -8
  497. package/contracts/type/Key32.sol +2 -2
  498. package/contracts/type/Key32Set.sol +62 -0
  499. package/contracts/type/NftId.sol +7 -0
  500. package/contracts/type/ObjectType.sol +76 -44
  501. package/contracts/type/PayoutId.sol +10 -10
  502. package/contracts/type/Referral.sol +1 -0
  503. package/contracts/type/RiskId.sol +38 -6
  504. package/contracts/type/RoleId.sol +61 -55
  505. package/contracts/type/Seconds.sol +21 -1
  506. package/contracts/type/Selector.sol +5 -0
  507. package/contracts/type/StateId.sol +15 -1
  508. package/contracts/type/String.sol +12 -0
  509. package/contracts/type/Timestamp.sol +10 -5
  510. package/contracts/type/UFixed.sol +56 -126
  511. package/contracts/type/Version.sol +57 -6
  512. package/contracts/{shared → upgradeability}/ProxyManager.sol +84 -49
  513. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  514. package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
  515. package/package.json +7 -6
  516. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  517. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  518. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  519. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  522. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  524. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  526. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  527. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  528. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  529. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  531. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  532. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  533. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  534. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  535. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  536. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  537. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  539. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  540. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  541. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  542. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  543. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  544. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  545. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  546. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  547. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  548. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  549. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  550. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  551. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  552. package/contracts/instance/BundleManager.sol +0 -126
  553. package/contracts/instance/base/ObjectManager.sol +0 -79
  554. package/contracts/instance/module/IAccess.sol +0 -46
  555. package/contracts/product/ProductService.sol +0 -124
  556. package/contracts/product/ProductServiceManager.sol +0 -42
  557. package/contracts/registry/ReleaseManager.sol +0 -487
  558. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  559. package/contracts/shared/InitializableCustom.sol +0 -177
  560. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PoolService} from "./PoolService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract PoolServiceManager is ProxyManager {
12
9
 
@@ -15,14 +12,14 @@ contract PoolServiceManager is ProxyManager {
15
12
  /// @dev initializes proxy manager with pool service implementation
16
13
  constructor(
17
14
  address authority,
18
- address registryAddress,
15
+ address registry,
19
16
  bytes32 salt
20
17
  )
21
- ProxyManager(registryAddress)
22
18
  {
23
19
  PoolService poolSrv = new PoolService{salt: salt}();
24
- bytes memory data = abi.encode(registryAddress, address(this), authority);
25
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
26
23
  address(poolSrv),
27
24
  data,
28
25
  salt);
@@ -1,55 +1,32 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IApplicationService} from "./IApplicationService.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IPolicy} from "../instance/module/IPolicy.sol";
9
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
10
+ import {IPricingService} from "./IPricingService.sol";
11
+ import {IRegistryService} from "../registry/IRegistryService.sol";
12
+
4
13
  import {AmountLib} from "../type/Amount.sol";
14
+ import {ContractLib} from "../shared/ContractLib.sol";
5
15
  import {Seconds} from "../type/Seconds.sol";
6
- import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
7
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
8
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
9
- import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, REGISTRY, APPLICATION, POLICY, BUNDLE, PRICE} from "../type/ObjectType.sol";
10
- import {APPLIED, REVOKED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
16
+ import {zeroTimestamp} from "../type/Timestamp.sol";
17
+ import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
18
+ import {REVOKED} from "../type/StateId.sol";
11
19
  import {NftId, NftIdLib} from "../type/NftId.sol";
12
- import {Fee, FeeLib} from "../type/Fee.sol";
13
20
  import {ReferralId} from "../type/Referral.sol";
14
21
  import {RiskId} from "../type/RiskId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {Version, VersionLib} from "../type/Version.sol";
17
22
  import {Amount, AmountLib} from "../type/Amount.sol";
18
-
19
- import {TokenHandler} from "../shared/TokenHandler.sol";
20
- import {IVersionable} from "../shared/IVersionable.sol";
21
- import {Versionable} from "../shared/Versionable.sol";
22
- import {IService} from "../shared/IService.sol";
23
23
  import {Service} from "../shared/Service.sol";
24
-
25
- import {IRegistry} from "../registry/IRegistry.sol";
26
-
27
- import {IProductComponent} from "./IProductComponent.sol";
28
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
29
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
30
- import {Product} from "./Product.sol";
31
-
32
- import {IComponents} from "../instance/module/IComponents.sol";
33
- import {IPolicy} from "../instance/module/IPolicy.sol";
34
- import {IRisk} from "../instance/module/IRisk.sol";
35
- import {IBundle} from "../instance/module/IBundle.sol";
36
- import {IProductService} from "./IProductService.sol";
37
-
38
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
39
-
40
- import {IInstance} from "../instance/IInstance.sol";
41
24
  import {InstanceReader} from "../instance/InstanceReader.sol";
42
25
 
43
- import {IApplicationService} from "./IApplicationService.sol";
44
- import {IBundleService} from "../pool/IBundleService.sol";
45
- import {IDistributionService} from "../distribution/IDistributionService.sol";
46
- import {IPoolService} from "../pool/IPoolService.sol";
47
- import {IPricingService} from "./IPricingService.sol";
48
- import {IRegistryService} from "../registry/IRegistryService.sol";
49
26
 
50
27
 
51
28
  contract ApplicationService is
52
- ComponentVerifyingService,
29
+ Service,
53
30
  IApplicationService
54
31
  {
55
32
  IDistributionService private _distributionService;
@@ -65,25 +42,24 @@ contract ApplicationService is
65
42
  initializer()
66
43
  {
67
44
  (
68
- address registryAddress,,
69
- //address managerAddress
70
- address authority
71
- ) = abi.decode(data, (address, address, address));
45
+ address authority,
46
+ address registry
47
+ ) = abi.decode(data, (address, address));
72
48
 
73
- initializeService(registryAddress, address(0), owner);
49
+ __Service_init(authority, registry, owner);
74
50
 
75
51
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
76
52
  _pricingService = IPricingService(_getServiceAddress(PRICE()));
77
53
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
78
54
 
79
- registerInterface(type(IApplicationService).interfaceId);
55
+ _registerInterface(type(IApplicationService).interfaceId);
80
56
  }
81
57
 
82
58
 
83
- function _checkLinkedpplicationParameters(
59
+ function _checkLinkedApplicationParameters(
84
60
  InstanceReader instanceReader,
85
61
  NftId productNftId,
86
- RiskId rirskId,
62
+ RiskId riskId,
87
63
  ReferralId referralId,
88
64
  NftId bundleNftId
89
65
  )
@@ -91,17 +67,32 @@ contract ApplicationService is
91
67
  virtual
92
68
  view
93
69
  {
94
- IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
95
-
96
- // TODO check riskId with product
97
-
98
- // TODO check referral with distribution
70
+ // check risk with product
71
+ (bool exists, bool active) = instanceReader.getRiskSet().checkRisk(productNftId, riskId);
72
+ if (!exists) { revert ErrorApplicationServiceRiskUnknown(riskId, productNftId); }
73
+ if (!active) { revert ErrorApplicationServiceRiskPaused(riskId, productNftId); }
74
+
75
+ NftId riskProductNftId = instanceReader.getRiskInfo(riskId).productNftId;
76
+ if (productNftId != riskProductNftId) {
77
+ revert ErrorApplicationServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
78
+ }
99
79
 
100
80
  // check bundle with pool
101
- NftId productPoolNftId = productInfo.poolNftId;
102
- NftId bundlePoolNftId = instanceReader.getBundleInfo(bundleNftId).poolNftId;
103
- if(bundlePoolNftId != productPoolNftId) {
104
- revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, productPoolNftId, bundlePoolNftId);
81
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
82
+ {
83
+ NftId poolNftId = productInfo.poolNftId;
84
+ (exists, active) = instanceReader.getBundleSet().checkBundle(poolNftId, bundleNftId);
85
+ if (!exists) { revert ErrorApplicationServiceBundleUnknown(bundleNftId, poolNftId); }
86
+ if (!active) { revert ErrorApplicationServiceBundleLocked(bundleNftId, poolNftId); }
87
+ }
88
+
89
+ // check referral with distribution
90
+ {
91
+ if (productInfo.hasDistribution && ! referralId.eqz()) {
92
+ if (!_distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
93
+ revert ErrorApplicationServiceReferralInvalid(productNftId, productInfo.distributionNftId, referralId);
94
+ }
95
+ }
105
96
  }
106
97
  }
107
98
 
@@ -135,8 +126,7 @@ contract ApplicationService is
135
126
  view
136
127
  returns (Amount premiumAmount)
137
128
  {
138
- return AmountLib.toAmount(
139
- _pricingService.calculatePremium(
129
+ return _pricingService.calculatePremium(
140
130
  info.productNftId,
141
131
  info.riskId,
142
132
  info.sumInsuredAmount,
@@ -144,7 +134,7 @@ contract ApplicationService is
144
134
  info.applicationData,
145
135
  info.bundleNftId,
146
136
  info.referralId
147
- ).premiumAmount);
137
+ ).premiumAmount;
148
138
  }
149
139
 
150
140
 
@@ -152,6 +142,7 @@ contract ApplicationService is
152
142
  address applicationOwner,
153
143
  RiskId riskId,
154
144
  Amount sumInsuredAmount,
145
+ Amount premiumAmount,
155
146
  Seconds lifetime,
156
147
  NftId bundleNftId,
157
148
  ReferralId referralId,
@@ -159,13 +150,17 @@ contract ApplicationService is
159
150
  )
160
151
  external
161
152
  virtual
153
+ restricted()
154
+ nonReentrant()
162
155
  returns (NftId applicationNftId)
163
156
  {
164
- (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
157
+ _checkNftType(bundleNftId, BUNDLE());
158
+
159
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveProduct();
165
160
 
166
161
  // check if provided references are valid and linked to calling product contract
167
162
  InstanceReader instanceReader = instance.getInstanceReader();
168
- _checkLinkedpplicationParameters(
163
+ _checkLinkedApplicationParameters(
169
164
  instanceReader,
170
165
  productNftId,
171
166
  riskId,
@@ -176,14 +171,45 @@ contract ApplicationService is
176
171
  applicationNftId = _registerApplication(productNftId, applicationOwner);
177
172
 
178
173
  // create policy info for application
179
- IPolicy.PolicyInfo memory applicationInfo = IPolicy.PolicyInfo({
174
+ IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
175
+ productNftId,
176
+ riskId,
177
+ sumInsuredAmount,
178
+ premiumAmount,
179
+ lifetime,
180
+ bundleNftId,
181
+ referralId,
182
+ applicationData);
183
+
184
+ // register application with instance
185
+ instance.getInstanceStore().createApplication(
186
+ applicationNftId,
187
+ applicationInfo);
188
+
189
+ // TODO: add logging
190
+ }
191
+
192
+ function _createApplicationInfo(
193
+ NftId productNftId,
194
+ RiskId riskId,
195
+ Amount sumInsuredAmount,
196
+ Amount premiumAmount,
197
+ Seconds lifetime,
198
+ NftId bundleNftId,
199
+ ReferralId referralId,
200
+ bytes memory applicationData
201
+ )
202
+ internal
203
+ virtual
204
+ returns (IPolicy.PolicyInfo memory applicationInfo)
205
+ {
206
+ return IPolicy.PolicyInfo({
180
207
  productNftId: productNftId,
181
208
  bundleNftId: bundleNftId,
182
209
  referralId: referralId,
183
210
  riskId: riskId,
184
211
  sumInsuredAmount: sumInsuredAmount,
185
- premiumAmount: AmountLib.zero(),
186
- premiumPaidAmount: AmountLib.zero(),
212
+ premiumAmount: premiumAmount,
187
213
  lifetime: lifetime,
188
214
  applicationData: applicationData,
189
215
  processData: "",
@@ -195,30 +221,21 @@ contract ApplicationService is
195
221
  expiredAt: zeroTimestamp(),
196
222
  closedAt: zeroTimestamp()
197
223
  });
198
-
199
- // TODO consider to provide this amount externally
200
- // actual calculation is done 2nd time anyway for premium collection
201
- // calculate premium amount
202
- applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
203
-
204
- // register application with instance
205
- instance.getInstanceStore().createApplication(
206
- applicationNftId,
207
- applicationInfo);
208
-
209
- // TODO: add logging
210
224
  }
211
225
 
212
-
213
226
  function renew(
214
227
  NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
215
228
  NftId bundleNftId // will likely need a newer bundle for underwriting
216
229
  )
217
230
  external
218
- virtual override
231
+ virtual
232
+ restricted()
233
+ nonReentrant()
219
234
  returns (NftId applicationNftId)
220
235
  {
221
-
236
+ _checkNftType(policyNftId, POLICY());
237
+ _checkNftType(bundleNftId, BUNDLE());
238
+ // TODO implement
222
239
  }
223
240
 
224
241
 
@@ -232,21 +249,50 @@ contract ApplicationService is
232
249
  bytes memory applicationData
233
250
  )
234
251
  external
235
- virtual override
252
+ virtual
253
+ restricted()
254
+ nonReentrant()
236
255
  {
237
-
256
+ _checkNftType(applicationNftId, POLICY());
257
+ _checkNftType(bundleNftId, BUNDLE());
258
+ // TODO implement
238
259
  }
239
260
 
240
261
  function revoke(NftId applicationNftId)
241
262
  external
242
- virtual override
263
+ virtual
264
+ restricted()
265
+ nonReentrant()
243
266
  {
244
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
267
+ _checkNftType(applicationNftId, POLICY());
268
+
269
+ (, IInstance instance) = _getAndVerifyActiveProduct();
245
270
  instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
246
271
  }
247
272
 
248
273
  // internal functions
249
274
 
275
+ function _getAndVerifyActiveProduct()
276
+ internal
277
+ view
278
+ returns (
279
+ NftId productNftId,
280
+ IInstance instance
281
+ )
282
+ {
283
+ (
284
+ IRegistry.ObjectInfo memory info,
285
+ address instanceAddress
286
+ ) = ContractLib.getAndVerifyComponent(
287
+ getRegistry(),
288
+ msg.sender,
289
+ PRODUCT(),
290
+ true); // only active pools
291
+
292
+ productNftId = info.nftId;
293
+ instance = IInstance(instanceAddress);
294
+ }
295
+
250
296
 
251
297
  function _getDomain() internal pure override returns(ObjectType) {
252
298
  return APPLICATION();
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ApplicationService} from "./ApplicationService.sol";
7
7
 
8
8
  contract ApplicationServiceManager is ProxyManager {
@@ -12,14 +12,14 @@ contract ApplicationServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  ApplicationService svc = new ApplicationService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
@@ -1,43 +1,16 @@
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
-
6
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
- import {IRisk} from "../instance/module/IRisk.sol";
11
- import {IApplicationService} from "./IApplicationService.sol";
4
+ import {Fee} from "../type/Fee.sol";
12
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
13
- import {IComponentService} from "../shared/IComponentService.sol";
14
- import {IPolicyService} from "./IPolicyService.sol";
15
- import {IProductService} from "./IProductService.sol";
16
- import {IClaimService} from "./IClaimService.sol";
17
- import {IPricingService} from "./IPricingService.sol";
18
- import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
20
- import {Product} from "../product/Product.sol";
21
- import {PayoutId} from "../type/PayoutId.sol";
22
- import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
23
- import {ReferralId} from "../type/Referral.sol";
24
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
25
- import {Seconds} from "../type/Seconds.sol";
26
- import {StateId} from "../type/StateId.sol";
27
- import {Timestamp} from "../type/Timestamp.sol";
28
-
29
- import {TokenHandler} from "../shared/TokenHandler.sol";
30
-
31
- import {InstanceReader} from "../instance/InstanceReader.sol";
32
- import {IPolicy} from "../instance/module/IPolicy.sol";
33
6
  import {IComponents} from "../instance/module/IComponents.sol";
34
- import {Pool} from "../pool/Pool.sol";
35
- import {Distribution} from "../distribution/Distribution.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {Product} from "../product/Product.sol";
36
9
 
37
10
  abstract contract BasicProduct is
38
11
  Product
39
12
  {
40
-
13
+
41
14
  function setFees(
42
15
  Fee memory productFee,
43
16
  Fee memory processingFee
@@ -50,17 +23,14 @@ abstract contract BasicProduct is
50
23
  _setFees(productFee, processingFee);
51
24
  }
52
25
 
53
-
54
26
  function _initializeBasicProduct(
55
27
  address registry,
56
28
  NftId instanceNftId,
57
- IAuthorization authorization,
58
- address initialOwner,
59
29
  string memory name,
60
- address token,
61
- bool isInterceptor,
62
- address pool,
63
- address distribution
30
+ IComponents.ProductInfo memory productInfo,
31
+ IComponents.FeeInfo memory feeInfo,
32
+ IAuthorization authorization,
33
+ address initialOwner
64
34
  )
65
35
  internal
66
36
  virtual
@@ -69,14 +39,11 @@ abstract contract BasicProduct is
69
39
  _initializeProduct(
70
40
  registry,
71
41
  instanceNftId,
42
+ name,
43
+ productInfo,
44
+ feeInfo,
72
45
  authorization,
73
46
  initialOwner,
74
- name,
75
- token,
76
- isInterceptor,
77
- pool,
78
- distribution,
79
- "", //registryData,
80
- ""); // componentData
47
+ ""); // component data
81
48
  }
82
49
  }
@@ -1,30 +1,50 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+
4
7
  import {Authorization} from "../authorization/Authorization.sol";
5
8
  import {BasicProduct} from "./BasicProduct.sol";
6
- import {PRODUCT} from "../type/ObjectType.sol";
7
- import {IAccess} from "../authorization/IAccess.sol";
8
- import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
- import {RoleId} from "../type/RoleId.sol";
9
+ import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
10
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {TokenHandler} from "../shared/TokenHandler.sol";
10
12
 
11
13
 
12
14
  contract BasicProductAuthorization
13
15
  is Authorization
14
16
  {
15
-
16
17
  constructor(string memory componentName)
17
- Authorization(componentName)
18
+ Authorization(
19
+ componentName,
20
+ PRODUCT(),
21
+ 3,
22
+ COMMIT_HASH,
23
+ true,
24
+ true)
18
25
  {}
19
26
 
20
- function _setupTargets()
27
+ function _setupServiceTargets()
21
28
  internal
22
29
  virtual override
23
30
  {
24
- // basic component target
25
- _addComponentTargetWithRole(PRODUCT());
31
+ _authorizeServiceDomain(COMPONENT(), address(10));
32
+ _authorizeServiceDomain(POLICY(), address(11));
26
33
  }
27
34
 
35
+ function _setupTokenHandlerAuthorizations() internal virtual override {
36
+ // authorize token handler functions for component service role
37
+ IAccess.FunctionInfo[] storage functions;
38
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
39
+ _authorize(functions, TokenHandler.approve.selector, "approve");
40
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
41
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
42
+
43
+ // authorize token handler functions for pool service role
44
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POLICY()));
45
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
46
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
47
+ }
28
48
 
29
49
  function _setupTargetAuthorizations()
30
50
  internal
@@ -33,8 +53,9 @@ contract BasicProductAuthorization
33
53
  IAccess.FunctionInfo[] storage functions;
34
54
 
35
55
  // authorize public role (open access to any account, only allows to lock target)
36
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
56
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
37
57
  _authorize(functions, BasicProduct.setFees.selector, "setFees");
58
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
38
59
  }
39
60
  }
40
61