@etherisc/gif-next 0.0.2-f63e99e-607 → 0.0.2-f689687-279

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 (739) hide show
  1. package/README.md +146 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +571 -523
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -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 +2408 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +559 -559
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +440 -161
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +409 -3004
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1916 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -569
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +495 -361
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +355 -103
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  100. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  105. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +451 -322
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +287 -251
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +921 -0
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +172 -185
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  177. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +628 -171
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +391 -201
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -202
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +355 -323
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -130
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  210. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  211. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  216. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +182 -207
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +353 -167
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  233. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  244. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  334. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  336. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  340. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  344. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  350. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  352. package/contracts/accounting/AccountingService.sol +262 -0
  353. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  354. package/contracts/accounting/IAccountingService.sol +45 -0
  355. package/contracts/authorization/AccessAdmin.sol +689 -0
  356. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  357. package/contracts/authorization/Authorization.sol +337 -0
  358. package/contracts/authorization/IAccess.sol +49 -0
  359. package/contracts/authorization/IAccessAdmin.sol +143 -0
  360. package/contracts/authorization/IAuthorization.sol +74 -0
  361. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  362. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  363. package/contracts/distribution/BasicDistribution.sol +139 -0
  364. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  365. package/contracts/distribution/Distribution.sol +287 -0
  366. package/contracts/distribution/DistributionService.sol +357 -0
  367. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  368. package/contracts/distribution/IDistributionComponent.sol +52 -0
  369. package/contracts/distribution/IDistributionService.sol +100 -0
  370. package/contracts/examples/fire/DamageLevel.sol +59 -0
  371. package/contracts/examples/fire/FirePool.sol +90 -0
  372. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  373. package/contracts/examples/fire/FireProduct.sol +438 -0
  374. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  375. package/contracts/examples/fire/FireUSD.sol +26 -0
  376. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  377. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  379. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  380. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  382. package/contracts/instance/BundleSet.sol +130 -0
  383. package/contracts/instance/IInstance.sol +56 -25
  384. package/contracts/instance/IInstanceService.sol +59 -17
  385. package/contracts/instance/Instance.sol +172 -368
  386. package/contracts/instance/InstanceAdmin.sol +442 -0
  387. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  388. package/contracts/instance/InstanceReader.sol +398 -79
  389. package/contracts/instance/InstanceService.sol +348 -126
  390. package/contracts/instance/InstanceServiceManager.sol +14 -31
  391. package/contracts/instance/InstanceStore.sol +298 -0
  392. package/contracts/instance/RiskSet.sol +118 -0
  393. package/contracts/instance/base/BalanceStore.sol +123 -0
  394. package/contracts/instance/base/Cloneable.sol +28 -0
  395. package/contracts/instance/base/ObjectCounter.sol +20 -0
  396. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  397. package/contracts/instance/base/ObjectSet.sol +77 -0
  398. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  399. package/contracts/instance/module/IBundle.sol +8 -8
  400. package/contracts/instance/module/IComponents.sol +51 -0
  401. package/contracts/instance/module/IDistribution.sol +6 -4
  402. package/contracts/instance/module/IPolicy.sol +59 -19
  403. package/contracts/instance/module/IRisk.sol +4 -1
  404. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  405. package/contracts/oracle/BasicOracle.sol +47 -0
  406. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  407. package/contracts/oracle/IOracle.sol +36 -0
  408. package/contracts/oracle/IOracleComponent.sol +33 -0
  409. package/contracts/oracle/IOracleService.sol +66 -0
  410. package/contracts/oracle/Oracle.sol +156 -0
  411. package/contracts/oracle/OracleService.sol +310 -0
  412. package/contracts/oracle/OracleServiceManager.sol +39 -0
  413. package/contracts/pool/BasicPool.sol +175 -0
  414. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  415. package/contracts/pool/BundleService.sol +395 -0
  416. package/contracts/pool/BundleServiceManager.sol +39 -0
  417. package/contracts/pool/IBundleService.sol +115 -0
  418. package/contracts/pool/IPoolComponent.sol +62 -0
  419. package/contracts/pool/IPoolService.sol +165 -0
  420. package/contracts/pool/Pool.sol +345 -0
  421. package/contracts/pool/PoolLib.sol +216 -0
  422. package/contracts/pool/PoolService.sol +757 -0
  423. package/contracts/pool/PoolServiceManager.sol +39 -0
  424. package/contracts/product/ApplicationService.sol +259 -0
  425. package/contracts/product/ApplicationServiceManager.sol +38 -0
  426. package/contracts/product/BasicProduct.sol +51 -0
  427. package/contracts/product/BasicProductAuthorization.sol +56 -0
  428. package/contracts/product/ClaimService.sol +632 -0
  429. package/contracts/product/ClaimServiceManager.sol +38 -0
  430. package/contracts/product/IApplicationService.sol +66 -0
  431. package/contracts/product/IClaimService.sol +135 -0
  432. package/contracts/product/IPolicyService.sol +91 -0
  433. package/contracts/product/IPricingService.sol +39 -0
  434. package/contracts/product/IProductComponent.sol +62 -0
  435. package/contracts/product/IRiskService.sol +33 -0
  436. package/contracts/product/PolicyService.sol +725 -0
  437. package/contracts/product/PolicyServiceManager.sol +39 -0
  438. package/contracts/product/PricingService.sol +304 -0
  439. package/contracts/product/PricingServiceManager.sol +39 -0
  440. package/contracts/product/Product.sol +463 -0
  441. package/contracts/product/RiskService.sol +145 -0
  442. package/contracts/product/RiskServiceManager.sol +39 -0
  443. package/contracts/registry/ChainNft.sol +82 -35
  444. package/contracts/registry/IRegistry.sol +122 -50
  445. package/contracts/registry/IRegistryService.sol +45 -16
  446. package/contracts/registry/IRelease.sol +26 -0
  447. package/contracts/registry/ITransferInterceptor.sol +1 -1
  448. package/contracts/registry/Registry.sol +545 -304
  449. package/contracts/registry/RegistryAdmin.sol +354 -0
  450. package/contracts/registry/RegistryService.sol +126 -284
  451. package/contracts/registry/RegistryServiceManager.sol +26 -53
  452. package/contracts/registry/ReleaseAdmin.sol +245 -0
  453. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  454. package/contracts/registry/ReleaseRegistry.sol +511 -0
  455. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  456. package/contracts/registry/TokenRegistry.sol +261 -59
  457. package/contracts/shared/Component.sol +227 -0
  458. package/contracts/shared/ComponentService.sol +692 -0
  459. package/contracts/shared/ComponentServiceManager.sol +38 -0
  460. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  461. package/contracts/shared/ContractLib.sol +253 -0
  462. package/contracts/shared/IComponent.sol +61 -0
  463. package/contracts/shared/IComponentService.sol +112 -0
  464. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  465. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  466. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  467. package/contracts/shared/INftOwnable.sol +15 -12
  468. package/contracts/shared/IPolicyHolder.sol +35 -0
  469. package/contracts/shared/IRegisterable.sol +25 -5
  470. package/contracts/shared/IRegistryLinked.sol +11 -0
  471. package/contracts/shared/IService.sol +13 -5
  472. package/contracts/shared/InitializableERC165.sol +27 -0
  473. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  474. package/contracts/shared/KeyValueStore.sol +131 -0
  475. package/contracts/shared/Lifecycle.sol +88 -0
  476. package/contracts/shared/NftIdSet.sol +65 -0
  477. package/contracts/shared/NftOwnable.sol +75 -84
  478. package/contracts/shared/PolicyHolder.sol +62 -0
  479. package/contracts/shared/Registerable.sol +57 -38
  480. package/contracts/shared/RegistryLinked.sol +38 -0
  481. package/contracts/shared/Service.sol +44 -33
  482. package/contracts/shared/TokenHandler.sol +326 -12
  483. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  484. package/contracts/staking/IStaking.sol +165 -0
  485. package/contracts/staking/IStakingService.sol +165 -0
  486. package/contracts/staking/StakeManagerLib.sol +224 -0
  487. package/contracts/staking/Staking.sol +526 -0
  488. package/contracts/staking/StakingLifecycle.sol +23 -0
  489. package/contracts/staking/StakingManager.sol +52 -0
  490. package/contracts/staking/StakingReader.sol +190 -0
  491. package/contracts/staking/StakingService.sol +430 -0
  492. package/contracts/staking/StakingServiceManager.sol +45 -0
  493. package/contracts/staking/StakingStore.sol +605 -0
  494. package/contracts/staking/TargetManagerLib.sol +211 -0
  495. package/contracts/{types → type}/AddressSet.sol +1 -1
  496. package/contracts/type/Amount.sol +150 -0
  497. package/contracts/{types → type}/Blocknumber.sol +27 -3
  498. package/contracts/type/ClaimId.sol +80 -0
  499. package/contracts/{types → type}/DistributorType.sol +2 -2
  500. package/contracts/{types → type}/Fee.sol +33 -23
  501. package/contracts/{types → type}/Key32.sol +2 -2
  502. package/contracts/type/Key32Set.sol +62 -0
  503. package/contracts/{types → type}/NftId.sol +28 -15
  504. package/contracts/type/NftIdSet.sol +62 -0
  505. package/contracts/type/ObjectType.sol +303 -0
  506. package/contracts/type/PayoutId.sol +82 -0
  507. package/contracts/{types → type}/Referral.sol +6 -1
  508. package/contracts/type/RequestId.sol +75 -0
  509. package/contracts/type/RiskId.sol +74 -0
  510. package/contracts/type/RoleId.sol +182 -0
  511. package/contracts/type/Seconds.sol +101 -0
  512. package/contracts/type/Selector.sol +107 -0
  513. package/contracts/{types → type}/StateId.sol +48 -4
  514. package/contracts/type/String.sol +53 -0
  515. package/contracts/{types → type}/Timestamp.sol +33 -19
  516. package/contracts/{types → type}/UFixed.sol +41 -121
  517. package/contracts/{types → type}/Version.sol +20 -7
  518. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  519. package/contracts/upgradeability/ProxyManager.sol +232 -0
  520. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  521. package/contracts/upgradeability/Versionable.sol +59 -0
  522. package/package.json +11 -7
  523. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  524. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  527. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  529. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  531. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  533. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  535. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  536. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  537. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  538. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  539. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  541. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  545. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  547. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  549. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  551. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  553. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  555. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  557. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  559. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  562. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  564. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  566. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  568. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  570. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  572. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  574. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  576. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  578. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  579. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  580. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  581. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  582. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  583. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  584. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  585. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  586. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  587. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  588. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  590. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  591. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  593. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  594. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  595. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  599. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  600. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  601. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  602. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  603. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  609. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  611. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  612. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  613. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  614. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  615. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  616. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  617. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  618. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  619. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  620. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  621. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  622. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  623. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  624. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  625. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  626. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  627. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  628. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  629. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  630. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  631. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  632. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  633. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  634. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  635. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  636. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  637. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  638. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  639. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  640. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  641. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  642. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  643. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  645. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  647. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  649. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  651. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  652. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  653. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  655. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  656. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  657. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  659. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  661. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  663. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  665. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  667. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  669. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  671. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  673. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  675. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  677. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  679. package/contracts/components/BaseComponent.sol +0 -91
  680. package/contracts/components/Distribution.sol +0 -160
  681. package/contracts/components/IBaseComponent.sol +0 -25
  682. package/contracts/components/IDistributionComponent.sol +0 -44
  683. package/contracts/components/IPoolComponent.sol +0 -62
  684. package/contracts/components/IProductComponent.sol +0 -35
  685. package/contracts/components/Pool.sol +0 -243
  686. package/contracts/components/Product.sol +0 -297
  687. package/contracts/experiment/cloning/Cloner.sol +0 -47
  688. package/contracts/experiment/errors/Require.sol +0 -38
  689. package/contracts/experiment/errors/Revert.sol +0 -44
  690. package/contracts/experiment/inheritance/A.sol +0 -53
  691. package/contracts/experiment/inheritance/B.sol +0 -28
  692. package/contracts/experiment/inheritance/C.sol +0 -34
  693. package/contracts/experiment/inheritance/IA.sol +0 -13
  694. package/contracts/experiment/inheritance/IB.sol +0 -10
  695. package/contracts/experiment/inheritance/IC.sol +0 -12
  696. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  697. package/contracts/experiment/statemachine/ISM.sol +0 -25
  698. package/contracts/experiment/statemachine/SM.sol +0 -57
  699. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  700. package/contracts/experiment/types/TypeA.sol +0 -47
  701. package/contracts/experiment/types/TypeB.sol +0 -29
  702. package/contracts/instance/AccessManagedSimple.sol +0 -115
  703. package/contracts/instance/AccessManagerSimple.sol +0 -692
  704. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  705. package/contracts/instance/InstanceAccessManager.sol +0 -288
  706. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  707. package/contracts/instance/base/IInstanceBase.sol +0 -23
  708. package/contracts/instance/base/KeyValueStore.sol +0 -172
  709. package/contracts/instance/base/Lifecycle.sol +0 -100
  710. package/contracts/instance/module/IAccess.sol +0 -38
  711. package/contracts/instance/module/ISetup.sol +0 -44
  712. package/contracts/instance/module/ITreasury.sol +0 -23
  713. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  714. package/contracts/instance/service/DistributionService.sol +0 -102
  715. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  716. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  717. package/contracts/instance/service/IDistributionService.sol +0 -12
  718. package/contracts/instance/service/IPoolService.sol +0 -37
  719. package/contracts/instance/service/IProductService.sol +0 -107
  720. package/contracts/instance/service/PoolService.sol +0 -208
  721. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  722. package/contracts/shared/ContractDeployerLib.sol +0 -72
  723. package/contracts/shared/ERC165.sol +0 -25
  724. package/contracts/shared/ProxyManager.sol +0 -94
  725. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  726. package/contracts/shared/Versionable.sol +0 -147
  727. package/contracts/test/TestFee.sol +0 -25
  728. package/contracts/test/TestRegisterable.sol +0 -18
  729. package/contracts/test/TestRoleId.sol +0 -14
  730. package/contracts/test/TestService.sol +0 -24
  731. package/contracts/test/TestToken.sol +0 -26
  732. package/contracts/test/TestVersion.sol +0 -44
  733. package/contracts/test/TestVersionable.sol +0 -17
  734. package/contracts/types/ChainId.sol +0 -38
  735. package/contracts/types/NftIdSet.sol +0 -60
  736. package/contracts/types/NumberId.sol +0 -52
  737. package/contracts/types/ObjectType.sol +0 -152
  738. package/contracts/types/RiskId.sol +0 -43
  739. package/contracts/types/RoleId.sol +0 -89
@@ -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,39 +1,70 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
-
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";
6
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
+
16
+
17
+ interface IInstance is
18
+ IRegisterable
19
+ {
20
+ error ErrorInstanceInstanceAdminZero();
21
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
22
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
23
+
24
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
25
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
26
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
27
+
28
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
29
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
30
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
31
+
32
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
33
+
34
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
35
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
7
36
 
8
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
9
- import {IDistributionService} from "./service/IDistributionService.sol";
10
- import {IPoolService} from "./service/IPoolService.sol";
11
- import {IProductService} from "./service/IProductService.sol";
12
- import {IBundle} from "./module/IBundle.sol";
13
- import {ISetup} from "./module/ISetup.sol";
14
- import {NftId} from "../types/NftId.sol";
15
- import {StateId} from "../types/StateId.sol";
37
+ struct InstanceInfo {
38
+ uint64 requestsCount;
39
+ }
16
40
 
17
- interface IInstance is IERC165 {
41
+ /// @dev Register a product with the instance.
42
+ function registerProduct(address product) external returns (NftId productNftId);
18
43
 
19
- function getComponentOwnerService() external view returns (IComponentOwnerService);
20
- function getDistributionService() external view returns (IDistributionService);
21
- // function getProductService() external view returns (IProductService);
22
- function getPoolService() external view returns (IPoolService);
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;
23
47
 
24
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) 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;
25
51
 
26
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
27
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
28
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
52
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
53
+ function setStakingRewardRate(UFixed rewardRate) external;
54
+ function refillStakingRewardReserves(Amount dipAmount) external;
29
55
 
30
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
31
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
32
- function updatePoolSetupState(NftId poolNftId, StateId newState) external;
56
+ /// @dev Defunds the staking reward reserves for the specified target.
57
+ /// Permissioned: only the target owner may call this function.
58
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
33
59
 
34
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
35
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
36
- function updateBundleState(NftId bundleNftId, StateId newState) external;
60
+ // get products
61
+ function products() external view returns (uint256 productCount);
62
+ function getProductNftid(uint256 idx) external view returns (NftId productNftId);
37
63
 
64
+ // get supporting contracts
38
65
  function getInstanceReader() external view returns (InstanceReader);
66
+ function getBundleSet() external view returns (BundleSet);
67
+ function getRiskSet() external view returns (RiskSet);
68
+ function getInstanceAdmin() external view returns (InstanceAdmin);
69
+ function getInstanceStore() external view returns (InstanceStore);
39
70
  }
@@ -1,30 +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 {IBaseComponent} from "../components/IBaseComponent.sol";
13
+ interface IInstanceService is IService {
12
14
 
13
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
14
- import {Instance} from "./Instance.sol";
15
- import {InstanceReader} from "./InstanceReader.sol";
15
+ // onlyInstance
16
+ error ErrorInstanceServiceNotRegistered(address instance);
17
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
18
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
16
19
 
17
- 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();
18
32
 
19
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
33
+ error ErrorInstanceServiceAccessManagerZero();
34
+ error ErrorInstanceServiceInstanceAdminZero();
35
+ error ErrorInstanceServiceInstanceReaderZero();
36
+ error ErrorInstanceServiceBundleSetZero();
37
+ error ErrorInstanceServiceRiskSetZero();
38
+ error ErrorInstanceServiceInstanceStoreZero();
20
39
 
21
- function createInstanceClone()
40
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
41
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
42
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
43
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
45
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
46
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
47
+
48
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
49
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
50
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
51
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
52
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
53
+
54
+ event LogInstanceCloned(NftId instanceNftId, address instance);
55
+
56
+ function createInstance()
22
57
  external
23
58
  returns (
24
- AccessManagerSimple clonedAccessManager,
25
- Instance clonedInstance,
26
- NftId instanceNftId,
27
- InstanceReader clonedInstanceReader
59
+ IInstance instance,
60
+ NftId instanceNftId
28
61
  );
29
- }
30
62
 
63
+ function upgradeInstanceReader(NftId instanceNftId) external;
64
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
65
+
66
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
67
+ function setStakingRewardRate(UFixed rewardRate) external;
68
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
69
+
70
+ /// @dev Defunds the staking reward reserves for the specified target.
71
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
72
+ }