@etherisc/gif-next 0.0.2-a25e4b8-781 → 0.0.2-a307d03-692

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 +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 +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +316 -1517
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +387 -198
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +467 -2462
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1940 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1617 -569
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +468 -399
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +376 -92
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → oracle/IOracleComponent.sol/IOracleComponent.json} +273 -280
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +310 -348
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +437 -277
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +347 -388
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IApplicationService.sol/IApplicationService.json} +234 -232
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +297 -231
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +455 -318
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IRiskService.sol/IRiskService.json} +169 -162
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +513 -27
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +282 -220
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +996 -119
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +346 -264
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +362 -78
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -81
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1410 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +808 -0
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +200 -214
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IComponent.sol/IComponent.json} +217 -173
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1066 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +124 -146
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +144 -159
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  356. package/contracts/accounting/AccountingService.sol +262 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +689 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  361. package/contracts/authorization/Authorization.sol +337 -0
  362. package/contracts/authorization/IAccess.sol +49 -0
  363. package/contracts/authorization/IAccessAdmin.sol +143 -0
  364. package/contracts/authorization/IAuthorization.sol +74 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  367. package/contracts/distribution/BasicDistribution.sol +141 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  369. package/contracts/distribution/Distribution.sol +289 -0
  370. package/contracts/distribution/DistributionService.sol +358 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +52 -0
  373. package/contracts/distribution/IDistributionService.sol +101 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +90 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +438 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +51 -46
  389. package/contracts/instance/IInstanceService.sol +54 -22
  390. package/contracts/instance/Instance.sol +188 -185
  391. package/contracts/instance/InstanceAdmin.sol +449 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +216 -0
  393. package/contracts/instance/InstanceReader.sol +408 -64
  394. package/contracts/instance/InstanceService.sol +311 -269
  395. package/contracts/instance/InstanceServiceManager.sol +14 -29
  396. package/contracts/instance/InstanceStore.sol +298 -0
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +123 -0
  399. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  400. package/contracts/instance/base/ObjectCounter.sol +20 -0
  401. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +8 -8
  405. package/contracts/instance/module/IComponents.sol +51 -0
  406. package/contracts/instance/module/IDistribution.sol +8 -5
  407. package/contracts/instance/module/IPolicy.sol +59 -19
  408. package/contracts/instance/module/IRisk.sol +4 -1
  409. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +47 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  412. package/contracts/oracle/IOracle.sol +36 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +156 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +175 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  420. package/contracts/pool/BundleService.sol +395 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/pool/IBundleService.sol +115 -0
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +165 -0
  425. package/contracts/pool/Pool.sol +345 -0
  426. package/contracts/pool/PoolLib.sol +216 -0
  427. package/contracts/pool/PoolService.sol +757 -0
  428. package/contracts/pool/PoolServiceManager.sol +39 -0
  429. package/contracts/product/ApplicationService.sol +259 -0
  430. package/contracts/product/ApplicationServiceManager.sol +38 -0
  431. package/contracts/product/BasicProduct.sol +51 -0
  432. package/contracts/product/BasicProductAuthorization.sol +56 -0
  433. package/contracts/product/ClaimService.sol +632 -0
  434. package/contracts/product/ClaimServiceManager.sol +38 -0
  435. package/contracts/product/IApplicationService.sol +66 -0
  436. package/contracts/product/IClaimService.sol +135 -0
  437. package/contracts/product/IPolicyService.sol +95 -0
  438. package/contracts/product/IPricingService.sol +39 -0
  439. package/contracts/product/IProductComponent.sol +62 -0
  440. package/contracts/product/IRiskService.sol +33 -0
  441. package/contracts/product/PolicyService.sol +682 -0
  442. package/contracts/product/PolicyServiceLib.sol +65 -0
  443. package/contracts/product/PolicyServiceManager.sol +39 -0
  444. package/contracts/product/PricingService.sol +304 -0
  445. package/contracts/product/PricingServiceManager.sol +39 -0
  446. package/contracts/product/Product.sol +478 -0
  447. package/contracts/product/RiskService.sol +145 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +83 -36
  450. package/contracts/registry/IRegistry.sol +98 -30
  451. package/contracts/registry/IRegistryService.sol +39 -34
  452. package/contracts/registry/IRelease.sol +26 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -1
  454. package/contracts/registry/Registry.sol +485 -207
  455. package/contracts/registry/RegistryAdmin.sol +354 -0
  456. package/contracts/registry/RegistryService.sol +120 -191
  457. package/contracts/registry/RegistryServiceManager.sol +24 -33
  458. package/contracts/registry/ReleaseAdmin.sol +245 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +511 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +326 -0
  462. package/contracts/registry/TokenRegistry.sol +263 -62
  463. package/contracts/shared/Component.sol +226 -0
  464. package/contracts/shared/ComponentService.sol +624 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  467. package/contracts/shared/ContractLib.sol +253 -0
  468. package/contracts/shared/IComponent.sol +61 -0
  469. package/contracts/shared/IComponentService.sol +100 -0
  470. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  471. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  472. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  473. package/contracts/shared/INftOwnable.sol +15 -12
  474. package/contracts/shared/IPolicyHolder.sol +35 -0
  475. package/contracts/shared/IRegisterable.sol +25 -3
  476. package/contracts/shared/IRegistryLinked.sol +11 -0
  477. package/contracts/shared/IService.sol +12 -5
  478. package/contracts/shared/InitializableERC165.sol +27 -0
  479. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  480. package/contracts/shared/KeyValueStore.sol +131 -0
  481. package/contracts/shared/Lifecycle.sol +88 -0
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +75 -84
  484. package/contracts/shared/PolicyHolder.sol +62 -0
  485. package/contracts/shared/Registerable.sol +57 -38
  486. package/contracts/shared/RegistryLinked.sol +38 -0
  487. package/contracts/shared/Service.sol +39 -34
  488. package/contracts/shared/TokenHandler.sol +326 -12
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +165 -0
  491. package/contracts/staking/IStakingService.sol +165 -0
  492. package/contracts/staking/StakeManagerLib.sol +224 -0
  493. package/contracts/staking/Staking.sol +526 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +52 -0
  496. package/contracts/staking/StakingReader.sol +190 -0
  497. package/contracts/staking/StakingService.sol +430 -0
  498. package/contracts/staking/StakingServiceManager.sol +45 -0
  499. package/contracts/staking/StakingStore.sol +605 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/{types → type}/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +150 -0
  503. package/contracts/{types → type}/Blocknumber.sol +27 -3
  504. package/contracts/type/ClaimId.sol +80 -0
  505. package/contracts/{types → type}/DistributorType.sol +2 -2
  506. package/contracts/{types → type}/Fee.sol +33 -23
  507. package/contracts/{types → type}/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/{types → type}/NftId.sol +28 -15
  510. package/contracts/{types → type}/NftIdSet.sol +2 -2
  511. package/contracts/type/ObjectType.sol +303 -0
  512. package/contracts/type/PayoutId.sol +82 -0
  513. package/contracts/{types → type}/Referral.sol +6 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +74 -0
  516. package/contracts/type/RoleId.sol +182 -0
  517. package/contracts/type/Seconds.sol +101 -0
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/{types → type}/StateId.sol +48 -4
  520. package/contracts/type/String.sol +53 -0
  521. package/contracts/{types → type}/Timestamp.sol +33 -19
  522. package/contracts/{types → type}/UFixed.sol +41 -121
  523. package/contracts/{types → type}/Version.sol +20 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  525. package/contracts/upgradeability/ProxyManager.sol +232 -0
  526. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  527. package/contracts/upgradeability/Versionable.sol +59 -0
  528. package/package.json +11 -7
  529. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  530. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  531. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -413
  533. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  535. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  537. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  547. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  549. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  551. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  553. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  555. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  557. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  559. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  564. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  566. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  568. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  570. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  572. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  574. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  576. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  578. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  580. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  582. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  583. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  585. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  586. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  587. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  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 -1094
  602. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  604. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -764
  606. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  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 -1219
  615. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  617. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -798
  619. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  621. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -848
  623. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  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 -349
  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 -305
  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 -600
  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 -179
  696. package/contracts/components/Distribution.sol +0 -154
  697. package/contracts/components/IComponent.sol +0 -37
  698. package/contracts/components/IDistributionComponent.sol +0 -44
  699. package/contracts/components/IPoolComponent.sol +0 -66
  700. package/contracts/components/IProductComponent.sol +0 -35
  701. package/contracts/components/Pool.sol +0 -258
  702. package/contracts/components/Product.sol +0 -297
  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 -133
  722. package/contracts/instance/base/IInstanceBase.sol +0 -21
  723. package/contracts/instance/base/KeyValueStore.sol +0 -172
  724. package/contracts/instance/base/Lifecycle.sol +0 -100
  725. package/contracts/instance/module/IAccess.sol +0 -48
  726. package/contracts/instance/module/ISetup.sol +0 -46
  727. package/contracts/instance/module/ITreasury.sol +0 -23
  728. package/contracts/instance/service/BundleService.sol +0 -293
  729. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  730. package/contracts/instance/service/DistributionService.sol +0 -115
  731. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  732. package/contracts/instance/service/IBundleService.sol +0 -44
  733. package/contracts/instance/service/IDistributionService.sol +0 -12
  734. package/contracts/instance/service/IPolicyService.sol +0 -94
  735. package/contracts/instance/service/IPoolService.sol +0 -20
  736. package/contracts/instance/service/IProductService.sol +0 -40
  737. package/contracts/instance/service/PolicyService.sol +0 -538
  738. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  739. package/contracts/instance/service/PoolService.sol +0 -142
  740. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  741. package/contracts/instance/service/ProductService.sol +0 -241
  742. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  743. package/contracts/registry/RegistryAccessManager.sol +0 -216
  744. package/contracts/registry/ReleaseManager.sol +0 -352
  745. package/contracts/shared/ContractDeployerLib.sol +0 -72
  746. package/contracts/shared/ERC165.sol +0 -25
  747. package/contracts/shared/ProxyManager.sol +0 -94
  748. package/contracts/shared/Versionable.sol +0 -147
  749. package/contracts/test/TestFee.sol +0 -25
  750. package/contracts/test/TestRegisterable.sol +0 -18
  751. package/contracts/test/TestRoleId.sol +0 -14
  752. package/contracts/test/TestService.sol +0 -25
  753. package/contracts/test/TestVersion.sol +0 -44
  754. package/contracts/test/TestVersionable.sol +0 -17
  755. package/contracts/test/Usdc.sol +0 -26
  756. package/contracts/types/ChainId.sol +0 -38
  757. package/contracts/types/NumberId.sol +0 -52
  758. package/contracts/types/ObjectType.sol +0 -152
  759. package/contracts/types/RiskId.sol +0 -43
  760. package/contracts/types/RoleId.sol +0 -90
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId, NftIdLib} from "../type/NftId.sol";
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {BUNDLE} from "../type/ObjectType.sol";
8
+
9
+ import {ObjectSet} from "./base/ObjectSet.sol";
10
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
11
+
12
+ contract BundleSet is
13
+ ObjectSet
14
+ {
15
+ using LibNftIdSet for LibNftIdSet.Set;
16
+
17
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+
20
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
24
+
25
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
27
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
28
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
29
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
30
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
31
+
32
+ mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
33
+
34
+ /// @dev links a policy to its bundle
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
36
+
37
+ // ensure bundle is unlocked (in active set) and registered with this instance
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
39
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
40
+ }
41
+
42
+ _activePolicies[bundleNftId].add(policyNftId);
43
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
44
+ }
45
+
46
+
47
+ /// @dev unlinks a policy from its bundle
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
49
+
50
+ // ensure bundle is registered with this instance
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
52
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
53
+ }
54
+
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
57
+ }
58
+
59
+
60
+ /// @dev add a new bundle to a pool registerd with this instance
61
+ // the corresponding pool is fetched via instance reader
62
+ function add(NftId bundleNftId) external restricted() {
63
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
64
+
65
+ // ensure pool is registered with instance
66
+ if(poolNftId.eqz()) {
67
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
68
+ }
69
+
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
71
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
72
+ }
73
+
74
+
75
+ /// @dev unlocked (active) bundles are available to collateralize new policies
76
+ function unlock(NftId bundleNftId) external restricted() {
77
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
79
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
80
+ }
81
+
82
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
83
+ function lock(NftId bundleNftId) external restricted() {
84
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
87
+ }
88
+
89
+
90
+ function checkBundle(NftId productNftId, NftId bundleId)
91
+ public
92
+ view
93
+ returns (bool exists, bool active)
94
+ {
95
+ Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
96
+ exists = _contains(productNftId, bundleKey32);
97
+
98
+ if (exists) {
99
+ active = _isActive(productNftId, bundleKey32);
100
+ }
101
+ }
102
+
103
+ function bundles(NftId poolNftId) external view returns(uint256) {
104
+ return _objects(poolNftId);
105
+ }
106
+
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
+ }
110
+
111
+ function activeBundles(NftId poolNftId) external view returns(uint256) {
112
+ return _activeObjs(poolNftId);
113
+ }
114
+
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
+ }
118
+
119
+ function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
+ return _activePolicies[bundleNftId].size();
121
+ }
122
+
123
+ function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
129
+ }
130
+ }
@@ -1,66 +1,71 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
-
6
- import {NftId} from "../types/NftId.sol";
7
- import {StateId} from "../types/StateId.sol";
8
- import {RiskId} from "../types/RiskId.sol";
9
-
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
-
12
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
13
- import {BundleManager} from "./BundleManager.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
14
8
  import {InstanceReader} from "./InstanceReader.sol";
9
+ import {InstanceStore} from "./InstanceStore.sol";
10
+ import {IRegisterable} from "../shared/IRegisterable.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {RoleId} from "../type/RoleId.sol";
13
+ import {Seconds} from "../type/Seconds.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
15
 
16
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
17
-
18
- import {IBundle} from "./module/IBundle.sol";
19
- import {ISetup} from "./module/ISetup.sol";
20
- import {IRisk} from "./module/IRisk.sol";
21
- import {IPolicy} from "./module/IPolicy.sol";
22
16
 
23
- import {IDistributionService} from "./service/IDistributionService.sol";
24
- import {IPoolService} from "./service/IPoolService.sol";
25
- import {IProductService} from "./service/IProductService.sol";
26
- import {IPolicyService} from "./service/IPolicyService.sol";
27
- import {IBundleService} from "./service/IBundleService.sol";
17
+ interface IInstance is
18
+ IRegisterable
19
+ {
20
+ error ErrorInstanceInstanceAdminZero();
21
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
22
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
28
23
 
24
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
25
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
26
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
29
27
 
28
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
29
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
30
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
30
31
 
32
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
31
33
 
32
- interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
34
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
35
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
33
36
 
34
- function getDistributionService() external view returns (IDistributionService);
35
- function getProductService() external view returns (IProductService);
36
- function getPoolService() external view returns (IPoolService);
37
- function getPolicyService() external view returns (IPolicyService);
38
- function getBundleService() external view returns (IBundleService);
37
+ struct InstanceInfo {
38
+ uint64 requestsCount;
39
+ }
39
40
 
40
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
41
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
42
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
41
+ /// @dev Register a product with the instance.
42
+ function registerProduct(address product) external returns (NftId productNftId);
43
43
 
44
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
45
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
46
- function updatePoolSetupState(NftId poolNftId, StateId newState) external;
44
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
45
+ function grantRole(RoleId roleId, address account) external;
46
+ function revokeRole(RoleId roleId, address account) external;
47
47
 
48
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
49
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
50
- function updateBundleState(NftId bundleNftId, StateId newState) external;
48
+ function createTarget(address target, string memory name) external;
49
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
50
+ function setLocked(address target, bool locked) external;
51
+ function setLockedFromService(address target, bool locked) external;
51
52
 
52
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external;
53
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
54
- function updateProductSetupState(NftId productNftId, StateId newState) external;
53
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
54
+ function setStakingRewardRate(UFixed rewardRate) external;
55
+ function refillStakingRewardReserves(Amount dipAmount) external;
55
56
 
56
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
57
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
58
- function updateRiskState(RiskId riskId, StateId newState) external;
57
+ /// @dev Defunds the staking reward reserves for the specified target.
58
+ /// Permissioned: only the target owner may call this function.
59
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
59
60
 
60
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external;
61
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
62
- function updatePolicyState(NftId policyNftId, StateId newState) external;
61
+ // get products
62
+ function products() external view returns (uint256 productCount);
63
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
63
64
 
65
+ // get supporting contracts
64
66
  function getInstanceReader() external view returns (InstanceReader);
65
- function getBundleManager() external view returns (BundleManager);
67
+ function getBundleSet() external view returns (BundleSet);
68
+ function getRiskSet() external view returns (RiskSet);
69
+ function getInstanceAdmin() external view returns (InstanceAdmin);
70
+ function getInstanceStore() external view returns (InstanceStore);
66
71
  }
@@ -1,40 +1,72 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {ObjectType} from "../types/ObjectType.sol";
6
- import {RoleId} from "../types/RoleId.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IInstance} from "./IInstance.sol";
7
6
  import {IService} from "../shared/IService.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {Seconds} from "../type/Seconds.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {VersionPart} from "../type/Version.sol";
9
12
 
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
- import {IComponent} from "../components/IComponent.sol";
13
+ interface IInstanceService is IService {
12
14
 
13
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
14
- import {Instance} from "./Instance.sol";
15
- import {InstanceReader} from "./InstanceReader.sol";
16
- import {BundleManager} from "./BundleManager.sol";
15
+ // onlyInstance
16
+ error ErrorInstanceServiceNotRegistered(address instance);
17
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
18
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
17
19
 
18
- interface IInstanceService is IService {
20
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
21
+
22
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
23
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
24
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
25
+ error ErrorInstanceServiceMasterRiskSetAlreadySet();
26
+ error ErrorInstanceServiceInstanceAddressZero();
27
+
28
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
29
+ error ErrorInstanceServiceInstanceReaderAddressZero();
30
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
31
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
32
+
33
+ error ErrorInstanceServiceAccessManagerZero();
34
+ error ErrorInstanceServiceInstanceAdminZero();
35
+ error ErrorInstanceServiceInstanceReaderZero();
36
+ error ErrorInstanceServiceBundleSetZero();
37
+ error ErrorInstanceServiceRiskSetZero();
38
+ error ErrorInstanceServiceInstanceStoreZero();
39
+
40
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
41
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
42
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
43
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
45
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
46
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
19
47
 
20
48
  error ErrorInstanceServiceRequestUnauhorized(address caller);
21
- error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
49
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
22
50
  error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
51
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
52
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
23
53
 
24
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
54
+ event LogInstanceCloned(NftId instanceNftId, address instance);
25
55
 
26
- function createInstanceClone()
56
+ function createInstance()
27
57
  external
28
58
  returns (
29
- InstanceAccessManager clonedAccessManager,
30
- Instance clonedInstance,
31
- NftId instanceNftId,
32
- InstanceReader clonedInstanceReader,
33
- BundleManager clonedBundleManager
59
+ IInstance instance,
60
+ NftId instanceNftId
34
61
  );
35
62
 
36
- function hasRole(address account, RoleId role, address instanceAddress) external returns (bool);
37
- function setTargetLocked(string memory targetName, bool locked) external;
63
+ function upgradeInstanceReader(NftId instanceNftId) external;
64
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
38
65
 
39
- }
66
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
67
+ function setStakingRewardRate(UFixed rewardRate) external;
68
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
40
69
 
70
+ /// @dev Defunds the staking reward reserves for the specified target.
71
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
72
+ }