@etherisc/gif-next 0.0.2-78e428e-483 → 0.0.2-791e161-234

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 (500) hide show
  1. package/README.md +32 -8
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
  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 +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +163 -389
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -283
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2025 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2379 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +732 -134
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +349 -140
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +111 -329
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -312
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -121
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +74 -66
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -338
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +374 -448
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -117
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +151 -323
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +307 -144
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +161 -143
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  161. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +365 -345
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -103
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +149 -321
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  196. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  198. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  200. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  202. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +3 -3
  204. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  206. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +473 -588
  208. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -126
  210. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  232. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  245. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  257. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  258. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  263. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  269. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  271. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  273. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  275. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  277. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  279. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  281. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  283. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  323. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  337. package/contracts/accounting/AccountingService.sol +262 -0
  338. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  339. package/contracts/accounting/IAccountingService.sol +45 -0
  340. package/contracts/authorization/AccessAdmin.sol +192 -124
  341. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  342. package/contracts/authorization/Authorization.sol +111 -40
  343. package/contracts/authorization/IAccess.sol +1 -0
  344. package/contracts/authorization/IAccessAdmin.sol +10 -6
  345. package/contracts/authorization/IAuthorization.sol +13 -7
  346. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  347. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  348. package/contracts/distribution/BasicDistribution.sol +8 -7
  349. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  350. package/contracts/distribution/Distribution.sol +33 -41
  351. package/contracts/distribution/DistributionService.sol +109 -89
  352. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  353. package/contracts/distribution/IDistributionComponent.sol +1 -1
  354. package/contracts/distribution/IDistributionService.sol +14 -11
  355. package/contracts/examples/fire/DamageLevel.sol +59 -0
  356. package/contracts/examples/fire/FirePool.sol +90 -0
  357. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  358. package/contracts/examples/fire/FireProduct.sol +436 -0
  359. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  360. package/contracts/examples/fire/FireUSD.sol +26 -0
  361. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  362. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  363. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  364. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  365. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleProduct.sol +366 -0
  367. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  368. package/contracts/instance/BundleSet.sol +38 -34
  369. package/contracts/instance/IInstance.sol +16 -36
  370. package/contracts/instance/IInstanceService.sol +9 -29
  371. package/contracts/instance/Instance.sol +47 -66
  372. package/contracts/instance/InstanceAdmin.sol +133 -73
  373. package/contracts/instance/InstanceAuthorizationV3.sol +53 -34
  374. package/contracts/instance/InstanceReader.sol +195 -27
  375. package/contracts/instance/InstanceService.sol +125 -164
  376. package/contracts/instance/InstanceServiceManager.sol +6 -7
  377. package/contracts/instance/InstanceStore.sol +11 -1
  378. package/contracts/instance/RiskSet.sol +117 -0
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +10 -4
  381. package/contracts/instance/base/ObjectSet.sol +24 -25
  382. package/contracts/instance/module/IComponents.sol +11 -8
  383. package/contracts/instance/module/IPolicy.sol +26 -25
  384. package/contracts/instance/module/IRisk.sol +3 -0
  385. package/contracts/oracle/BasicOracle.sol +0 -1
  386. package/contracts/oracle/IOracleService.sol +2 -1
  387. package/contracts/oracle/Oracle.sol +7 -17
  388. package/contracts/oracle/OracleService.sol +112 -81
  389. package/contracts/oracle/OracleServiceManager.sol +6 -6
  390. package/contracts/pool/BasicPool.sol +33 -24
  391. package/contracts/pool/BasicPoolAuthorization.sol +13 -3
  392. package/contracts/pool/BundleService.sol +83 -109
  393. package/contracts/pool/BundleServiceManager.sol +6 -6
  394. package/contracts/pool/IBundleService.sol +4 -18
  395. package/contracts/pool/IPoolComponent.sol +19 -15
  396. package/contracts/pool/IPoolService.sol +52 -48
  397. package/contracts/pool/Pool.sol +144 -127
  398. package/contracts/pool/PoolService.sol +292 -231
  399. package/contracts/pool/PoolServiceManager.sol +4 -4
  400. package/contracts/product/ApplicationService.sol +72 -43
  401. package/contracts/product/ApplicationServiceManager.sol +4 -4
  402. package/contracts/product/BasicProduct.sol +9 -12
  403. package/contracts/product/BasicProductAuthorization.sol +1 -3
  404. package/contracts/product/ClaimService.sol +426 -135
  405. package/contracts/product/ClaimServiceManager.sol +4 -4
  406. package/contracts/product/IApplicationService.sol +6 -2
  407. package/contracts/product/IClaimService.sol +44 -7
  408. package/contracts/product/IPolicyService.sol +44 -38
  409. package/contracts/product/IPricingService.sol +10 -10
  410. package/contracts/product/IProductComponent.sol +23 -4
  411. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  412. package/contracts/product/PolicyService.sol +502 -295
  413. package/contracts/product/PolicyServiceManager.sol +4 -4
  414. package/contracts/product/PricingService.sol +56 -55
  415. package/contracts/product/PricingServiceManager.sol +4 -4
  416. package/contracts/product/Product.sol +133 -93
  417. package/contracts/product/RiskService.sol +151 -0
  418. package/contracts/product/RiskServiceManager.sol +39 -0
  419. package/contracts/registry/ChainNft.sol +72 -40
  420. package/contracts/registry/IRegistry.sol +58 -28
  421. package/contracts/registry/IRegistryService.sol +5 -12
  422. package/contracts/registry/IRelease.sol +26 -0
  423. package/contracts/registry/ITransferInterceptor.sol +1 -2
  424. package/contracts/registry/Registry.sol +353 -203
  425. package/contracts/registry/RegistryAdmin.sol +161 -182
  426. package/contracts/registry/RegistryService.sol +37 -48
  427. package/contracts/registry/RegistryServiceManager.sol +3 -3
  428. package/contracts/registry/ReleaseAdmin.sol +245 -0
  429. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  430. package/contracts/registry/ReleaseRegistry.sol +258 -232
  431. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  432. package/contracts/registry/TokenRegistry.sol +5 -7
  433. package/contracts/shared/Component.sol +71 -125
  434. package/contracts/shared/ComponentService.sol +386 -347
  435. package/contracts/shared/ComponentServiceManager.sol +8 -5
  436. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  437. package/contracts/shared/ContractLib.sol +252 -0
  438. package/contracts/shared/IComponent.sol +8 -17
  439. package/contracts/shared/IComponentService.sol +45 -37
  440. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  441. package/contracts/shared/ILifecycle.sol +3 -1
  442. package/contracts/shared/INftOwnable.sol +2 -0
  443. package/contracts/shared/IPolicyHolder.sol +12 -22
  444. package/contracts/shared/IRegisterable.sol +23 -1
  445. package/contracts/shared/IService.sol +3 -5
  446. package/contracts/shared/InitializableERC165.sol +2 -2
  447. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  448. package/contracts/shared/KeyValueStore.sol +1 -1
  449. package/contracts/shared/Lifecycle.sol +15 -4
  450. package/contracts/shared/NftOwnable.sol +29 -9
  451. package/contracts/shared/PolicyHolder.sol +15 -52
  452. package/contracts/shared/Registerable.sol +55 -21
  453. package/contracts/shared/RegistryLinked.sol +9 -14
  454. package/contracts/shared/Service.sol +15 -32
  455. package/contracts/shared/TokenHandler.sol +357 -26
  456. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  457. package/contracts/staking/IStaking.sol +11 -5
  458. package/contracts/staking/IStakingService.sol +0 -3
  459. package/contracts/staking/StakeManagerLib.sol +18 -25
  460. package/contracts/staking/Staking.sol +71 -61
  461. package/contracts/staking/StakingManager.sol +8 -6
  462. package/contracts/staking/StakingReader.sol +12 -5
  463. package/contracts/staking/StakingService.sol +64 -36
  464. package/contracts/staking/StakingServiceManager.sol +2 -2
  465. package/contracts/staking/TargetManagerLib.sol +7 -3
  466. package/contracts/type/Amount.sol +15 -0
  467. package/contracts/type/ClaimId.sol +6 -1
  468. package/contracts/type/Key32.sol +2 -2
  469. package/contracts/type/Key32Set.sol +62 -0
  470. package/contracts/type/NftId.sol +7 -0
  471. package/contracts/type/ObjectType.sol +26 -11
  472. package/contracts/type/PayoutId.sol +10 -10
  473. package/contracts/type/RiskId.sol +35 -4
  474. package/contracts/type/RoleId.sol +4 -13
  475. package/contracts/type/Seconds.sol +8 -0
  476. package/contracts/type/StateId.sol +15 -1
  477. package/contracts/type/Timestamp.sol +0 -5
  478. package/contracts/type/UFixed.sol +13 -119
  479. package/contracts/type/Version.sol +15 -5
  480. package/contracts/upgradeability/ProxyManager.sol +68 -34
  481. package/contracts/upgradeability/Versionable.sol +2 -2
  482. package/package.json +4 -3
  483. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  484. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  485. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  486. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  487. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  488. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  489. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  490. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  491. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  492. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  493. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  494. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  495. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  496. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  497. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  498. package/contracts/product/ProductService.sol +0 -99
  499. package/contracts/product/ProductServiceManager.sol +0 -39
  500. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,20 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IInstance} from "./IInstance.sol";
5
- import {INSTANCE} from "../type/ObjectType.sol";
6
- import {InstanceReader} from "./InstanceReader.sol";
7
4
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
5
  import {LibNftIdSet} from "../type/NftIdSet.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {TimestampLib} from "../type/Timestamp.sol";
6
+ import {NftId, NftIdLib} from "../type/NftId.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {BUNDLE} from "../type/ObjectType.sol";
12
9
 
13
10
  import {ObjectSet} from "./base/ObjectSet.sol";
14
11
 
15
12
  contract BundleSet is
16
13
  ObjectSet
17
14
  {
15
+ using LibNftIdSet for LibNftIdSet.Set;
18
16
 
19
17
  event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
18
  event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
@@ -34,40 +32,28 @@ contract BundleSet is
34
32
  mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
33
 
36
34
  /// @dev links a policy to its bundle
37
- // to link a policy it MUST NOT yet have been linked
38
- function linkPolicy(NftId policyNftId) external restricted() {
39
- NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
40
- // decision will likely depend on the decision what to check here and what in the service
41
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
42
36
 
43
37
  // ensure bundle is unlocked (in active set) and registered with this instance
44
- if (!_isActive(poolNftId, bundleNftId)) {
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
45
39
  revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
46
40
  }
47
41
 
48
- LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
42
+ _activePolicies[bundleNftId].add(policyNftId);
49
43
  emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
50
44
  }
51
45
 
52
46
 
53
47
  /// @dev unlinks a policy from its bundle
54
- // to unlink a policy it must closable, ie. meet one of the following criterias
55
- // - the policy MUST be past its expiry period and it MUST NOT have any open claims
56
- // - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
57
- function unlinkPolicy(NftId policyNftId) external restricted() {
58
- IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
59
-
60
- NftId bundleNftId = policyInfo.bundleNftId;
61
- // decision will likely depend on the decision what to check here and what in the service
62
- NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
63
49
 
64
50
  // ensure bundle is registered with this instance
65
- if (!_contains(poolNftId, bundleNftId)) {
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
66
52
  revert ErrorBundleSetBundleUnknown(bundleNftId);
67
53
  }
68
54
 
69
- LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
70
- emit LogBundleSetPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
71
57
  }
72
58
 
73
59
 
@@ -81,7 +67,7 @@ contract BundleSet is
81
67
  revert ErrorBundleSetBundleNotRegistered(bundleNftId);
82
68
  }
83
69
 
84
- _add(poolNftId, bundleNftId);
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
85
71
  emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
86
72
  }
87
73
 
@@ -89,38 +75,56 @@ contract BundleSet is
89
75
  /// @dev unlocked (active) bundles are available to collateralize new policies
90
76
  function unlock(NftId bundleNftId) external restricted() {
91
77
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
92
- _activate(poolNftId, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
93
79
  emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
94
80
  }
95
81
 
96
82
  /// @dev locked (deactivated) bundles may not collateralize any new policies
97
83
  function lock(NftId bundleNftId) external restricted() {
98
84
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
99
- _deactivate(poolNftId, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
100
86
  emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
101
87
  }
102
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
103
  function bundles(NftId poolNftId) external view returns(uint256) {
104
104
  return _objects(poolNftId);
105
105
  }
106
106
 
107
- function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
108
- return _getObject(poolNftId, idx);
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
109
  }
110
110
 
111
111
  function activeBundles(NftId poolNftId) external view returns(uint256) {
112
112
  return _activeObjs(poolNftId);
113
113
  }
114
114
 
115
- function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
116
- return _getActiveObject(poolNftId, idx);
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
117
  }
118
118
 
119
119
  function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
- return LibNftIdSet.size(_activePolicies[bundleNftId]);
120
+ return _activePolicies[bundleNftId].size();
121
121
  }
122
122
 
123
123
  function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
- return LibNftIdSet.getElementAt(_activePolicies[bundleNftId], idx);
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
125
129
  }
126
130
  }
@@ -1,48 +1,21 @@
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
4
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
9
- import {PayoutId} from "../type/PayoutId.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
8
+ import {InstanceReader} from "./InstanceReader.sol";
9
+ import {InstanceStore} from "./InstanceStore.sol";
10
+ import {IRegisterable} from "../shared/IRegisterable.sol";
10
11
  import {NftId} from "../type/NftId.sol";
11
- import {StateId} from "../type/StateId.sol";
12
- import {ReferralId} from "../type/Referral.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {VersionPart} from "../type/Version.sol";
15
- import {Key32} from "../type/Key32.sol";
16
12
  import {RoleId} from "../type/RoleId.sol";
17
13
  import {Seconds} from "../type/Seconds.sol";
18
14
  import {UFixed} from "../type/UFixed.sol";
19
15
 
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
-
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
-
24
- import {InstanceAdmin} from "./InstanceAdmin.sol";
25
- import {BundleSet} from "./BundleSet.sol";
26
- import {InstanceReader} from "./InstanceReader.sol";
27
- import {InstanceStore} from "./InstanceStore.sol";
28
-
29
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
-
31
- import {IAccess} from "./module/IAccess.sol";
32
-
33
- import {IBundleService} from "../pool/IBundleService.sol";
34
- import {IDistributionService} from "../distribution/IDistributionService.sol";
35
- import {IPolicyService} from "../product/IPolicyService.sol";
36
- import {IPoolService} from "../pool/IPoolService.sol";
37
- import {IProductService} from "../product/IProductService.sol";
38
- import {IPolicyService} from "../product/IPolicyService.sol";
39
- import {IBundleService} from "../pool/IBundleService.sol";
40
-
41
16
 
42
17
  interface IInstance is
43
- IRegisterable,
44
- ITransferInterceptor,
45
- IAccessManaged
18
+ IRegisterable
46
19
  {
47
20
  error ErrorInstanceInstanceAdminZero();
48
21
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
@@ -52,6 +25,10 @@ interface IInstance is
52
25
  error ErrorInstanceBundleSetInstanceMismatch(address instance);
53
26
  error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
54
27
 
28
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
29
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
30
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
31
+
55
32
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
33
 
57
34
  error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
@@ -61,13 +38,16 @@ interface IInstance is
61
38
  uint64 requestsCount;
62
39
  }
63
40
 
41
+ /// @dev Register a product with the instance.
42
+ function registerProduct(address product) external returns (NftId productNftId);
43
+
64
44
  function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
65
45
  function grantRole(RoleId roleId, address account) external;
66
46
  function revokeRole(RoleId roleId, address account) external;
67
47
 
68
48
  function createTarget(address target, string memory name) external;
69
49
  function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
70
- function setTargetLocked(address target, bool locked) external;
50
+ function setLocked(address target, bool locked) external;
71
51
 
72
52
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
73
53
  function setStakingRewardRate(UFixed rewardRate) external;
@@ -78,9 +58,9 @@ interface IInstance is
78
58
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
79
59
 
80
60
  // get instance release and supporting contracts
81
- function getMajorVersion() external pure returns (VersionPart majorVersion);
82
61
  function getInstanceReader() external view returns (InstanceReader);
83
62
  function getBundleSet() external view returns (BundleSet);
63
+ function getRiskSet() external view returns (RiskSet);
84
64
  function getInstanceAdmin() external view returns (InstanceAdmin);
85
65
  function getInstanceStore() external view returns (InstanceStore);
86
66
  }
@@ -2,13 +2,10 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {BundleSet} from "./BundleSet.sol";
6
- import {Instance} from "./Instance.sol";
7
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
5
+ import {IInstance} from "./IInstance.sol";
8
6
  import {IService} from "../shared/IService.sol";
9
7
  import {NftId} from "../type/NftId.sol";
10
8
  import {ObjectType} from "../type/ObjectType.sol";
11
- import {RoleId} from "../type/RoleId.sol";
12
9
  import {Seconds} from "../type/Seconds.sol";
13
10
  import {UFixed} from "../type/UFixed.sol";
14
11
  import {VersionPart} from "../type/Version.sol";
@@ -25,6 +22,7 @@ interface IInstanceService is IService {
25
22
  error ErrorInstanceServiceMasterInstanceAlreadySet();
26
23
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
24
  error ErrorInstanceServiceMasterBundleSetAlreadySet();
25
+ error ErrorInstanceServiceMasterRiskSetAlreadySet();
28
26
  error ErrorInstanceServiceInstanceAddressZero();
29
27
 
30
28
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -36,12 +34,15 @@ interface IInstanceService is IService {
36
34
  error ErrorInstanceServiceInstanceAdminZero();
37
35
  error ErrorInstanceServiceInstanceReaderZero();
38
36
  error ErrorInstanceServiceBundleSetZero();
37
+ error ErrorInstanceServiceRiskSetZero();
39
38
  error ErrorInstanceServiceInstanceStoreZero();
40
39
 
41
40
  error ErrorInstanceServiceInstanceAuthorityMismatch();
42
41
  error ErrorInstanceServiceBundleSetAuthorityMismatch();
42
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
43
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
- error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
45
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
45
46
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
46
47
 
47
48
  error ErrorInstanceServiceRequestUnauhorized(address caller);
@@ -55,11 +56,12 @@ interface IInstanceService is IService {
55
56
  function createInstance()
56
57
  external
57
58
  returns (
58
- // TODO check if Instance can be changed to IInstance
59
- Instance clonedInstance,
59
+ IInstance instance,
60
60
  NftId instanceNftId
61
61
  );
62
62
 
63
+ function upgradeInstanceReader(NftId instanceNftId) external;
64
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
63
65
 
64
66
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
67
  function setStakingRewardRate(UFixed rewardRate) external;
@@ -67,26 +69,4 @@ interface IInstanceService is IService {
67
69
 
68
70
  /// @dev Defunds the staking reward reserves for the specified target.
69
71
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
70
-
71
- /// @dev Sets up the component authorization for the specified instance.
72
- /// The authorization is based on the authz specification provided by the component via getAuthorization.
73
- function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
74
-
75
- function createComponentTarget(
76
- NftId instanceNftId,
77
- address targetAddress,
78
- string memory targetName,
79
- bytes4[][] memory selectors,
80
- RoleId[] memory roles
81
- ) external;
82
-
83
- function createGifTarget(
84
- NftId instanceNftId,
85
- address targetAddress,
86
- string memory targetName,
87
- bytes4[][] memory selectors,
88
- RoleId[] memory roles
89
- ) external;
90
-
91
- function setComponentLocked(bool locked) external;
92
72
  }
@@ -1,61 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {RiskId} from "../type/RiskId.sol";
10
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
- import {RoleId} from "../type/RoleId.sol";
12
- import {ClaimId} from "../type/ClaimId.sol";
13
- import {ReferralId} from "../type/Referral.sol";
14
- import {PayoutId} from "../type/PayoutId.sol";
15
- import {DistributorType} from "../type/DistributorType.sol";
16
- import {Seconds} from "../type/Seconds.sol";
17
- import {UFixed} from "../type/UFixed.sol";
18
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
19
-
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {TokenHandler} from "../shared/TokenHandler.sol";
22
-
23
- import {IRegistry} from "../registry/IRegistry.sol";
24
-
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
25
8
  import {IInstance} from "./IInstance.sol";
9
+ import {IComponentService} from "../shared/IComponentService.sol";
26
10
  import {IInstanceService} from "./IInstanceService.sol";
27
11
  import {InstanceReader} from "./InstanceReader.sol";
28
12
  import {InstanceAdmin} from "./InstanceAdmin.sol";
29
- import {BundleSet} from "./BundleSet.sol";
30
13
  import {InstanceStore} from "./InstanceStore.sol";
31
-
32
- import {KeyValueStore} from "../shared/KeyValueStore.sol";
33
-
34
- import {IBundle} from "./module/IBundle.sol";
35
- import {IComponents} from "./module/IComponents.sol";
36
- import {IDistribution} from "./module/IDistribution.sol";
37
- import {IPolicy} from "./module/IPolicy.sol";
38
- import {IRisk} from "./module/IRisk.sol";
39
-
40
- import {IDistributionService} from "../distribution/IDistributionService.sol";
41
- import {IPoolService} from "../pool/IPoolService.sol";
42
- import {IProductService} from "../product/IProductService.sol";
43
- import {IPolicyService} from "../product/IPolicyService.sol";
44
- import {IBundleService} from "../pool/IBundleService.sol";
14
+ import {IRegistry} from "../registry/IRegistry.sol";
15
+ import {NftId} from "../type/NftId.sol";
16
+ import {Registerable} from "../shared/Registerable.sol";
17
+ import {RoleId} from "../type/RoleId.sol";
18
+ import {Seconds} from "../type/Seconds.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
45
20
 
46
21
  contract Instance is
47
22
  IInstance,
48
- AccessManagedUpgradeable,
49
23
  Registerable
50
24
  {
51
- uint256 public constant GIF_MAJOR_VERSION = 3;
52
-
53
25
  bool private _initialized;
54
26
 
27
+ IComponentService internal _componentService;
55
28
  IInstanceService internal _instanceService;
56
29
  InstanceAdmin internal _instanceAdmin;
57
30
  InstanceReader internal _instanceReader;
58
- BundleSet internal _bundleManager;
31
+ BundleSet internal _bundleSet;
32
+ RiskSet internal _riskSet;
59
33
  InstanceStore internal _instanceStore;
60
34
 
61
35
  modifier onlyChainNft() {
@@ -68,7 +42,8 @@ contract Instance is
68
42
  function initialize(
69
43
  InstanceAdmin instanceAdmin,
70
44
  InstanceStore instanceStore,
71
- BundleSet bundleManager,
45
+ BundleSet bundleSet,
46
+ RiskSet riskSet,
72
47
  InstanceReader instanceReader,
73
48
  IRegistry registry,
74
49
  address initialOwner
@@ -76,17 +51,15 @@ contract Instance is
76
51
  external
77
52
  initializer()
78
53
  {
79
- _instanceAdmin = instanceAdmin;
80
- if(_instanceAdmin.authority() == address(0)) {
81
- // TODO rename error
54
+ if(address(instanceAdmin) == address(0)) {
82
55
  revert ErrorInstanceInstanceAdminZero();
83
56
  }
84
57
 
85
- // set authority to instance admin authority
86
- __AccessManaged_init(_instanceAdmin.authority());
58
+ _instanceAdmin = instanceAdmin;
87
59
 
88
60
  // setup instance object info
89
- initializeRegisterable(
61
+ __Registerable_init(
62
+ instanceAdmin.authority(),
90
63
  address(registry),
91
64
  registry.getNftId(),
92
65
  INSTANCE(),
@@ -96,27 +69,42 @@ contract Instance is
96
69
 
97
70
  // store instance supporting contracts
98
71
  _instanceStore = instanceStore;
99
- _bundleManager = bundleManager;
72
+ _bundleSet = bundleSet;
73
+ _riskSet = riskSet;
100
74
  _instanceReader = instanceReader;
101
75
 
102
76
  // initialize instance supporting contracts
103
77
  _instanceStore.initialize();
104
- _bundleManager.initialize();
78
+ _bundleSet.initialize();
79
+ _riskSet.initialize();
105
80
  _instanceReader.initialize();
106
81
 
82
+ _componentService = IComponentService(
83
+ getRegistry().getServiceAddress(
84
+ COMPONENT(),
85
+ getRelease()));
86
+
107
87
  _instanceService = IInstanceService(
108
88
  getRegistry().getServiceAddress(
109
89
  INSTANCE(),
110
- getMajorVersion()));
90
+ getRelease()));
111
91
 
112
- registerInterface(type(IInstance).interfaceId);
92
+ _registerInterface(type(IInstance).interfaceId);
93
+ }
94
+
95
+ //--- ProductRegistration ----------------------------------------------//
96
+ function registerProduct(address product)
97
+ external
98
+ onlyOwner()
99
+ returns (NftId productNftId)
100
+ {
101
+ return _componentService.registerProduct(product);
113
102
  }
114
103
 
115
104
  //--- Staking ----------------------------------------------------------//
116
105
 
117
106
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
118
107
  external
119
- // TODO decide if onlyOwner or restricted to instance owner role is better
120
108
  onlyOwner()
121
109
  {
122
110
  _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
@@ -193,23 +181,16 @@ contract Instance is
193
181
  // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
194
182
  }
195
183
 
196
- function setTargetLocked(address target, bool locked)
184
+ function setLocked(address target, bool locked)
197
185
  external
198
186
  onlyOwner()
199
187
  {
200
- // TODO refactor
201
- // _instanceAdmin.setTargetLockedByInstance(target, locked);
188
+ _componentService.setLockedFromInstance(target, locked);
202
189
  }
203
190
 
204
191
  //--- ITransferInterceptor ----------------------------------------------//
205
192
 
206
- // TODO interception of child components nfts
207
- function nftMint(address to, uint256 tokenId) external onlyChainNft {
208
- // TODO refactor
209
- // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
210
- }
211
-
212
- function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
193
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
213
194
  // TODO refactor
214
195
  // _instanceAdmin.transferInstanceOwnerRole(from, to);
215
196
  }
@@ -235,7 +216,11 @@ contract Instance is
235
216
  }
236
217
 
237
218
  function getBundleSet() external view returns (BundleSet) {
238
- return _bundleManager;
219
+ return _bundleSet;
220
+ }
221
+
222
+ function getRiskSet() external view returns (RiskSet) {
223
+ return _riskSet;
239
224
  }
240
225
 
241
226
  function getInstanceAdmin() external view returns (InstanceAdmin) {
@@ -246,9 +231,5 @@ contract Instance is
246
231
  return _instanceStore;
247
232
  }
248
233
 
249
- function getMajorVersion() public pure returns (VersionPart majorVersion) {
250
- return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
251
- }
252
-
253
234
  //--- internal view/pure functions --------------------------------------//
254
235
  }