@etherisc/gif-next 0.0.2-f63e99e-607 → 0.0.2-f677999-878

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 (745) hide show
  1. package/README.md +146 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +571 -523
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1539 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1030 -0
  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 +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1523 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +559 -559
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +440 -161
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +409 -3004
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1612 -561
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +495 -361
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +355 -103
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3738 -0
  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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  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 +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +451 -322
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +287 -251
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +178 -185
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +628 -171
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +391 -201
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -202
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +355 -323
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -130
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +182 -207
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +353 -167
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  356. package/contracts/accounting/AccountingService.sol +262 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +689 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  361. package/contracts/authorization/Authorization.sol +337 -0
  362. package/contracts/authorization/IAccess.sol +49 -0
  363. package/contracts/authorization/IAccessAdmin.sol +143 -0
  364. package/contracts/authorization/IAuthorization.sol +74 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  367. package/contracts/distribution/BasicDistribution.sol +141 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  369. package/contracts/distribution/Distribution.sol +289 -0
  370. package/contracts/distribution/DistributionService.sol +380 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +52 -0
  373. package/contracts/distribution/IDistributionService.sol +103 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +90 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +437 -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 +85 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +56 -25
  389. package/contracts/instance/IInstanceService.sol +59 -17
  390. package/contracts/instance/Instance.sol +172 -368
  391. package/contracts/instance/InstanceAdmin.sol +437 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  393. package/contracts/instance/InstanceReader.sol +409 -78
  394. package/contracts/instance/InstanceService.sol +348 -126
  395. package/contracts/instance/InstanceServiceManager.sol +14 -31
  396. package/contracts/instance/InstanceStore.sol +298 -0
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +123 -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 +8 -8
  405. package/contracts/instance/module/IComponents.sol +51 -0
  406. package/contracts/instance/module/IDistribution.sol +11 -6
  407. package/contracts/instance/module/IPolicy.sol +59 -19
  408. package/contracts/instance/module/IRisk.sol +4 -1
  409. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +47 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  412. package/contracts/oracle/IOracle.sol +36 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +156 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +175 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  420. package/contracts/pool/BundleService.sol +395 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/pool/IBundleService.sol +115 -0
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +165 -0
  425. package/contracts/pool/Pool.sol +345 -0
  426. package/contracts/pool/PoolLib.sol +216 -0
  427. package/contracts/pool/PoolService.sol +757 -0
  428. package/contracts/pool/PoolServiceManager.sol +39 -0
  429. package/contracts/product/ApplicationService.sol +259 -0
  430. package/contracts/product/ApplicationServiceManager.sol +38 -0
  431. package/contracts/product/BasicProduct.sol +51 -0
  432. package/contracts/product/BasicProductAuthorization.sol +56 -0
  433. package/contracts/product/ClaimService.sol +632 -0
  434. package/contracts/product/ClaimServiceManager.sol +38 -0
  435. package/contracts/product/IApplicationService.sol +66 -0
  436. package/contracts/product/IClaimService.sol +135 -0
  437. package/contracts/product/IPolicyService.sol +95 -0
  438. package/contracts/product/IPricingService.sol +39 -0
  439. package/contracts/product/IProductComponent.sol +62 -0
  440. package/contracts/product/IRiskService.sol +30 -0
  441. package/contracts/product/PolicyService.sol +682 -0
  442. package/contracts/product/PolicyServiceLib.sol +65 -0
  443. package/contracts/product/PolicyServiceManager.sol +39 -0
  444. package/contracts/product/PricingService.sol +304 -0
  445. package/contracts/product/PricingServiceManager.sol +39 -0
  446. package/contracts/product/Product.sol +469 -0
  447. package/contracts/product/RiskService.sol +144 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +82 -35
  450. package/contracts/registry/IRegistry.sol +122 -50
  451. package/contracts/registry/IRegistryService.sol +45 -16
  452. package/contracts/registry/IRelease.sol +26 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -1
  454. package/contracts/registry/Registry.sol +545 -304
  455. package/contracts/registry/RegistryAdmin.sol +354 -0
  456. package/contracts/registry/RegistryService.sol +126 -284
  457. package/contracts/registry/RegistryServiceManager.sol +26 -53
  458. package/contracts/registry/ReleaseAdmin.sol +245 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +511 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  462. package/contracts/registry/TokenRegistry.sol +261 -59
  463. package/contracts/shared/Component.sol +227 -0
  464. package/contracts/shared/ComponentService.sol +692 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  467. package/contracts/shared/ContractLib.sol +253 -0
  468. package/contracts/shared/IComponent.sol +61 -0
  469. package/contracts/shared/IComponentService.sol +112 -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 +15 -12
  474. package/contracts/shared/IPolicyHolder.sol +35 -0
  475. package/contracts/shared/IRegisterable.sol +25 -5
  476. package/contracts/shared/IRegistryLinked.sol +11 -0
  477. package/contracts/shared/IService.sol +13 -5
  478. package/contracts/shared/InitializableERC165.sol +27 -0
  479. package/contracts/shared/InstanceLinkedComponent.sol +197 -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 +75 -84
  484. package/contracts/shared/PolicyHolder.sol +62 -0
  485. package/contracts/shared/Registerable.sol +57 -38
  486. package/contracts/shared/RegistryLinked.sol +38 -0
  487. package/contracts/shared/Service.sol +44 -33
  488. package/contracts/shared/TokenHandler.sol +326 -12
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +165 -0
  491. package/contracts/staking/IStakingService.sol +165 -0
  492. package/contracts/staking/StakeManagerLib.sol +224 -0
  493. package/contracts/staking/Staking.sol +526 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +52 -0
  496. package/contracts/staking/StakingReader.sol +190 -0
  497. package/contracts/staking/StakingService.sol +430 -0
  498. package/contracts/staking/StakingServiceManager.sol +45 -0
  499. package/contracts/staking/StakingStore.sol +605 -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 +27 -3
  504. package/contracts/type/ClaimId.sol +80 -0
  505. package/contracts/{types → type}/DistributorType.sol +2 -2
  506. package/contracts/{types → type}/Fee.sol +33 -23
  507. package/contracts/{types → type}/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/{types → type}/NftId.sol +28 -15
  510. package/contracts/type/NftIdSet.sol +62 -0
  511. package/contracts/type/ObjectType.sol +303 -0
  512. package/contracts/type/PayoutId.sol +82 -0
  513. package/contracts/{types → type}/Referral.sol +6 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +75 -0
  516. package/contracts/type/RoleId.sol +182 -0
  517. package/contracts/type/Seconds.sol +101 -0
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/{types → type}/StateId.sol +48 -4
  520. package/contracts/type/String.sol +53 -0
  521. package/contracts/{types → type}/Timestamp.sol +33 -19
  522. package/contracts/{types → type}/UFixed.sol +41 -121
  523. package/contracts/{types → type}/Version.sol +20 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  525. package/contracts/upgradeability/ProxyManager.sol +232 -0
  526. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  527. package/contracts/upgradeability/Versionable.sol +59 -0
  528. package/package.json +12 -8
  529. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  531. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  532. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  533. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  541. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  542. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  543. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  544. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  551. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  553. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  555. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  557. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  559. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  561. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  563. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  568. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  570. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  574. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  576. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  578. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  580. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  582. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  584. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  585. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  586. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  587. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  588. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  590. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  591. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  593. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  597. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  599. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  601. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  605. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  607. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  609. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  615. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  617. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  618. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  619. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  620. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  621. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  622. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  623. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  624. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  625. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  626. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  627. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  628. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  629. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  630. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  631. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  632. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  633. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  634. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  635. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  636. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  637. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  638. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  639. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  640. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  641. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  643. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  645. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  646. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  647. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  648. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  649. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  651. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  653. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  655. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  657. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  659. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  661. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  662. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  663. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  665. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  667. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  669. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  671. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  673. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  675. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  677. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  679. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  681. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  683. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  685. package/contracts/components/BaseComponent.sol +0 -91
  686. package/contracts/components/Distribution.sol +0 -160
  687. package/contracts/components/IBaseComponent.sol +0 -25
  688. package/contracts/components/IDistributionComponent.sol +0 -44
  689. package/contracts/components/IPoolComponent.sol +0 -62
  690. package/contracts/components/IProductComponent.sol +0 -35
  691. package/contracts/components/Pool.sol +0 -243
  692. package/contracts/components/Product.sol +0 -297
  693. package/contracts/experiment/cloning/Cloner.sol +0 -47
  694. package/contracts/experiment/errors/Require.sol +0 -38
  695. package/contracts/experiment/errors/Revert.sol +0 -44
  696. package/contracts/experiment/inheritance/A.sol +0 -53
  697. package/contracts/experiment/inheritance/B.sol +0 -28
  698. package/contracts/experiment/inheritance/C.sol +0 -34
  699. package/contracts/experiment/inheritance/IA.sol +0 -13
  700. package/contracts/experiment/inheritance/IB.sol +0 -10
  701. package/contracts/experiment/inheritance/IC.sol +0 -12
  702. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  703. package/contracts/experiment/statemachine/ISM.sol +0 -25
  704. package/contracts/experiment/statemachine/SM.sol +0 -57
  705. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  706. package/contracts/experiment/types/TypeA.sol +0 -47
  707. package/contracts/experiment/types/TypeB.sol +0 -29
  708. package/contracts/instance/AccessManagedSimple.sol +0 -115
  709. package/contracts/instance/AccessManagerSimple.sol +0 -692
  710. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  711. package/contracts/instance/InstanceAccessManager.sol +0 -288
  712. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  713. package/contracts/instance/base/IInstanceBase.sol +0 -23
  714. package/contracts/instance/base/KeyValueStore.sol +0 -172
  715. package/contracts/instance/base/Lifecycle.sol +0 -100
  716. package/contracts/instance/module/IAccess.sol +0 -38
  717. package/contracts/instance/module/ISetup.sol +0 -44
  718. package/contracts/instance/module/ITreasury.sol +0 -23
  719. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  720. package/contracts/instance/service/DistributionService.sol +0 -102
  721. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  722. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  723. package/contracts/instance/service/IDistributionService.sol +0 -12
  724. package/contracts/instance/service/IPoolService.sol +0 -37
  725. package/contracts/instance/service/IProductService.sol +0 -107
  726. package/contracts/instance/service/PoolService.sol +0 -208
  727. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  728. package/contracts/shared/ContractDeployerLib.sol +0 -72
  729. package/contracts/shared/ERC165.sol +0 -25
  730. package/contracts/shared/ProxyManager.sol +0 -94
  731. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  732. package/contracts/shared/Versionable.sol +0 -147
  733. package/contracts/test/TestFee.sol +0 -25
  734. package/contracts/test/TestRegisterable.sol +0 -18
  735. package/contracts/test/TestRoleId.sol +0 -14
  736. package/contracts/test/TestService.sol +0 -24
  737. package/contracts/test/TestToken.sol +0 -26
  738. package/contracts/test/TestVersion.sol +0 -44
  739. package/contracts/test/TestVersionable.sol +0 -17
  740. package/contracts/types/ChainId.sol +0 -38
  741. package/contracts/types/NftIdSet.sol +0 -60
  742. package/contracts/types/NumberId.sol +0 -52
  743. package/contracts/types/ObjectType.sol +0 -152
  744. package/contracts/types/RiskId.sol +0 -43
  745. package/contracts/types/RoleId.sol +0 -89
@@ -3,70 +3,102 @@ 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
-
17
- import {IRegistry} from "../registry/IRegistry.sol";
18
6
  import {IBundle} from "../instance/module/IBundle.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
19
8
  import {IDistribution} from "../instance/module/IDistribution.sol";
20
9
  import {IInstance} from "./IInstance.sol";
21
- import {IKeyValueStore} from "../instance/base/IKeyValueStore.sol";
10
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
11
+ import {IOracle} from "../oracle/IOracle.sol";
22
12
  import {IPolicy} from "../instance/module/IPolicy.sol";
13
+ import {IRegistry} from "../registry/IRegistry.sol";
23
14
  import {IRisk} from "../instance/module/IRisk.sol";
24
- import {ISetup} from "../instance/module/ISetup.sol";
25
- import {ITreasury} from "../instance/module/ITreasury.sol";
26
- import {TimestampLib} from "../types/Timestamp.sol";
15
+ import {TimestampLib} from "../type/Timestamp.sol";
16
+
17
+ import {Amount} from "../type/Amount.sol";
18
+ import {BundleSet} from "./BundleSet.sol";
19
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
20
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
21
+ import {DistributorType} from "../type/DistributorType.sol";
22
+ import {InstanceStore} from "./InstanceStore.sol";
23
+ import {Key32} from "../type/Key32.sol";
24
+ import {NftId} from "../type/NftId.sol";
25
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
26
+ import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
27
+ import {RequestId} from "../type/RequestId.sol";
28
+ import {RiskId} from "../type/RiskId.sol";
29
+ import {RiskSet} from "./RiskSet.sol";
30
+ import {RoleId} from "../type/RoleId.sol";
31
+ import {StateId} from "../type/StateId.sol";
32
+ import {TokenHandler} from "../shared/TokenHandler.sol";
33
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
34
+
27
35
 
28
36
 
29
37
  contract InstanceReader {
30
- bool private _initialized;
38
+
39
+ error ErrorInstanceReaderAlreadyInitialized();
40
+ error ErrorInstanceReaderInstanceAddressZero();
41
+
42
+ bool private _initialized = false;
31
43
 
32
44
  IRegistry internal _registry;
33
- NftId internal _instanceNftId;
34
45
  IInstance internal _instance;
35
- IKeyValueStore internal _store;
36
46
 
37
- constructor(
38
- address registry,
39
- NftId instanceNftId
40
- )
47
+ InstanceStore internal _store;
48
+ BundleSet internal _bundleSet;
49
+ RiskSet internal _riskSet;
50
+
51
+ /// @dev This initializer needs to be called from the instance itself.
52
+ function initialize() public {
53
+ if(_initialized) {
54
+ revert ErrorInstanceReaderAlreadyInitialized();
55
+ }
56
+
57
+ initializeWithInstance(msg.sender);
58
+ }
59
+
60
+ function initializeWithInstance(address instanceAddress)
61
+ public
41
62
  {
42
- initialize(registry, instanceNftId);
63
+ if(_initialized) {
64
+ revert ErrorInstanceReaderAlreadyInitialized();
65
+ }
66
+
67
+ _initialized = true;
68
+ _instance = IInstance(instanceAddress);
69
+ _registry = _instance.getRegistry();
70
+
71
+ _store = _instance.getInstanceStore();
72
+ _bundleSet = _instance.getBundleSet();
73
+ _riskSet = _instance.getRiskSet();
43
74
  }
44
75
 
45
- function initialize(address registry, NftId instanceNftId) public {
46
- require(!_initialized, "ERROR:CRD-000:ALREADY_INITIALIZED");
47
76
 
48
- require(
49
- address(registry) != address(0),
50
- "ERROR:CRD-001:REGISTRY_ZERO");
77
+ // instance level functions
51
78
 
52
- require(
53
- instanceNftId.gtz(),
54
- "ERROR:CRD-002:NFT_ID_ZERO");
79
+ function getRegistry() public view returns (IRegistry registry) {
80
+ return _registry;
81
+ }
55
82
 
56
- _registry = IRegistry(registry);
57
- _instanceNftId = instanceNftId;
58
- IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(_instanceNftId);
83
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
84
+ return _registry.getNftIdForAddress(address(_instance));
85
+ }
59
86
 
60
- require(
61
- instanceInfo.objectType == INSTANCE(),
62
- "ERROR:CRD-003:PARENT_NOT_INSTANCE");
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
63
90
 
64
- _instance = IInstance(instanceInfo.objectAddress);
65
- _store = IKeyValueStore(instanceInfo.objectAddress);
91
+ function components() public view returns (uint256 componentCount) {
92
+ return _instance.getInstanceAdmin().components();
93
+ }
66
94
 
67
- _initialized = true;
95
+ function products() public view returns (uint256 productCount) {
96
+ return _instance.products();
68
97
  }
69
98
 
99
+ function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
100
+ return _instance.getProductNftId(idx);
101
+ }
70
102
 
71
103
  // module specific functions
72
104
 
@@ -81,6 +113,205 @@ contract InstanceReader {
81
113
  }
82
114
  }
83
115
 
116
+ function getPolicyState(NftId policyNftId)
117
+ public
118
+ view
119
+ returns (StateId state)
120
+ {
121
+ return _store.getState(toPolicyKey(policyNftId));
122
+ }
123
+
124
+ function getPremiumInfo(NftId policyNftId)
125
+ public
126
+ view
127
+ returns (IPolicy.PremiumInfo memory info)
128
+ {
129
+ bytes memory data = _store.getData(toPremiumKey(policyNftId));
130
+ if (data.length > 0) {
131
+ return abi.decode(data, (IPolicy.PremiumInfo));
132
+ }
133
+ }
134
+
135
+ function getPremiumInfoState(NftId policyNftId)
136
+ public
137
+ view
138
+ returns (StateId state)
139
+ {
140
+ return _store.getState(toPremiumKey(policyNftId));
141
+ }
142
+
143
+ function bundles(NftId poolNftId)
144
+ public
145
+ view
146
+ returns (uint256 bundleCount)
147
+ {
148
+ return _bundleSet.bundles(poolNftId);
149
+ }
150
+
151
+ function activeBundles(NftId poolNftId)
152
+ public
153
+ view
154
+ returns (uint256 bundleCount)
155
+ {
156
+ return _bundleSet.activeBundles(poolNftId);
157
+ }
158
+
159
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
160
+ public
161
+ view
162
+ returns (NftId bundleNftId)
163
+ {
164
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
165
+ }
166
+
167
+ function getBundleNftId(NftId poolNftId, uint256 idx)
168
+ public
169
+ view
170
+ returns (NftId bundleNftId)
171
+ {
172
+ return _bundleSet.getBundleNftId(poolNftId, idx);
173
+ }
174
+
175
+ function getBundleState(NftId bundleNftId)
176
+ public
177
+ view
178
+ returns (StateId state)
179
+ {
180
+ return _store.getState(toBundleKey(bundleNftId));
181
+ }
182
+
183
+ /// @dev Returns true iff policy is active.
184
+ function policyIsActive(NftId policyNftId)
185
+ public
186
+ view
187
+ returns (bool isCloseable)
188
+ {
189
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
190
+
191
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
192
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
193
+ if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
194
+ if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
195
+
196
+ return true;
197
+ }
198
+
199
+ function claims(NftId policyNftId)
200
+ public
201
+ view
202
+ returns (uint16 claimCount)
203
+ {
204
+ return getPolicyInfo(policyNftId).claimsCount;
205
+ }
206
+
207
+
208
+ function getClaimId(uint idx)
209
+ public
210
+ view
211
+ returns (ClaimId claimId)
212
+ {
213
+ return ClaimIdLib.toClaimId(idx + 1);
214
+ }
215
+
216
+ function getClaimInfo(NftId policyNftId, ClaimId claimId)
217
+ public
218
+ view
219
+ returns (IPolicy.ClaimInfo memory info)
220
+ {
221
+ bytes memory data = _store.getData(claimId.toKey32(policyNftId));
222
+ if (data.length > 0) {
223
+ return abi.decode(data, (IPolicy.ClaimInfo));
224
+ }
225
+ }
226
+
227
+
228
+ function getClaimState(NftId policyNftId, ClaimId claimId)
229
+ public
230
+ view
231
+ returns (StateId state)
232
+ {
233
+ return _store.getState(claimId.toKey32(policyNftId));
234
+ }
235
+
236
+
237
+ function payouts(NftId policyNftId, ClaimId claimId)
238
+ public
239
+ view
240
+ returns (uint24 payoutCount)
241
+ {
242
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
243
+ }
244
+
245
+
246
+ function getPayoutId(ClaimId claimId, uint24 idx)
247
+ public
248
+ view
249
+ returns (PayoutId payoutId)
250
+ {
251
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
252
+ }
253
+
254
+
255
+ function getRemainingClaimableAmount(NftId policyNftId)
256
+ public
257
+ view
258
+ returns (Amount remainingClaimableAmount)
259
+ {
260
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
261
+ return info.sumInsuredAmount - info.claimAmount;
262
+ }
263
+
264
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
265
+ public
266
+ view
267
+ returns (IPolicy.PayoutInfo memory info)
268
+ {
269
+ bytes memory data = _store.getData(payoutId.toKey32(policyNftId));
270
+ if (data.length > 0) {
271
+ return abi.decode(data, (IPolicy.PayoutInfo));
272
+ }
273
+ }
274
+
275
+ function getPayoutState(NftId policyNftId, PayoutId payoutId)
276
+ public
277
+ view
278
+ returns (StateId state)
279
+ {
280
+ return _store.getState(payoutId.toKey32(policyNftId));
281
+ }
282
+
283
+ function risks(NftId productNftId)
284
+ public
285
+ view
286
+ returns (uint256 riskCount)
287
+ {
288
+ return _riskSet.risks(productNftId);
289
+ }
290
+
291
+ function getRiskId(NftId productNftId, uint256 idx)
292
+ public
293
+ view
294
+ returns (RiskId riskId)
295
+ {
296
+ return _riskSet.getRiskId(productNftId, idx);
297
+ }
298
+
299
+ function activeRisks(NftId productNftId)
300
+ public
301
+ view
302
+ returns (uint256 activeRiskCount)
303
+ {
304
+ return _riskSet.activeRisks(productNftId);
305
+ }
306
+
307
+ function getActiveRiskId(NftId productNftId, uint256 idx)
308
+ public
309
+ view
310
+ returns (RiskId riskId)
311
+ {
312
+ return _riskSet.getActiveRiskId(productNftId, idx);
313
+ }
314
+
84
315
  function getRiskInfo(RiskId riskId)
85
316
  public
86
317
  view
@@ -92,30 +323,68 @@ contract InstanceReader {
92
323
  }
93
324
  }
94
325
 
95
- function getTokenHandler(NftId productNftId)
326
+ function getRiskState(RiskId riskId)
327
+ public
328
+ view
329
+ returns (StateId stateId)
330
+ {
331
+ bytes memory data = _store.getData(riskId.toKey32());
332
+ return _store.getState(riskId.toKey32());
333
+ }
334
+
335
+ function policiesForRisk(RiskId riskId)
96
336
  public
97
337
  view
98
- returns (address tokenHandler)
338
+ returns (uint256 linkedPolicies)
99
339
  {
100
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
340
+ return _riskSet.linkedPolicies(riskId);
341
+ }
101
342
 
102
- if (data.length > 0) {
103
- ITreasury.TreasuryInfo memory info = abi.decode(data, (ITreasury.TreasuryInfo));
104
- return address(info.tokenHandler);
343
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
344
+ public
345
+ view
346
+ returns (NftId linkedPolicyNftId)
347
+ {
348
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
349
+ }
350
+
351
+
352
+ function getToken(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (IERC20Metadata token)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.TOKEN();
105
360
  }
106
361
  }
107
362
 
108
- function getTreasuryInfo(NftId productNftId)
109
- public
110
- view
111
- returns (ITreasury.TreasuryInfo memory info)
363
+
364
+ function getWallet(NftId componentNftId)
365
+ public
366
+ view
367
+ returns (address wallet)
368
+ {
369
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
370
+ if (address(tokenHandler) != address(0)) {
371
+ return tokenHandler.getWallet();
372
+ }
373
+ }
374
+
375
+
376
+ function getTokenHandler(NftId componentNftId)
377
+ public
378
+ view
379
+ returns (TokenHandler tokenHandler)
112
380
  {
113
- bytes memory data = _store.getData(toTreasuryKey(productNftId));
381
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
114
382
  if (data.length > 0) {
115
- return abi.decode(data, (ITreasury.TreasuryInfo));
383
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
116
384
  }
117
385
  }
118
-
386
+
387
+
119
388
  function getBundleInfo(NftId bundleNftId)
120
389
  public
121
390
  view
@@ -149,36 +418,59 @@ contract InstanceReader {
149
418
  }
150
419
  }
151
420
 
152
- function getDistributionSetupInfo(NftId distributionNftId)
421
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
422
+ return _store.getBalanceAmount(targetNftId);
423
+ }
424
+
425
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
426
+ return _store.getLockedAmount(targetNftId);
427
+ }
428
+
429
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
430
+ return _store.getFeeAmount(targetNftId);
431
+ }
432
+
433
+ function getComponentInfo(NftId componentNftId)
153
434
  public
154
435
  view
155
- returns (ISetup.DistributionSetupInfo memory info)
436
+ returns (IComponents.ComponentInfo memory info)
156
437
  {
157
- bytes memory data = _store.getData(toDistributionKey(distributionNftId));
438
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
158
439
  if (data.length > 0) {
159
- return abi.decode(data, (ISetup.DistributionSetupInfo));
440
+ return abi.decode(data, (IComponents.ComponentInfo));
160
441
  }
161
442
  }
162
443
 
163
- function getPoolSetupInfo(NftId poolNftId)
444
+ function getProductInfo(NftId productNftId)
164
445
  public
165
446
  view
166
- returns (ISetup.PoolSetupInfo memory info)
447
+ returns (IComponents.ProductInfo memory info)
167
448
  {
168
- bytes memory data = _store.getData(toPoolKey(poolNftId));
449
+ bytes memory data = _store.getData(toProductKey(productNftId));
169
450
  if (data.length > 0) {
170
- return abi.decode(data, (ISetup.PoolSetupInfo));
451
+ return abi.decode(data, (IComponents.ProductInfo));
171
452
  }
172
453
  }
173
454
 
174
- function getProductSetupInfo(NftId productNftId)
455
+ function getFeeInfo(NftId productNftId)
175
456
  public
176
457
  view
177
- returns (ISetup.ProductSetupInfo memory info)
458
+ returns (IComponents.FeeInfo memory feeInfo)
178
459
  {
179
- bytes memory data = _store.getData(toProductKey(productNftId));
460
+ bytes memory data = _store.getData(toFeeKey(productNftId));
461
+ if (data.length > 0) {
462
+ return abi.decode(data, (IComponents.FeeInfo));
463
+ }
464
+ }
465
+
466
+ function getPoolInfo(NftId poolNftId)
467
+ public
468
+ view
469
+ returns (IComponents.PoolInfo memory info)
470
+ {
471
+ bytes memory data = _store.getData(toPoolKey(poolNftId));
180
472
  if (data.length > 0) {
181
- return abi.decode(data, (ISetup.ProductSetupInfo));
473
+ return abi.decode(data, (IComponents.PoolInfo));
182
474
  }
183
475
  }
184
476
 
@@ -193,6 +485,16 @@ contract InstanceReader {
193
485
  }
194
486
  }
195
487
 
488
+ function getRequestInfo(RequestId requestId)
489
+ public
490
+ view
491
+ returns (IOracle.RequestInfo memory requestInfo)
492
+ {
493
+ bytes memory data = _store.getData(requestId.toKey32());
494
+ if (data.length > 0) {
495
+ return abi.decode(data, (IOracle.RequestInfo));
496
+ }
497
+ }
196
498
 
197
499
  function getMetadata(Key32 key)
198
500
  public
@@ -202,6 +504,14 @@ contract InstanceReader {
202
504
  return _store.getMetadata(key);
203
505
  }
204
506
 
507
+ function getState(Key32 key)
508
+ public
509
+ view
510
+ returns (StateId state)
511
+ {
512
+ return _store.getMetadata(key).state;
513
+ }
514
+
205
515
 
206
516
  function toReferralId(
207
517
  NftId distributionNftId,
@@ -253,28 +563,44 @@ contract InstanceReader {
253
563
  }
254
564
 
255
565
 
256
- function toTreasuryKey(NftId productNftId) public pure returns (Key32) {
257
- return productNftId.toKey32(TREASURY());
566
+ function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
567
+ return _instance.getInstanceAdmin().hasRole(account, roleId);
568
+ }
569
+
570
+
571
+ function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
572
+ return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
258
573
  }
259
574
 
260
575
 
576
+ function isLocked(address target) public view returns (bool) {
577
+ return _instance.getInstanceAdmin().isTargetLocked(target);
578
+ }
579
+
261
580
  function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
262
581
  return policyNftId.toKey32(POLICY());
263
582
  }
264
583
 
584
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
585
+ return policyNftId.toKey32(PREMIUM());
586
+ }
265
587
 
266
588
  function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
267
589
  return distributorNftId.toKey32(DISTRIBUTOR());
268
590
  }
269
591
 
270
- function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
271
- return distributionNftId.toKey32(DISTRIBUTION());
272
- }
273
-
274
592
  function toBundleKey(NftId poolNftId) public pure returns (Key32) {
275
593
  return poolNftId.toKey32(BUNDLE());
276
594
  }
277
595
 
596
+ function toComponentKey(NftId componentNftId) public pure returns (Key32) {
597
+ return componentNftId.toKey32(COMPONENT());
598
+ }
599
+
600
+ function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
601
+ return distributionNftId.toKey32(DISTRIBUTION());
602
+ }
603
+
278
604
  function toPoolKey(NftId poolNftId) public pure returns (Key32) {
279
605
  return poolNftId.toKey32(POOL());
280
606
  }
@@ -283,17 +609,22 @@ contract InstanceReader {
283
609
  return productNftId.toKey32(PRODUCT());
284
610
  }
285
611
 
286
- // low level function
287
- function getInstance() external view returns (IInstance instance) {
288
- return _instance;
612
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
613
+ return productNftId.toKey32(FEE());
289
614
  }
290
615
 
616
+ // low level function
617
+
291
618
  function getInstanceStore() external view returns (IKeyValueStore store) {
292
619
  return _store;
293
620
  }
294
621
 
295
- function getInstanceNftId() external view returns (NftId nftId) {
296
- return _instanceNftId;
622
+ function getBundleSet() external view returns (BundleSet bundleSet) {
623
+ return _bundleSet;
624
+ }
625
+
626
+ function getRiskSet() external view returns (RiskSet riskSet) {
627
+ return _riskSet;
297
628
  }
298
629
 
299
630
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
@@ -303,4 +634,4 @@ contract InstanceReader {
303
634
  function toInt(UFixed value) public pure returns (uint256) {
304
635
  return UFixedLib.toInt(value);
305
636
  }
306
- }
637
+ }