@etherisc/gif-next 0.0.2-bdb6804-509 → 0.0.2-bdbfee9-660

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 (736) hide show
  1. package/README.md +130 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1675 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +368 -129
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2026 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2452 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +651 -97
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +445 -99
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +651 -221
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1977 -620
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +461 -279
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +195 -115
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1962 -855
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +311 -174
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1303 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → pool/IBundleService.sol/IBundleService.json} +373 -327
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1251 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +881 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -482
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1533 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IApplicationService.sol/IApplicationService.json} +191 -201
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +205 -90
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IRiskService.sol/IRiskService.json} +130 -115
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +835 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +494 -29
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +296 -109
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +993 -137
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +371 -250
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +193 -109
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +259 -212
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +571 -763
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +79 -5
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  267. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Service.sol/Service.json +76 -109
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  355. package/contracts/accounting/AccountingService.sol +274 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +47 -0
  358. package/contracts/authorization/AccessAdmin.sol +780 -0
  359. package/contracts/authorization/AccessAdminLib.sol +396 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  361. package/contracts/authorization/Authorization.sol +172 -0
  362. package/contracts/authorization/IAccess.sol +67 -0
  363. package/contracts/authorization/IAccessAdmin.sol +144 -0
  364. package/contracts/authorization/IAuthorization.sol +27 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  367. package/contracts/distribution/BasicDistribution.sol +141 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  369. package/contracts/distribution/Distribution.sol +247 -0
  370. package/contracts/distribution/DistributionService.sol +435 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +45 -0
  373. package/contracts/distribution/IDistributionService.sol +109 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +86 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +433 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +124 -39
  389. package/contracts/instance/IInstanceService.sol +79 -50
  390. package/contracts/instance/Instance.sol +258 -111
  391. package/contracts/instance/InstanceAdmin.sol +383 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  393. package/contracts/instance/InstanceReader.sol +530 -191
  394. package/contracts/instance/InstanceService.sol +403 -211
  395. package/contracts/instance/InstanceServiceManager.sol +14 -29
  396. package/contracts/instance/InstanceStore.sol +174 -95
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +121 -0
  399. package/contracts/instance/base/Cloneable.sol +28 -0
  400. package/contracts/instance/base/ObjectCounter.sol +20 -0
  401. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +9 -11
  405. package/contracts/instance/module/IComponents.sol +44 -23
  406. package/contracts/instance/module/IDistribution.sol +25 -12
  407. package/contracts/instance/module/IPolicy.sol +71 -38
  408. package/contracts/instance/module/IRisk.sol +6 -1
  409. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +45 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  412. package/contracts/oracle/IOracle.sol +41 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +154 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +173 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  420. package/contracts/pool/BundleService.sol +394 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +164 -0
  425. package/contracts/pool/Pool.sol +343 -0
  426. package/contracts/pool/PoolLib.sol +359 -0
  427. package/contracts/pool/PoolService.sol +593 -0
  428. package/contracts/pool/PoolServiceManager.sol +39 -0
  429. package/contracts/product/ApplicationService.sol +299 -0
  430. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  431. package/contracts/product/BasicProduct.sol +49 -0
  432. package/contracts/product/BasicProductAuthorization.sol +63 -0
  433. package/contracts/product/ClaimService.sol +639 -0
  434. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  435. package/contracts/{instance/service → product}/IApplicationService.sol +22 -17
  436. package/contracts/product/IClaimService.sol +135 -0
  437. package/contracts/product/IPolicyService.sol +102 -0
  438. package/contracts/product/IPricingService.sol +40 -0
  439. package/contracts/product/IProductComponent.sol +62 -0
  440. package/contracts/product/IRiskService.sol +33 -0
  441. package/contracts/product/PolicyService.sol +645 -0
  442. package/contracts/product/PolicyServiceLib.sol +139 -0
  443. package/contracts/product/PolicyServiceManager.sol +39 -0
  444. package/contracts/product/PricingService.sol +306 -0
  445. package/contracts/product/PricingServiceManager.sol +39 -0
  446. package/contracts/product/Product.sol +472 -0
  447. package/contracts/product/RiskService.sol +157 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +79 -40
  450. package/contracts/registry/IRegistry.sol +103 -29
  451. package/contracts/registry/IRegistryService.sol +34 -40
  452. package/contracts/registry/IRelease.sol +29 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -2
  454. package/contracts/registry/Registry.sol +465 -196
  455. package/contracts/registry/RegistryAdmin.sol +188 -0
  456. package/contracts/registry/RegistryAuthorization.sol +284 -0
  457. package/contracts/registry/RegistryService.sol +90 -135
  458. package/contracts/registry/RegistryServiceManager.sol +23 -32
  459. package/contracts/registry/ReleaseAdmin.sol +195 -0
  460. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  461. package/contracts/registry/ReleaseRegistry.sol +520 -0
  462. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  463. package/contracts/registry/TokenRegistry.sol +263 -65
  464. package/contracts/shared/Component.sol +210 -0
  465. package/contracts/shared/ComponentService.sol +678 -0
  466. package/contracts/shared/ComponentServiceManager.sol +38 -0
  467. package/contracts/shared/ContractLib.sol +311 -0
  468. package/contracts/shared/IComponent.sol +58 -0
  469. package/contracts/shared/IComponentService.sol +110 -0
  470. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  471. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  472. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  473. package/contracts/shared/INftOwnable.sol +4 -2
  474. package/contracts/shared/IPolicyHolder.sol +23 -14
  475. package/contracts/shared/IRegisterable.sol +22 -1
  476. package/contracts/shared/IRegistryLinked.sol +0 -1
  477. package/contracts/shared/IService.sol +12 -5
  478. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  479. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  480. package/contracts/shared/KeyValueStore.sol +131 -0
  481. package/contracts/shared/Lifecycle.sol +88 -0
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +34 -27
  484. package/contracts/shared/PolicyHolder.sol +23 -41
  485. package/contracts/shared/Registerable.sol +52 -20
  486. package/contracts/shared/RegistryLinked.sol +9 -19
  487. package/contracts/shared/Service.sol +36 -41
  488. package/contracts/shared/TokenHandler.sol +322 -13
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +195 -0
  491. package/contracts/staking/IStakingService.sol +170 -0
  492. package/contracts/staking/Staking.sol +605 -0
  493. package/contracts/staking/StakingLib.sol +281 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +52 -0
  496. package/contracts/staking/StakingReader.sol +199 -0
  497. package/contracts/staking/StakingService.sol +468 -0
  498. package/contracts/staking/StakingServiceManager.sol +45 -0
  499. package/contracts/staking/StakingStore.sol +606 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/{types → type}/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +150 -0
  503. package/contracts/{types → type}/Blocknumber.sol +26 -3
  504. package/contracts/{types → type}/ClaimId.sol +31 -3
  505. package/contracts/{types → type}/Fee.sol +28 -26
  506. package/contracts/{types → type}/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/{types → type}/NftId.sol +21 -16
  509. package/contracts/{types → type}/NftIdSet.sol +2 -2
  510. package/contracts/type/ObjectType.sol +307 -0
  511. package/contracts/type/PayoutId.sol +82 -0
  512. package/contracts/{types → type}/Referral.sol +2 -1
  513. package/contracts/type/RequestId.sol +75 -0
  514. package/contracts/type/RiskId.sol +75 -0
  515. package/contracts/type/RoleId.sol +180 -0
  516. package/contracts/type/Seconds.sol +105 -0
  517. package/contracts/type/Selector.sol +107 -0
  518. package/contracts/{types → type}/StateId.sol +47 -4
  519. package/contracts/type/String.sol +65 -0
  520. package/contracts/{types → type}/Timestamp.sol +20 -6
  521. package/contracts/type/UFixed.sol +262 -0
  522. package/contracts/{types → type}/Version.sol +58 -7
  523. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  524. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  525. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  526. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  527. package/package.json +12 -8
  528. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  529. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  530. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  535. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  536. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  538. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  540. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  543. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  544. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  545. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  547. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  552. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  554. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  556. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  559. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -860
  561. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -641
  563. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1263
  565. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  567. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -849
  569. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  571. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1539
  573. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -769
  575. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  579. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1124
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1269
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  593. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
  595. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
  599. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  600. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  601. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  602. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  603. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  604. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  608. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  609. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  611. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  613. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  614. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  621. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  626. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  628. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  629. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  630. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  632. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  650. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  667. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  669. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  671. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  673. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  675. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  677. package/contracts/components/Component.sol +0 -253
  678. package/contracts/components/Distribution.sol +0 -280
  679. package/contracts/components/IComponent.sol +0 -76
  680. package/contracts/components/IDistributionComponent.sol +0 -71
  681. package/contracts/components/IPoolComponent.sol +0 -113
  682. package/contracts/components/IProductComponent.sol +0 -40
  683. package/contracts/components/Pool.sol +0 -303
  684. package/contracts/components/Product.sol +0 -296
  685. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  686. package/contracts/instance/BundleManager.sol +0 -127
  687. package/contracts/instance/Cloneable.sol +0 -51
  688. package/contracts/instance/InstanceAccessManager.sol +0 -540
  689. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -299
  690. package/contracts/instance/ObjectManager.sol +0 -82
  691. package/contracts/instance/base/ComponentService.sol +0 -147
  692. package/contracts/instance/base/KeyValueStore.sol +0 -180
  693. package/contracts/instance/base/Lifecycle.sol +0 -109
  694. package/contracts/instance/module/IAccess.sol +0 -54
  695. package/contracts/instance/module/ISetup.sol +0 -33
  696. package/contracts/instance/module/ITreasury.sol +0 -23
  697. package/contracts/instance/service/ApplicationService.sol +0 -183
  698. package/contracts/instance/service/BundleService.sol +0 -431
  699. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  700. package/contracts/instance/service/ClaimService.sol +0 -145
  701. package/contracts/instance/service/DistributionService.sol +0 -346
  702. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  703. package/contracts/instance/service/IClaimService.sol +0 -61
  704. package/contracts/instance/service/IDistributionService.sol +0 -85
  705. package/contracts/instance/service/IPolicyService.sol +0 -72
  706. package/contracts/instance/service/IPoolService.sol +0 -99
  707. package/contracts/instance/service/IPricingService.sol +0 -36
  708. package/contracts/instance/service/IProductService.sol +0 -40
  709. package/contracts/instance/service/PolicyService.sol +0 -366
  710. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  711. package/contracts/instance/service/PoolService.sol +0 -303
  712. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  713. package/contracts/instance/service/PricingService.sol +0 -275
  714. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  715. package/contracts/instance/service/ProductService.sol +0 -210
  716. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  717. package/contracts/registry/RegistryAccessManager.sol +0 -216
  718. package/contracts/registry/ReleaseManager.sol +0 -324
  719. package/contracts/shared/ContractDeployerLib.sol +0 -72
  720. package/contracts/test/TestFee.sol +0 -25
  721. package/contracts/test/TestRegisterable.sol +0 -18
  722. package/contracts/test/TestRoleId.sol +0 -14
  723. package/contracts/test/TestService.sol +0 -25
  724. package/contracts/test/TestToken.sol +0 -26
  725. package/contracts/test/TestVersion.sol +0 -44
  726. package/contracts/test/TestVersionable.sol +0 -17
  727. package/contracts/types/Amount.sol +0 -60
  728. package/contracts/types/ChainId.sol +0 -38
  729. package/contracts/types/NumberId.sol +0 -52
  730. package/contracts/types/ObjectType.sol +0 -161
  731. package/contracts/types/PayoutId.sol +0 -54
  732. package/contracts/types/RiskId.sol +0 -43
  733. package/contracts/types/RoleId.sol +0 -97
  734. package/contracts/types/Seconds.sol +0 -54
  735. package/contracts/types/UFixed.sol +0 -326
  736. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -3,208 +3,429 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {DistributorType} from "../types/DistributorType.sol";
7
- import {Fee, FeeLib} from "../types/Fee.sol";
8
- import {Key32} from "../types/Key32.sol";
9
- import {NftId} from "../types/NftId.sol";
10
- import {ObjectType, DISTRIBUTOR, DISTRIBUTION, INSTANCE, PRODUCT, POLICY, POOL, TREASURY, BUNDLE} from "../types/ObjectType.sol";
11
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../types/Referral.sol";
12
- import {Registerable} from "../shared/Registerable.sol";
13
- import {RiskId} from "../types/RiskId.sol";
14
- import {UFixed, MathLib, UFixedLib} from "../types/UFixed.sol";
15
- import {Version} from "../types/Version.sol";
16
- import {StateId} from "../types/StateId.sol";
17
-
18
- import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
19
7
  import {IBundle} from "../instance/module/IBundle.sol";
20
8
  import {IComponents} from "../instance/module/IComponents.sol";
21
9
  import {IDistribution} from "../instance/module/IDistribution.sol";
10
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
22
11
  import {IInstance} from "./IInstance.sol";
23
- import {IKeyValueStore} from "../instance/base/IKeyValueStore.sol";
12
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
13
+ import {IOracle} from "../oracle/IOracle.sol";
24
14
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
25
16
  import {IRisk} from "../instance/module/IRisk.sol";
26
- import {ISetup} from "../instance/module/ISetup.sol";
27
- import {ITreasury} from "../instance/module/ITreasury.sol";
28
- import {TimestampLib} from "../types/Timestamp.sol";
29
17
 
18
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
19
+ import {Amount} from "../type/Amount.sol";
20
+ import {BundleSet} from "./BundleSet.sol";
21
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
22
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
23
+ import {DistributorType} from "../type/DistributorType.sol";
24
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
30
25
  import {InstanceStore} from "./InstanceStore.sol";
26
+ import {Key32} from "../type/Key32.sol";
27
+ import {NftId} from "../type/NftId.sol";
28
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
+ import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
31
+ import {RequestId} from "../type/RequestId.sol";
32
+ import {RiskId} from "../type/RiskId.sol";
33
+ import {RiskSet} from "./RiskSet.sol";
34
+ import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
35
+ import {StateId} from "../type/StateId.sol";
36
+ import {TokenHandler} from "../shared/TokenHandler.sol";
37
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
38
+
39
+
40
+ /// @dev Central reader contract for a specific instance.
41
+ /// Provides reading functions for all instance data and related component data.
42
+ contract InstanceReader {
31
43
 
44
+ error ErrorInstanceReaderAlreadyInitialized();
45
+ error ErrorInstanceReaderInstanceAddressZero();
32
46
 
33
- contract InstanceReader {
34
- bool private _initialized;
47
+ bool private _initialized = false;
35
48
 
49
+ IRegistry internal _registry;
36
50
  IInstance internal _instance;
37
- IKeyValueStore internal _store;
38
-
39
- function initialize(address instance) public {
40
- require(!_initialized, "ERROR:CRD-000:ALREADY_INITIALIZED");
51
+ InstanceAdmin internal _instanceAdmin;
41
52
 
42
- require(
43
- address(instance) != address(0),
44
- "ERROR:CRD-001:INSTANCE_ZERO");
53
+ InstanceStore internal _store;
54
+ BundleSet internal _bundleSet;
55
+ RiskSet internal _riskSet;
56
+ IDistributionService internal _distributionService;
45
57
 
46
- _instance = IInstance(instance);
47
- _store = _instance.getInstanceStore();
58
+ /// @dev This initializer needs to be called from the instance itself.
59
+ function initialize() public {
60
+ if(_initialized) {
61
+ revert ErrorInstanceReaderAlreadyInitialized();
62
+ }
48
63
 
49
- _initialized = true;
64
+ initializeWithInstance(msg.sender);
50
65
  }
51
66
 
52
67
 
53
- // module specific functions
54
-
55
- function getPolicyInfo(NftId policyNftId)
68
+ /// @dev Initializer to upgrade instance reader via instance service
69
+ function initializeWithInstance(address instanceAddress)
56
70
  public
57
- view
58
- returns (IPolicy.PolicyInfo memory info)
59
71
  {
60
- bytes memory data = _store.getData(toPolicyKey(policyNftId));
61
- if (data.length > 0) {
62
- return abi.decode(data, (IPolicy.PolicyInfo));
72
+ if(_initialized) {
73
+ revert ErrorInstanceReaderAlreadyInitialized();
63
74
  }
75
+
76
+ _initialized = true;
77
+ _instance = IInstance(instanceAddress);
78
+ _instanceAdmin = _instance.getInstanceAdmin();
79
+ _registry = _instance.getRegistry();
80
+
81
+ _store = _instance.getInstanceStore();
82
+ _bundleSet = _instance.getBundleSet();
83
+ _riskSet = _instance.getRiskSet();
84
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
64
85
  }
65
86
 
66
- function getPolicyState(NftId policyNftId)
67
- public
68
- view
69
- returns (StateId state)
70
- {
71
- return _store.getState(toPolicyKey(policyNftId));
87
+
88
+ //--- instance functions ---------------------------------------------------------//
89
+
90
+ /// @dev Returns the registry this instance is registered in.
91
+ function getRegistry() public view returns (IRegistry registry) {
92
+ return _registry;
72
93
  }
73
94
 
74
- function getRiskInfo(RiskId riskId)
75
- public
76
- view
77
- returns (IRisk.RiskInfo memory info)
78
- {
79
- bytes memory data = _store.getData(riskId.toKey32());
80
- if (data.length > 0) {
81
- return abi.decode(data, (IRisk.RiskInfo));
82
- }
95
+
96
+ /// @dev Returns the instance NFT ID.
97
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
98
+ return _registry.getNftIdForAddress(address(_instance));
83
99
  }
84
100
 
85
- function getTokenHandler(NftId productNftId)
86
- public
87
- view
88
- returns (address tokenHandler)
89
- {
90
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
91
101
 
92
- if (data.length > 0) {
93
- ITreasury.TreasuryInfo memory info = abi.decode(data, (ITreasury.TreasuryInfo));
94
- return address(info.tokenHandler);
95
- }
102
+ /// @dev Returns the instance contract.
103
+ function getInstance() public view returns (IInstance instance) {
104
+ return _instance;
96
105
  }
97
106
 
98
- function getTreasuryInfo(NftId productNftId)
99
- public
100
- view
101
- returns (ITreasury.TreasuryInfo memory info)
102
- {
103
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
104
- if (data.length > 0) {
105
- return abi.decode(data, (ITreasury.TreasuryInfo));
106
- }
107
+
108
+ //--- component functions ------------------------------------------------------//
109
+
110
+ /// @dev Returns the number of registered components.
111
+ /// Components may be products, distributions, oracles or pools.
112
+ function components() public view returns (uint256 componentCount) {
113
+ return _instanceAdmin.components();
107
114
  }
108
-
109
- function getBundleInfo(NftId bundleNftId)
110
- public
111
- view
112
- returns (IBundle.BundleInfo memory info)
113
- {
114
- bytes memory data = _store.getData(toBundleKey(bundleNftId));
115
- if (data.length > 0) {
116
- return abi.decode(data, (IBundle.BundleInfo));
117
- }
115
+
116
+
117
+ /// @dev Returns the component info for the given component NFT ID.
118
+ function getComponentInfo(NftId componentNftId) public view returns (IComponents.ComponentInfo memory info) {
119
+ (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
120
+ if (success) { return abi.decode(data, (IComponents.ComponentInfo)); }
118
121
  }
119
122
 
120
- function getDistributorTypeInfo(DistributorType distributorType)
121
- public
122
- view
123
- returns (IDistribution.DistributorTypeInfo memory info)
124
- {
125
- bytes memory data = _store.getData(distributorType.toKey32());
126
- if (data.length > 0) {
127
- return abi.decode(data, (IDistribution.DistributorTypeInfo));
128
- }
123
+
124
+ /// @dev Returns the registered token for the given component NFT ID.
125
+ function getToken(NftId componentNftId) public view returns (IERC20Metadata token) {
126
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
127
+ if (address(tokenHandler) != address(0)) { return tokenHandler.TOKEN(); }
129
128
  }
130
129
 
131
- function getDistributorInfo(NftId distributorNftId)
132
- public
133
- view
134
- returns (IDistribution.DistributorInfo memory info)
135
- {
136
- bytes memory data = _store.getData(toDistributorKey(distributorNftId));
137
- if (data.length > 0) {
138
- return abi.decode(data, (IDistribution.DistributorInfo));
139
- }
130
+
131
+ /// @dev Returns the current wallet address for the given component NFT ID.
132
+ /// The wallet address is either the component's own address or any other wallet address specified by the component owner.
133
+ /// The wallet holds the component's funds. Tokens collected by the component are transferred to the wallet and
134
+ /// Tokens distributed from the component are transferred from this wallet.
135
+ function getWallet(NftId componentNftId) public view returns (address wallet) {
136
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
137
+ if (address(tokenHandler) != address(0)) { return tokenHandler.getWallet(); }
140
138
  }
141
139
 
142
- function getDistributionSetupInfo(NftId distributionNftId)
143
- public
144
- view
145
- returns (ISetup.DistributionSetupInfo memory info)
146
- {
147
- bytes memory data = _store.getData(toDistributionKey(distributionNftId));
148
- if (data.length > 0) {
149
- return abi.decode(data, (ISetup.DistributionSetupInfo));
150
- }
140
+
141
+ /// @dev Returns the token handler for the given component NFT ID.
142
+ /// The token handler manages all transfers from/to the component's wallet.
143
+ /// To allow a component to collect funds from an account, it has to create a corresponding allowance from the
144
+ /// account to the address of the component's token handler.
145
+ function getTokenHandler(NftId componentNftId) public view returns (TokenHandler tokenHandler) {
146
+ (bytes memory data, bool success) = _getData(_toComponentKey(componentNftId));
147
+ if (success) { return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler; }
151
148
  }
152
149
 
153
- // TODO consider to replace by component type specific getXyzInfo
154
- function getComponentInfo(NftId poolNftId)
155
- public
156
- view
157
- returns (IComponents.ComponentInfo memory info)
158
- {
159
- bytes memory data = _store.getData(toPoolKey(poolNftId));
160
- if (data.length > 0) {
161
- return abi.decode(data, (IComponents.ComponentInfo));
162
- }
150
+
151
+ /// @dev Returns the current token balance amount for the given component NFT ID.
152
+ /// The balance amount includes the fee amount.
153
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
154
+ return _store.getBalanceAmount(targetNftId);
163
155
  }
164
156
 
165
- function getProductSetupInfo(NftId productNftId)
166
- public
167
- view
168
- returns (ISetup.ProductSetupInfo memory info)
169
- {
170
- bytes memory data = _store.getData(toProductKey(productNftId));
171
- if (data.length > 0) {
172
- return abi.decode(data, (ISetup.ProductSetupInfo));
173
- }
157
+
158
+ /// @dev Returns the current fee amount for the given NFT ID.
159
+ /// The target NFT ID may reference a component, a distributor or a bundle.
160
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
161
+ return _store.getFeeAmount(targetNftId);
174
162
  }
175
163
 
176
- function getReferralInfo(ReferralId referralId)
177
- public
178
- view
179
- returns (IDistribution.ReferralInfo memory info)
180
- {
181
- bytes memory data = _store.getData(referralId.toKey32());
182
- if (data.length > 0) {
183
- return abi.decode(data, (IDistribution.ReferralInfo));
164
+
165
+ /// @dev Returns the currently locked amount for the given NFT ID.
166
+ /// The target NFT ID may reference a pool or a bundle.
167
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
168
+ return _store.getLockedAmount(targetNftId);
169
+ }
170
+
171
+ //--- product functions ------------------------------------------------------//
172
+
173
+ /// @dev Returns the number of registered products.
174
+ function products() public view returns (uint256 productCount) {
175
+ return _instance.products();
176
+ }
177
+
178
+
179
+ /// @dev Returns th product NFT ID for the given index.
180
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
181
+ return _instance.getProductNftId(idx);
182
+ }
183
+
184
+
185
+ /// @dev Returns the product info for the given product NFT ID.
186
+ function getProductInfo(NftId productNftId) public view returns (IComponents.ProductInfo memory info) {
187
+ (bytes memory data, bool success) = _getData(productNftId.toKey32(PRODUCT()));
188
+ if (success) { return abi.decode(data, (IComponents.ProductInfo)); }
189
+ }
190
+
191
+
192
+ /// @dev Returns the current fee settings for the given product NFT ID.
193
+ function getFeeInfo(NftId productNftId) public view returns (IComponents.FeeInfo memory feeInfo) {
194
+ (bytes memory data, bool success) = _getData(productNftId.toKey32(FEE()));
195
+ if (success) { return abi.decode(data, (IComponents.FeeInfo)); }
196
+ }
197
+
198
+ //--- risk functions ---------------------------------------------------------//
199
+
200
+ /// @dev Returns the total number of registered risks for the specified product.
201
+ function risks(NftId productNftId) public view returns (uint256 riskCount) {
202
+ return _riskSet.risks(productNftId);
203
+ }
204
+
205
+
206
+ /// @dev Returns the number of active risks for the specified product.
207
+ function activeRisks(NftId productNftId) public view returns (uint256 activeRiskCount) {
208
+ return _riskSet.activeRisks(productNftId);
209
+ }
210
+
211
+
212
+ /// @dev Returns the risk ID for the given product NFT ID and (registered) risk index.
213
+ function getRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
214
+ return _riskSet.getRiskId(productNftId, idx);
215
+ }
216
+
217
+
218
+ /// @dev Returns the active risk ID for the given product NFT ID and (active) risk index.
219
+ function getActiveRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
220
+ return _riskSet.getActiveRiskId(productNftId, idx);
221
+ }
222
+
223
+
224
+ /// @dev Returns the risk info for the given risk ID.
225
+ function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
226
+ (bytes memory data, bool success) = _getData(riskId.toKey32());
227
+ if (success) { return abi.decode(data, (IRisk.RiskInfo)); }
228
+ }
229
+
230
+
231
+ /// @dev Returns the risk state for the given risk ID.
232
+ function getRiskState(RiskId riskId) public view returns (StateId stateId) {
233
+ return getState(riskId.toKey32());
234
+ }
235
+
236
+
237
+ //--- policy functions -------------------------------------------------------//
238
+
239
+ /// @dev Returns the number of linked policies for the given risk ID.
240
+ function policiesForRisk(RiskId riskId) public view returns (uint256 linkedPolicies) {
241
+ return _riskSet.linkedPolicies(riskId);
242
+ }
243
+
244
+
245
+ /// @dev Returns the linked policy NFT ID for the given risk ID and index.
246
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
247
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
248
+ }
249
+
250
+
251
+ /// @dev Returns the info for the given policy NFT ID.
252
+ function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
253
+ (bytes memory data, bool success) = _getData(_toPolicyKey(policyNftId));
254
+ if (success) { return abi.decode(data, (IPolicy.PolicyInfo)); }
255
+ }
256
+
257
+
258
+ /// @dev Returns the state for the given policy NFT ID.
259
+ function getPolicyState(NftId policyNftId) public view returns (StateId state) {
260
+ return getState(_toPolicyKey(policyNftId));
261
+ }
262
+
263
+
264
+ /// @dev Returns true iff policy is active.
265
+ function policyIsActive(NftId policyNftId) public view returns (bool isCloseable) {
266
+ return PolicyServiceLib.policyIsActive(this, policyNftId);
267
+ }
268
+
269
+ //--- claim functions -------------------------------------------------------//
270
+
271
+ /// @dev Returns the number of claims for the given policy NFT ID.
272
+ function claims(NftId policyNftId) public view returns (uint16 claimCount) {
273
+ return getPolicyInfo(policyNftId).claimsCount;
274
+ }
275
+
276
+
277
+ /// @dev Returns the claim ID for the given policy NFT ID and index.
278
+ function getClaimId(uint256 idx) public pure returns (ClaimId claimId) {
279
+ return ClaimIdLib.toClaimId(idx + 1);
280
+ }
281
+
282
+
283
+ /// @dev Returns the claim info for the given policy NFT ID and claim ID.
284
+ function getClaimInfo(NftId policyNftId, ClaimId claimId) public view returns (IPolicy.ClaimInfo memory info) {
285
+ (bytes memory data, bool success) = _getData(claimId.toKey32(policyNftId));
286
+ if (success) {
287
+ return abi.decode(data, (IPolicy.ClaimInfo));
184
288
  }
185
289
  }
186
290
 
187
291
 
188
- function getMetadata(Key32 key)
189
- public
190
- view
191
- returns (IKeyValueStore.Metadata memory metadata)
192
- {
193
- return _store.getMetadata(key);
292
+ /// @dev Returns the current claim state for the given policy NFT ID and claim ID.
293
+ function getClaimState(NftId policyNftId, ClaimId claimId) public view returns (StateId state) {
294
+ return getState(claimId.toKey32(policyNftId));
194
295
  }
195
296
 
196
297
 
197
- function toReferralId(
198
- NftId distributionNftId,
199
- string memory referralCode
200
- )
201
- public
202
- pure
203
- returns (ReferralId referralId)
204
- {
205
- return ReferralLib.toReferralId(
206
- distributionNftId,
207
- referralCode);
298
+ /// @dev Returns the remaining claimable amount for the given policy NFT ID.
299
+ /// The remaining claimable amount is the difference between the sum insured amount and total approved claim amounts so far.
300
+ function getRemainingClaimableAmount(NftId policyNftId)
301
+ public view returns (Amount remainingClaimableAmount) {
302
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
303
+ return info.sumInsuredAmount - info.claimAmount;
304
+ }
305
+
306
+ //--- payout functions -------------------------------------------------------//
307
+
308
+ /// @dev Returns the number of payouts for the given policy NFT ID and claim ID.
309
+ function payouts(NftId policyNftId, ClaimId claimId) public view returns (uint24 payoutCount) {
310
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
311
+ }
312
+
313
+
314
+ /// @dev Returns the payout ID for the given claim ID and index.
315
+ function getPayoutId(ClaimId claimId, uint24 idx) public pure returns (PayoutId payoutId) {
316
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
317
+ }
318
+
319
+
320
+ /// @dev Returns the payout info for the given policy NFT ID and payout ID.
321
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId) public view returns (IPolicy.PayoutInfo memory info) {
322
+ (bytes memory data, bool success) = _getData(payoutId.toKey32(policyNftId));
323
+ if (success) { return abi.decode(data, (IPolicy.PayoutInfo)); }
324
+ }
325
+
326
+
327
+ /// @dev Returns the payout state for the given policy NFT ID and payout ID.
328
+ function getPayoutState(NftId policyNftId, PayoutId payoutId) public view returns (StateId state) {
329
+ return getState(payoutId.toKey32(policyNftId));
330
+ }
331
+
332
+ //--- premium functions -------------------------------------------------------//
333
+
334
+ /// @dev Returns the premium info for the given policy NFT ID.
335
+ function getPremiumInfo(NftId policyNftId) public view returns (IPolicy.PremiumInfo memory info) {
336
+ (bytes memory data, bool success) = _getData(_toPremiumKey(policyNftId));
337
+ if (success) { return abi.decode(data, (IPolicy.PremiumInfo)); }
338
+ }
339
+
340
+
341
+ /// @dev Returns the premium state for the given policy NFT ID.
342
+ function getPremiumState(NftId policyNftId) public view returns (StateId state) {
343
+ return getState(_toPremiumKey(policyNftId));
344
+ }
345
+
346
+ //--- oracle functions ---------------------------------------------------------//
347
+
348
+ /// @dev Returns the request info for the given oracle request ID.
349
+ function getRequestInfo(RequestId requestId) public view returns (IOracle.RequestInfo memory requestInfo) {
350
+ (bytes memory data, bool success) = _getData(requestId.toKey32());
351
+ if (success) { return abi.decode(data, (IOracle.RequestInfo)); }
352
+ }
353
+
354
+ //--- pool functions -----------------------------------------------------------//
355
+
356
+ /// @dev Returns the pool info for the given pool NFT ID.
357
+ function getPoolInfo(NftId poolNftId) public view returns (IComponents.PoolInfo memory info) {
358
+ (bytes memory data, bool success) = _getData(poolNftId.toKey32(POOL()));
359
+ if (success) { return abi.decode(data, (IComponents.PoolInfo)); }
360
+ }
361
+
362
+ //--- bundle functions -------------------------------------------------------//
363
+
364
+ /// @dev Returns the total number of registered bundles for the given pool.
365
+ function bundles(NftId poolNftId) public view returns (uint256 bundleCount) {
366
+ return _bundleSet.bundles(poolNftId);
367
+ }
368
+
369
+
370
+ /// @dev Returns the number of active bundles for the given pool.
371
+ function activeBundles(NftId poolNftId) public view returns (uint256 bundleCount) {
372
+ return _bundleSet.activeBundles(poolNftId);
373
+ }
374
+
375
+
376
+ /// @dev Returns the bunde NFT ID for the given pool and index.
377
+ function getBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
378
+ return _bundleSet.getBundleNftId(poolNftId, idx);
379
+ }
380
+
381
+
382
+ /// @dev Returns the active bunde NFT ID for the given pool and index.
383
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
384
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
385
+ }
386
+
387
+
388
+ /// @dev Returns the bundle info for the given bundle NFT ID.
389
+ function getBundleInfo(NftId bundleNftId) public view returns (IBundle.BundleInfo memory info) {
390
+ (bytes memory data, bool success) = _getData(_toBundleKey(bundleNftId));
391
+ if (success) { return abi.decode(data, (IBundle.BundleInfo)); }
392
+ }
393
+
394
+
395
+ /// @dev Returns the bundle state for the given bundle NFT ID.
396
+ function getBundleState(NftId bundleNftId) public view returns (StateId state) {
397
+ return getState(_toBundleKey(bundleNftId));
398
+ }
399
+
400
+ //--- distribution functions -------------------------------------------------------//
401
+
402
+ function getDistributorTypeInfo(DistributorType distributorType) public view returns (IDistribution.DistributorTypeInfo memory info) {
403
+ (bytes memory data, bool success) = _getData(distributorType.toKey32());
404
+ if (success) { return abi.decode(data, (IDistribution.DistributorTypeInfo)); }
405
+ }
406
+
407
+
408
+ function getDistributorInfo(NftId distributorNftId) public view returns (IDistribution.DistributorInfo memory info) {
409
+ (bytes memory data, bool success) = _getData(distributorNftId.toKey32(DISTRIBUTOR()));
410
+ if (success) { return abi.decode(data, (IDistribution.DistributorInfo)); }
411
+ }
412
+
413
+
414
+ //--- referral functions -------------------------------------------------------//
415
+
416
+ function toReferralId(NftId distributionNftId, string memory referralCode) public pure returns (ReferralId referralId) {
417
+ return ReferralLib.toReferralId(distributionNftId, referralCode);
418
+ }
419
+
420
+
421
+ function isReferralValid(NftId distributionNftId, ReferralId referralId) external view returns (bool isValid) {
422
+ return _distributionService.referralIsValid(distributionNftId, referralId);
423
+ }
424
+
425
+
426
+ function getReferralInfo(ReferralId referralId) public view returns (IDistribution.ReferralInfo memory info) {
427
+ (bytes memory data, bool success) = _getData(referralId.toKey32());
428
+ if (success) { return abi.decode(data, (IDistribution.ReferralInfo)); }
208
429
  }
209
430
 
210
431
 
@@ -216,78 +437,196 @@ contract InstanceReader {
216
437
  ReferralStatus status
217
438
  )
218
439
  {
219
- IDistribution.ReferralInfo memory info = getReferralInfo(
220
- referralId);
440
+ return IDistributionService(
441
+ _registry.getServiceAddress(
442
+ DISTRIBUTION(),
443
+ _instance.getRelease())).getDiscountPercentage(
444
+ this, // instance reader
445
+ referralId);
446
+ }
221
447
 
222
- if (info.expiryAt.eqz()) {
223
- return (
224
- UFixedLib.zero(),
225
- REFERRAL_ERROR_UNKNOWN());
226
- }
448
+ //--- authorization functions -------------------------------------------------------//
227
449
 
228
- if (info.expiryAt < TimestampLib.blockTimestamp()) {
229
- return (
230
- UFixedLib.zero(),
231
- REFERRAL_ERROR_EXPIRED());
232
- }
450
+ /// @dev Returns the number of defined roles.
451
+ function roles() public view returns (uint256) {
452
+ return _instanceAdmin.roles();
453
+ }
233
454
 
234
- if (info.usedReferrals >= info.maxReferrals) {
235
- return (
236
- UFixedLib.zero(),
237
- REFERRAL_ERROR_EXHAUSTED());
238
- }
239
455
 
240
- return (
241
- info.discountPercentage,
242
- REFERRAL_OK()
243
- );
456
+ /// @dev Returns the role ID for the given index.
457
+ function getRoleId(uint256 idx) public view returns (RoleId roleId) {
458
+ return _instanceAdmin.getRoleId(uint64(idx));
244
459
  }
245
460
 
246
461
 
247
- function toTreasuryKey(NftId productNftId) public pure returns (Key32) {
248
- return productNftId.toKey32(TREASURY());
462
+ /// @dev Returns the role ID for the instance owner role.
463
+ /// This role may be used as a "root" admin role for other custom roles defined for this instance.
464
+ function getInstanceOwnerRole() public pure returns (RoleId roleId) {
465
+ return INSTANCE_OWNER_ROLE();
249
466
  }
250
467
 
251
468
 
252
- function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
253
- return policyNftId.toKey32(POLICY());
469
+ /// @dev Returns the role info for the given role ID.
470
+ function getRoleInfo(RoleId roleId) public view returns (IAccess.RoleInfo memory roleInfo) {
471
+ return _instanceAdmin.getRoleInfo(roleId);
254
472
  }
255
473
 
256
474
 
257
- function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
258
- return distributorNftId.toKey32(DISTRIBUTOR());
475
+ /// @dev Returns true iff the provided role ID is defined for this instance.
476
+ function roleExists(RoleId roleId) public view returns (bool exists) {
477
+ return _instanceAdmin.roleExists(roleId);
259
478
  }
260
479
 
261
- function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
262
- return distributionNftId.toKey32(DISTRIBUTION());
480
+
481
+ /// @dev Returns true iff the provided role ID represents a custom role ID.
482
+ function isRoleCustom(RoleId roleId) public view returns (bool isCustom) {
483
+ return _instanceAdmin.isRoleCustom(roleId);
263
484
  }
264
485
 
265
- function toBundleKey(NftId poolNftId) public pure returns (Key32) {
266
- return poolNftId.toKey32(BUNDLE());
486
+
487
+ /// @dev Returns true iff the provided role ID is active.
488
+ function isRoleActive(RoleId roleId) public view returns (bool isActive) {
489
+ return _instanceAdmin.isRoleActive(roleId);
267
490
  }
268
491
 
269
- function toPoolKey(NftId poolNftId) public pure returns (Key32) {
270
- return poolNftId.toKey32(POOL());
492
+
493
+ /// @dev Returns the number of members (accounts) for the given role ID.
494
+ function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
495
+ return _instanceAdmin.roleMembers(roleId);
271
496
  }
272
497
 
273
- function toProductKey(NftId productNftId) public pure returns (Key32) {
274
- return productNftId.toKey32(PRODUCT());
498
+
499
+ /// @dev Returns the member (account address) for the given role ID and index.
500
+ function getRoleMember(RoleId roleId, uint256 idx) public view returns (address account) {
501
+ return _instanceAdmin.getRoleMember(roleId, idx);
275
502
  }
276
503
 
277
- // low level function
278
- function getInstance() external view returns (IInstance instance) {
279
- return _instance;
504
+
505
+ /// @dev Returns true iff the given account is a member of the specified role ID.
506
+ function isRoleMember(RoleId roleId, address account) public view returns (bool isMember) {
507
+ return _instanceAdmin.isRoleMember(roleId, account);
508
+ }
509
+
510
+
511
+ /// @dev Returns true iff the given account is an admin of the specified role ID.
512
+ /// Role admins may grant and revoke the role to other accounts.
513
+ function isRoleAdmin(RoleId roleId, address account) public view returns (bool isMember) {
514
+ return _instanceAdmin.isRoleAdmin(roleId, account);
515
+ }
516
+
517
+
518
+ /// @dev Returns the number of targets (contracts) defined for this instance.
519
+ function targets() public view returns (uint256 targetCount) {
520
+ return _instanceAdmin.targets();
521
+ }
522
+
523
+
524
+ /// @dev Returns the target address for the given index.
525
+ function getTargetAddress(uint256 idx) public view returns (address target) {
526
+ return _instanceAdmin.getTargetAddress(idx);
527
+ }
528
+
529
+
530
+ /// @dev Returns the target info for the given target address.
531
+ function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory targetInfo) {
532
+ return _instanceAdmin.getTargetInfo(target);
533
+ }
534
+
535
+
536
+ /// @dev Returns true iff the given target is defined for this instance.
537
+ function targetExists(address target) public view returns (bool exists) {
538
+ return _instanceAdmin.targetExists(target);
539
+ }
540
+
541
+
542
+ /// @dev Returns true iff the given target is locked.
543
+ function isLocked(address target) public view returns (bool) {
544
+ return _instanceAdmin.isTargetLocked(target);
545
+ }
546
+
547
+
548
+ /// @dev Returns the number of authorized functions for the given target.
549
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
550
+ return _instanceAdmin.authorizedFunctions(target);
551
+ }
552
+
553
+
554
+ /// @dev Returns the authorized function info for the given target and index.
555
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (IAccess.FunctionInfo memory func, RoleId roleId) {
556
+ return _instanceAdmin.getAuthorizedFunction(target, idx);
557
+ }
558
+
559
+
560
+ /// @dev Returns a function info for the given function signature and function name.
561
+ /// The function signature must not be zero and the function name must not be empty.
562
+ function toFunction(bytes4 signature, string memory name) public view returns (IAccess.FunctionInfo memory) {
563
+ return AccessAdminLib.toFunction(signature, name);
564
+ }
565
+
566
+ //--- low level function ----------------------------------------------------//
567
+
568
+ function getInstanceAdmin() external view returns (InstanceAdmin instanceAdmin) {
569
+ return _instanceAdmin;
280
570
  }
281
571
 
282
572
  function getInstanceStore() external view returns (IKeyValueStore store) {
283
573
  return _store;
284
574
  }
285
575
 
576
+
577
+ function getBundleSet() external view returns (BundleSet bundleSet) {
578
+ return _bundleSet;
579
+ }
580
+
581
+
582
+ function getRiskSet() external view returns (RiskSet riskSet) {
583
+ return _riskSet;
584
+ }
585
+
586
+
587
+ function getMetadata(Key32 key) public view returns (IKeyValueStore.Metadata memory metadata) {
588
+ return _store.getMetadata(key);
589
+ }
590
+
591
+
592
+ function getState(Key32 key) public view returns (StateId state) {
593
+ return _store.getState(key);
594
+ }
595
+
596
+
286
597
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
287
598
  return UFixedLib.toUFixed(value, exp);
288
599
  }
289
600
 
601
+
290
602
  function toInt(UFixed value) public pure returns (uint256) {
291
603
  return UFixedLib.toInt(value);
292
604
  }
293
- }
605
+
606
+ //--- internal functions ----------------------------------------------------//
607
+
608
+ function _getData(Key32 key) internal view returns (bytes memory data, bool success) {
609
+ data = _store.getData(key);
610
+ return (data, data.length > 0);
611
+ }
612
+
613
+
614
+ function _toPolicyKey(NftId policyNftId) internal pure returns (Key32) {
615
+ return policyNftId.toKey32(POLICY());
616
+ }
617
+
618
+
619
+ function _toPremiumKey(NftId policyNftId) internal pure returns (Key32) {
620
+ return policyNftId.toKey32(PREMIUM());
621
+ }
622
+
623
+
624
+ function _toBundleKey(NftId poolNftId) internal pure returns (Key32) {
625
+ return poolNftId.toKey32(BUNDLE());
626
+ }
627
+
628
+
629
+ function _toComponentKey(NftId componentNftId) internal pure returns (Key32) {
630
+ return componentNftId.toKey32(COMPONENT());
631
+ }
632
+ }