@etherisc/gif-next 0.0.2-e3f4f82-063 → 0.0.2-e3f92e5-870

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