@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f689687-279

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 (433) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -65
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +259 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -54
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +288 -147
  58. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  59. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  60. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  62. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  64. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  66. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +331 -99
  68. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
  70. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +294 -196
  72. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  74. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  76. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
  78. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  79. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  80. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  82. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  89. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  90. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  91. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  96. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -26
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
  128. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -50
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +105 -137
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +40 -38
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  167. package/artifacts/contracts/product/Product.sol/Product.json +157 -130
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  178. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  188. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  190. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  198. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  208. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  212. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  214. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
  216. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
  218. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  224. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  242. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  283. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  309. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  312. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  314. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  316. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  317. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  318. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  319. package/contracts/accounting/AccountingService.sol +262 -0
  320. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  321. package/contracts/accounting/IAccountingService.sol +45 -0
  322. package/contracts/authorization/AccessAdmin.sol +156 -82
  323. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  324. package/contracts/authorization/Authorization.sol +277 -229
  325. package/contracts/authorization/IAccessAdmin.sol +13 -7
  326. package/contracts/authorization/IAuthorization.sol +15 -1
  327. package/contracts/distribution/BasicDistribution.sol +4 -4
  328. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  329. package/contracts/distribution/Distribution.sol +27 -24
  330. package/contracts/distribution/DistributionService.sol +18 -15
  331. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  332. package/contracts/examples/fire/FirePool.sol +6 -2
  333. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  334. package/contracts/examples/fire/FireProduct.sol +8 -1
  335. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  336. package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -14
  337. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  338. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  339. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  340. package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
  341. package/contracts/instance/BundleSet.sol +4 -4
  342. package/contracts/instance/IInstance.sol +6 -7
  343. package/contracts/instance/IInstanceService.sol +2 -0
  344. package/contracts/instance/Instance.sol +19 -11
  345. package/contracts/instance/InstanceAdmin.sol +216 -62
  346. package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
  347. package/contracts/instance/InstanceReader.sol +79 -35
  348. package/contracts/instance/InstanceService.sol +43 -31
  349. package/contracts/instance/InstanceServiceManager.sol +1 -1
  350. package/contracts/instance/InstanceStore.sol +13 -2
  351. package/contracts/instance/RiskSet.sol +11 -12
  352. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  353. package/contracts/instance/base/ObjectSet.sol +7 -8
  354. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  355. package/contracts/instance/module/IComponents.sol +3 -2
  356. package/contracts/instance/module/IRisk.sol +2 -0
  357. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  358. package/contracts/oracle/Oracle.sol +1 -1
  359. package/contracts/oracle/OracleService.sol +16 -15
  360. package/contracts/oracle/OracleServiceManager.sol +1 -1
  361. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  362. package/contracts/pool/BundleService.sol +35 -63
  363. package/contracts/pool/BundleServiceManager.sol +1 -1
  364. package/contracts/pool/IBundleService.sol +13 -20
  365. package/contracts/pool/IPoolService.sol +50 -38
  366. package/contracts/pool/Pool.sol +9 -9
  367. package/contracts/pool/PoolLib.sol +216 -0
  368. package/contracts/pool/PoolService.sol +307 -162
  369. package/contracts/pool/PoolServiceManager.sol +1 -1
  370. package/contracts/product/ApplicationService.sol +3 -3
  371. package/contracts/product/ApplicationServiceManager.sol +1 -1
  372. package/contracts/product/BasicProduct.sol +2 -0
  373. package/contracts/product/BasicProductAuthorization.sol +24 -10
  374. package/contracts/product/ClaimService.sol +157 -139
  375. package/contracts/product/ClaimServiceManager.sol +1 -1
  376. package/contracts/product/IClaimService.sol +14 -2
  377. package/contracts/product/IPolicyService.sol +3 -2
  378. package/contracts/product/IProductComponent.sol +4 -1
  379. package/contracts/product/PolicyService.sol +74 -82
  380. package/contracts/product/PolicyServiceManager.sol +1 -1
  381. package/contracts/product/PricingService.sol +23 -19
  382. package/contracts/product/PricingServiceManager.sol +3 -3
  383. package/contracts/product/Product.sol +36 -0
  384. package/contracts/product/RiskService.sol +61 -23
  385. package/contracts/product/RiskServiceManager.sol +1 -1
  386. package/contracts/registry/IRegistry.sol +8 -15
  387. package/contracts/registry/IRelease.sol +26 -0
  388. package/contracts/registry/Registry.sol +7 -2
  389. package/contracts/registry/RegistryAdmin.sol +129 -226
  390. package/contracts/registry/RegistryService.sol +3 -3
  391. package/contracts/registry/RegistryServiceManager.sol +1 -1
  392. package/contracts/registry/ReleaseAdmin.sol +245 -0
  393. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  394. package/contracts/registry/ReleaseRegistry.sol +124 -99
  395. package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
  396. package/contracts/registry/TokenRegistry.sol +6 -8
  397. package/contracts/shared/Component.sol +32 -27
  398. package/contracts/shared/ComponentService.sol +89 -266
  399. package/contracts/shared/ComponentServiceManager.sol +1 -1
  400. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  401. package/contracts/shared/ContractLib.sol +32 -3
  402. package/contracts/shared/IComponent.sol +3 -9
  403. package/contracts/shared/IComponentService.sol +1 -23
  404. package/contracts/shared/IRegisterable.sol +15 -4
  405. package/contracts/shared/IService.sol +3 -5
  406. package/contracts/shared/InstanceLinkedComponent.sol +3 -3
  407. package/contracts/shared/NftOwnable.sol +4 -4
  408. package/contracts/shared/PolicyHolder.sol +1 -1
  409. package/contracts/shared/Registerable.sol +45 -19
  410. package/contracts/shared/RegistryLinked.sol +1 -1
  411. package/contracts/shared/Service.sol +8 -27
  412. package/contracts/shared/TokenHandler.sol +40 -88
  413. package/contracts/staking/IStaking.sol +0 -8
  414. package/contracts/staking/IStakingService.sol +8 -0
  415. package/contracts/staking/StakeManagerLib.sol +1 -1
  416. package/contracts/staking/Staking.sol +34 -13
  417. package/contracts/staking/StakingReader.sol +1 -1
  418. package/contracts/staking/StakingService.sol +32 -42
  419. package/contracts/staking/StakingServiceManager.sol +5 -4
  420. package/contracts/type/ObjectType.sol +46 -21
  421. package/contracts/type/RiskId.sol +5 -0
  422. package/contracts/type/RoleId.sol +24 -4
  423. package/contracts/type/Selector.sol +5 -0
  424. package/contracts/type/Timestamp.sol +0 -5
  425. package/contracts/type/Version.sol +15 -5
  426. package/contracts/upgradeability/ProxyManager.sol +1 -1
  427. package/package.json +1 -1
  428. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  430. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  431. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  432. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  433. package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,19 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
- import {DistributorType} from "../type/DistributorType.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
- import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
- import {RequestId} from "../type/RequestId.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {RoleId} from "../type/RoleId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
17
5
 
18
6
  import {IBundle} from "../instance/module/IBundle.sol";
19
7
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -22,12 +10,28 @@ import {IInstance} from "./IInstance.sol";
22
10
  import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
11
  import {IOracle} from "../oracle/IOracle.sol";
24
12
  import {IPolicy} from "../instance/module/IPolicy.sol";
13
+ import {IRegistry} from "../registry/IRegistry.sol";
25
14
  import {IRisk} from "../instance/module/IRisk.sol";
26
15
  import {TimestampLib} from "../type/Timestamp.sol";
27
16
 
28
- import {InstanceStore} from "./InstanceStore.sol";
17
+ import {Amount} from "../type/Amount.sol";
29
18
  import {BundleSet} from "./BundleSet.sol";
19
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
20
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
21
+ import {DistributorType} from "../type/DistributorType.sol";
22
+ import {InstanceStore} from "./InstanceStore.sol";
23
+ import {Key32} from "../type/Key32.sol";
24
+ import {NftId} from "../type/NftId.sol";
25
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
26
+ import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
27
+ import {RequestId} from "../type/RequestId.sol";
28
+ import {RiskId} from "../type/RiskId.sol";
30
29
  import {RiskSet} from "./RiskSet.sol";
30
+ import {RoleId} from "../type/RoleId.sol";
31
+ import {StateId} from "../type/StateId.sol";
32
+ import {TokenHandler} from "../shared/TokenHandler.sol";
33
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
34
+
31
35
 
32
36
 
33
37
  contract InstanceReader {
@@ -37,7 +41,9 @@ contract InstanceReader {
37
41
 
38
42
  bool private _initialized = false;
39
43
 
44
+ IRegistry internal _registry;
40
45
  IInstance internal _instance;
46
+
41
47
  InstanceStore internal _store;
42
48
  BundleSet internal _bundleSet;
43
49
  RiskSet internal _riskSet;
@@ -51,7 +57,6 @@ contract InstanceReader {
51
57
  initializeWithInstance(msg.sender);
52
58
  }
53
59
 
54
- /// @dev This initializer needs to be called from the instance itself.
55
60
  function initializeWithInstance(address instanceAddress)
56
61
  public
57
62
  {
@@ -61,12 +66,28 @@ contract InstanceReader {
61
66
 
62
67
  _initialized = true;
63
68
  _instance = IInstance(instanceAddress);
69
+ _registry = _instance.getRegistry();
70
+
64
71
  _store = _instance.getInstanceStore();
65
72
  _bundleSet = _instance.getBundleSet();
66
73
  _riskSet = _instance.getRiskSet();
67
74
  }
68
75
 
69
76
 
77
+ // instance level functions
78
+
79
+ function getRegistry() public view returns (IRegistry registry) {
80
+ return _registry;
81
+ }
82
+
83
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
84
+ return _registry.getNftIdForAddress(address(_instance));
85
+ }
86
+
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
90
+
70
91
  // module specific functions
71
92
 
72
93
  function getPolicyInfo(NftId policyNftId)
@@ -110,7 +131,7 @@ contract InstanceReader {
110
131
  function bundles(NftId poolNftId)
111
132
  public
112
133
  view
113
- returns (uint256 bundles)
134
+ returns (uint256 bundleCount)
114
135
  {
115
136
  return _bundleSet.bundles(poolNftId);
116
137
  }
@@ -118,7 +139,7 @@ contract InstanceReader {
118
139
  function activeBundles(NftId poolNftId)
119
140
  public
120
141
  view
121
- returns (uint256 bundles)
142
+ returns (uint256 bundleCount)
122
143
  {
123
144
  return _bundleSet.activeBundles(poolNftId);
124
145
  }
@@ -166,7 +187,7 @@ contract InstanceReader {
166
187
  function claims(NftId policyNftId)
167
188
  public
168
189
  view
169
- returns (uint16 claims)
190
+ returns (uint16 claimCount)
170
191
  {
171
192
  return getPolicyInfo(policyNftId).claimsCount;
172
193
  }
@@ -204,7 +225,7 @@ contract InstanceReader {
204
225
  function payouts(NftId policyNftId, ClaimId claimId)
205
226
  public
206
227
  view
207
- returns (uint24 payouts)
228
+ returns (uint24 payoutCount)
208
229
  {
209
230
  return getClaimInfo(policyNftId, claimId).payoutsCount;
210
231
  }
@@ -250,7 +271,7 @@ contract InstanceReader {
250
271
  function risks(NftId productNftId)
251
272
  public
252
273
  view
253
- returns (uint256 activeRisks)
274
+ returns (uint256 riskCount)
254
275
  {
255
276
  return _riskSet.risks(productNftId);
256
277
  }
@@ -266,7 +287,7 @@ contract InstanceReader {
266
287
  function activeRisks(NftId productNftId)
267
288
  public
268
289
  view
269
- returns (uint256 activeRisks)
290
+ returns (uint256 activeRiskCount)
270
291
  {
271
292
  return _riskSet.activeRisks(productNftId);
272
293
  }
@@ -315,32 +336,43 @@ contract InstanceReader {
315
336
  return _riskSet.getLinkedPolicyNftId(riskId, idx);
316
337
  }
317
338
 
318
- function getWallet(NftId componentNftId)
339
+
340
+ function getToken(NftId componentNftId)
319
341
  public
320
342
  view
321
- returns (address tokenHandler)
343
+ returns (IERC20Metadata token)
322
344
  {
323
- bytes memory data = _store.getData(toComponentKey(componentNftId));
345
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
346
+ if (address(tokenHandler) != address(0)) {
347
+ return tokenHandler.TOKEN();
348
+ }
349
+ }
324
350
 
325
- if (data.length > 0) {
326
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
327
- return info.tokenHandler.getWallet();
351
+
352
+ function getWallet(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (address wallet)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.getWallet();
328
360
  }
329
361
  }
330
362
 
363
+
331
364
  function getTokenHandler(NftId componentNftId)
332
365
  public
333
366
  view
334
- returns (address tokenHandler)
367
+ returns (TokenHandler tokenHandler)
335
368
  {
336
369
  bytes memory data = _store.getData(toComponentKey(componentNftId));
337
-
338
370
  if (data.length > 0) {
339
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
340
- return address(info.tokenHandler);
371
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
341
372
  }
342
373
  }
343
374
 
375
+
344
376
  function getBundleInfo(NftId bundleNftId)
345
377
  public
346
378
  view
@@ -408,6 +440,17 @@ contract InstanceReader {
408
440
  }
409
441
  }
410
442
 
443
+ function getFeeInfo(NftId productNftId)
444
+ public
445
+ view
446
+ returns (IComponents.FeeInfo memory feeInfo)
447
+ {
448
+ bytes memory data = _store.getData(toFeeKey(productNftId));
449
+ if (data.length > 0) {
450
+ return abi.decode(data, (IComponents.FeeInfo));
451
+ }
452
+ }
453
+
411
454
  function getPoolInfo(NftId poolNftId)
412
455
  public
413
456
  view
@@ -518,7 +561,7 @@ contract InstanceReader {
518
561
  }
519
562
 
520
563
 
521
- function isTargetLocked(address target) public view returns (bool) {
564
+ function isLocked(address target) public view returns (bool) {
522
565
  return _instance.getInstanceAdmin().isTargetLocked(target);
523
566
  }
524
567
 
@@ -554,11 +597,12 @@ contract InstanceReader {
554
597
  return productNftId.toKey32(PRODUCT());
555
598
  }
556
599
 
557
- // low level function
558
- function getInstance() external view returns (IInstance instance) {
559
- return _instance;
600
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
601
+ return productNftId.toKey32(FEE());
560
602
  }
561
603
 
604
+ // low level function
605
+
562
606
  function getInstanceStore() external view returns (IKeyValueStore store) {
563
607
  return _store;
564
608
  }
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
 
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
8
  import {Amount} from "../type/Amount.sol";
8
9
  import {BundleSet} from "./BundleSet.sol";
@@ -80,6 +81,7 @@ contract InstanceService is
80
81
  _;
81
82
  }
82
83
 
84
+
83
85
  // TODO check component - service - instance version match
84
86
  modifier onlyComponent() {
85
87
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
@@ -90,6 +92,7 @@ contract InstanceService is
90
92
 
91
93
  function createInstance()
92
94
  external
95
+ restricted()
93
96
  returns (
94
97
  IInstance instance,
95
98
  NftId instanceNftId
@@ -113,7 +116,11 @@ contract InstanceService is
113
116
  TargetManagerLib.getDefaultRewardRate());
114
117
 
115
118
  // MUST be set after instance is set up and registered
116
- instanceAdmin.initializeInstanceAuthorization(address(instance));
119
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
120
+ VersionPart release = AccessManagerCloneable(authority()).getRelease();
121
+ instanceAdmin.completeSetup(
122
+ address(instance),
123
+ address(instanceAuthorization));
117
124
 
118
125
  emit LogInstanceCloned(
119
126
  instanceNftId,
@@ -124,6 +131,7 @@ contract InstanceService is
124
131
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
125
132
  external
126
133
  virtual
134
+ restricted()
127
135
  onlyInstance()
128
136
  {
129
137
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -136,6 +144,7 @@ contract InstanceService is
136
144
  function setStakingRewardRate(UFixed rewardRate)
137
145
  external
138
146
  virtual
147
+ restricted()
139
148
  onlyInstance()
140
149
  {
141
150
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -148,6 +157,7 @@ contract InstanceService is
148
157
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
149
158
  external
150
159
  virtual
160
+ restricted()
151
161
  onlyInstance()
152
162
  {
153
163
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -161,6 +171,7 @@ contract InstanceService is
161
171
  function withdrawStakingRewardReserves(Amount dipAmount)
162
172
  external
163
173
  virtual
174
+ restricted()
164
175
  onlyInstance()
165
176
  returns (Amount newBalance)
166
177
  {
@@ -170,14 +181,26 @@ contract InstanceService is
170
181
  dipAmount);
171
182
  }
172
183
 
173
- function getMasterInstanceReader() external view returns (address) {
174
- return _masterInstanceReader;
184
+ function upgradeInstanceReader(NftId instanceNftId)
185
+ external
186
+ nonReentrant()
187
+ restricted()
188
+ onlyInstanceOwner(instanceNftId)
189
+ onlyNftOfType(instanceNftId, INSTANCE())
190
+ {
191
+ IRegistry registry = getRegistry();
192
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
193
+ Instance instance = Instance(instanceInfo.objectAddress);
194
+
195
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
+ instance.setInstanceReader(upgradedInstanceReaderClone);
175
198
  }
176
199
 
177
200
  function setAndRegisterMasterInstance(address instanceAddress)
178
- external
179
- onlyOwner
180
- returns(NftId masterInstanceNftId)
201
+ external
202
+ onlyOwner()
203
+ returns(NftId masterInstanceNftId)
181
204
  {
182
205
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
183
206
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
@@ -209,8 +232,8 @@ contract InstanceService is
209
232
  if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
210
233
  if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
211
234
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
212
- if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
213
- if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
235
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
236
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
214
237
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
215
238
 
216
239
  _masterAccessManager = accessManagerAddress;
@@ -226,7 +249,10 @@ contract InstanceService is
226
249
  masterInstanceNftId = info.nftId;
227
250
  }
228
251
 
229
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
252
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
253
+ external
254
+ onlyOwner
255
+ {
230
256
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
231
257
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
232
258
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -237,19 +263,8 @@ contract InstanceService is
237
263
  _masterInstanceReader = instanceReaderAddress;
238
264
  }
239
265
 
240
- function upgradeInstanceReader(NftId instanceNftId)
241
- external
242
- nonReentrant()
243
- onlyInstanceOwner(instanceNftId)
244
- onlyNftOfType(instanceNftId, INSTANCE())
245
- {
246
- IRegistry registry = getRegistry();
247
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
248
- Instance instance = Instance(instanceInfo.objectAddress);
249
-
250
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
251
- upgradedInstanceReaderClone.initializeWithInstance(address(instance));
252
- instance.setInstanceReader(upgradedInstanceReaderClone);
266
+ function getMasterInstanceReader() external view returns (address) {
267
+ return _masterInstanceReader;
253
268
  }
254
269
 
255
270
  /// @dev create new cloned instance admin
@@ -260,19 +275,16 @@ contract InstanceService is
260
275
  returns (InstanceAdmin clonedInstanceAdmin)
261
276
  {
262
277
  // start with setting up a new OZ access manager
278
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
263
279
  AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
264
280
  Clones.clone(_masterAccessManager));
265
281
 
266
282
  // set up the instance admin
267
283
  clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
268
- clonedAccessManager.initialize(
269
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
270
-
271
- address authorization = address(
272
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
273
284
  clonedInstanceAdmin.initialize(
274
285
  clonedAccessManager,
275
- authorization);
286
+ getRegistry(),
287
+ getRelease());
276
288
  }
277
289
 
278
290
 
@@ -344,11 +356,11 @@ contract InstanceService is
344
356
  initializer()
345
357
  {
346
358
  (
347
- address registryAddress,
348
- address authority
359
+ address authority,
360
+ address registry
349
361
  ) = abi.decode(data, (address, address));
350
362
 
351
- _initializeService(registryAddress, authority, owner);
363
+ __Service_init(authority, registry, owner);
352
364
 
353
365
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
354
366
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  InstanceService svc = new InstanceService{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),
@@ -7,10 +7,10 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {Key32} from "../type/Key32.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
11
11
  import {RequestId} from "../type/RequestId.sol";
12
12
  import {RiskId} from "../type/RiskId.sol";
13
- import {StateId} from "../type/StateId.sol";
13
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
14
14
  import {ReferralId} from "../type/Referral.sol";
15
15
  import {DistributorType} from "../type/DistributorType.sol";
16
16
  import {PayoutId} from "../type/PayoutId.sol";
@@ -85,6 +85,17 @@ contract InstanceStore is
85
85
  _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
86
  }
87
87
 
88
+
89
+ //--- Fee -----------------------------------------------------------//
90
+ function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
91
+ _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
92
+ }
93
+
94
+ // Fee only has one state, so no change change possible
95
+ function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
96
+ _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
97
+ }
98
+
88
99
  //--- Pool --------------------------------------------------------------//
89
100
 
90
101
  function createPool(
@@ -1,18 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IPolicy} from "../instance/module/IPolicy.sol";
5
4
  import {Key32} from "../type/Key32.sol";
6
5
  import {LibNftIdSet} from "../type/NftIdSet.sol";
7
6
  import {NftId} from "../type/NftId.sol";
8
- import {RiskIdLib, RiskId} from "../type/RiskId.sol";
9
-
10
7
  import {ObjectSet} from "./base/ObjectSet.sol";
8
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
9
+ import {RiskIdLib, RiskId} from "../type/RiskId.sol";
11
10
 
12
- contract RiskSet is
11
+ /// @dev RiskSet manages the risks and its active policies per product.
12
+ contract RiskSet is
13
13
  ObjectSet
14
14
  {
15
- using LibNftIdSet for LibNftIdSet.Set;
16
15
 
17
16
  event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
18
17
  event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
@@ -36,7 +35,7 @@ contract RiskSet is
36
35
  revert ErrorRiskSetRiskLocked(riskId, policyNftId);
37
36
  }
38
37
 
39
- _activePolicies[riskId].add(policyNftId);
38
+ LibNftIdSet.add(_activePolicies[riskId], policyNftId);
40
39
  emit LogRiskSetPolicyLinked(riskId, policyNftId);
41
40
  }
42
41
 
@@ -48,14 +47,14 @@ contract RiskSet is
48
47
  revert ErrorRiskSetRiskUnknown(riskId);
49
48
  }
50
49
 
51
- _activePolicies[riskId].remove(policyNftId);
50
+ LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
52
51
  emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
53
52
  }
54
53
 
55
54
  /// @dev add a new risk to a product registered with this instance
56
55
  // the corresponding product is fetched via instance reader
57
56
  function add(RiskId riskId) external restricted() {
58
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
57
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
59
58
 
60
59
  // ensure product is registered with instance
61
60
  if(productNftId.eqz()) {
@@ -68,14 +67,14 @@ contract RiskSet is
68
67
 
69
68
  /// @dev Applications linked to active risks may be underwritten
70
69
  function activate(RiskId riskId) external restricted() {
71
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
70
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
72
71
  _activate(productNftId, riskId.toKey32());
73
72
  emit LogRiskSetRiskActive(productNftId, riskId);
74
73
  }
75
74
 
76
75
  /// @dev Applications linked to paused/archived risks may not be underwritten
77
76
  function pause(RiskId riskId) external restricted() {
78
- NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
77
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
79
78
  _deactivate(productNftId, riskId.toKey32());
80
79
  emit LogRiskSetRiskPaused(productNftId, riskId);
81
80
  }
@@ -110,10 +109,10 @@ contract RiskSet is
110
109
  }
111
110
 
112
111
  function linkedPolicies(RiskId riskId) external view returns(uint256) {
113
- return _activePolicies[riskId].size();
112
+ return LibNftIdSet.size(_activePolicies[riskId]);
114
113
  }
115
114
 
116
115
  function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
117
- return _activePolicies[riskId].getElementAt(idx);
116
+ return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
118
117
  }
119
118
  }
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL, FEE} from "../../type/ObjectType.sol";
7
7
  import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
9
9
 
@@ -65,6 +65,7 @@ contract ObjectLifecycle is
65
65
 
66
66
  function _setupClaimLifecycle() private {
67
67
  setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
68
69
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
69
70
  setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
70
71
  setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
@@ -72,8 +73,8 @@ contract ObjectLifecycle is
72
73
 
73
74
  function _setupPayoutLifecycle() private {
74
75
  setInitialState(PAYOUT(), EXPECTED());
75
- // TODO: add state cancelled
76
76
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
77
78
  }
78
79
 
79
80
  function _setupRiskLifecycle() private {
@@ -99,6 +100,7 @@ contract ObjectLifecycle is
99
100
  // dummy lifecycle only
100
101
  function _setUpProductLifecycle() private {
101
102
  setInitialState(PRODUCT(), ACTIVE());
103
+ setInitialState(FEE(), ACTIVE());
102
104
  }
103
105
 
104
106
  // dummy lifecycles only
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
6
- import {IInstance} from "../IInstance.sol";
7
6
  import {LibKey32Set} from "../../type/Key32Set.sol";
8
7
  import {NftId} from "../../type/NftId.sol";
9
8
  import {Key32} from "../../type/Key32.sol";
@@ -19,21 +18,21 @@ contract ObjectSet is
19
18
 
20
19
  mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
21
20
  mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
22
- IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
21
+ address internal _instanceAddress;
23
22
 
24
23
  /// @dev This initializer needs to be called from the instance itself.
25
- function initialize()
24
+ function initialize(address authority, address registry)
26
25
  external
27
26
  initializer()
28
27
  {
29
- _instance = IInstance(msg.sender);
30
- __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
28
+ _instanceAddress = msg.sender;
29
+ __Cloneable_init(authority, registry);
31
30
 
32
- emit LogObjectSetInitialized(address(_instance));
31
+ emit LogObjectSetInitialized(address(_instanceAddress));
33
32
  }
34
33
 
35
- function getInstance() external view returns (IInstance) {
36
- return _instance;
34
+ function getInstanceAddress() external view returns (address) {
35
+ return _instanceAddress;
37
36
  }
38
37
 
39
38
  function _add(NftId componentNftId, Key32 key) internal {
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../module/IBundle.sol";
5
+ import {IInstance} from "../IInstance.sol";
6
+ import {IRisk} from "../module/IRisk.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+
10
+
11
+ library ObjectSetHelperLib {
12
+
13
+ function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
14
+
15
+ return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
16
+ }
17
+
18
+ function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
19
+ return getRiskInfo(instanceAddress, riskId).productNftId;
20
+ }
21
+
22
+ function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
23
+ return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
24
+ }
25
+
26
+ function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
27
+ return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
28
+ }
29
+
30
+ }
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
6
6
  import {Amount} from "../../type/Amount.sol";
7
7
  import {Fee} from "../../type/Fee.sol";
8
8
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
9
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
10
  import {UFixed} from "../../type/UFixed.sol";
12
11
 
@@ -28,6 +27,9 @@ interface IComponents {
28
27
  NftId poolNftId; // mandatory
29
28
  NftId distributionNftId; // 0..1 (optional)
30
29
  NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
31
33
  Fee productFee; // product fee on net premium
32
34
  Fee processingFee; // product fee on payout amounts
33
35
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -37,7 +39,6 @@ interface IComponents {
37
39
  Fee performanceFee; // pool fee on profits from capital investors
38
40
  }
39
41
 
40
-
41
42
  struct PoolInfo {
42
43
  Amount maxBalanceAmount; // max balance amount allowed for pool
43
44
  bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers