@etherisc/gif-next 0.0.2-c9b0563-536 → 0.0.2-c9f64c2-575

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