@etherisc/gif-next 0.0.2-7177fd8-761 → 0.0.2-71b939f-497

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 (471) hide show
  1. package/README.md +32 -8
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -353
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -277
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -290
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -115
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -31
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +98 -30
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -88
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +123 -123
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +179 -139
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +726 -133
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -247
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
  74. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  75. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +111 -305
  94. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  96. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +77 -103
  99. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  101. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +87 -265
  103. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
  105. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
  107. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  108. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -284
  109. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  111. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  112. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +146 -307
  113. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -119
  115. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
  117. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +98 -135
  119. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +283 -180
  121. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  122. package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -295
  123. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +382 -407
  125. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +123 -99
  127. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  128. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -165
  129. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +93 -85
  131. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  132. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -281
  133. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  135. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +282 -229
  137. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -108
  139. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
  141. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
  143. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +179 -35
  145. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  147. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  148. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -116
  149. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  150. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  151. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  152. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +281 -323
  153. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -119
  155. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  156. package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
  157. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
  159. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  160. package/artifacts/contracts/product/Product.sol/Product.json +147 -279
  161. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  162. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  163. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  165. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  166. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  167. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  168. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
  169. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  171. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  172. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  173. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/Registry.sol/Registry.json +516 -95
  175. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
  177. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
  179. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
  181. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  183. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +131 -223
  185. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  187. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  189. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  190. package/artifacts/contracts/shared/Component.sol/Component.json +76 -239
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +413 -329
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +140 -118
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  197. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  202. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  203. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -77
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +388 -19
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -103
  209. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  211. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  219. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +87 -265
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +111 -114
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +193 -368
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +117 -110
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  309. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  311. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  313. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  314. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  316. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  317. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +83 -59
  319. package/contracts/authorization/Authorization.sol +111 -40
  320. package/contracts/authorization/IAccess.sol +1 -0
  321. package/contracts/authorization/IAccessAdmin.sol +4 -3
  322. package/contracts/authorization/IAuthorization.sol +13 -7
  323. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  324. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  326. package/contracts/distribution/BasicDistribution.sol +4 -3
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  328. package/contracts/distribution/Distribution.sol +12 -23
  329. package/contracts/distribution/DistributionService.sol +97 -66
  330. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  331. package/contracts/distribution/IDistributionComponent.sol +1 -1
  332. package/contracts/distribution/IDistributionService.sol +13 -8
  333. package/contracts/examples/fire/DamageLevel.sol +59 -0
  334. package/contracts/examples/fire/FirePool.sol +86 -0
  335. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  336. package/contracts/examples/fire/FireProduct.sol +431 -0
  337. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  338. package/contracts/examples/fire/FireUSD.sol +26 -0
  339. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  340. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  341. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  342. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  343. package/contracts/instance/BundleSet.sol +38 -34
  344. package/contracts/instance/IInstance.sol +16 -30
  345. package/contracts/instance/IInstanceService.sol +7 -25
  346. package/contracts/instance/Instance.sol +43 -56
  347. package/contracts/instance/InstanceAdmin.sol +64 -49
  348. package/contracts/instance/InstanceAuthorizationV3.sol +40 -27
  349. package/contracts/instance/InstanceReader.sol +193 -20
  350. package/contracts/instance/InstanceService.sol +58 -100
  351. package/contracts/instance/InstanceServiceManager.sol +6 -7
  352. package/contracts/instance/InstanceStore.sol +11 -1
  353. package/contracts/instance/RiskSet.sol +119 -0
  354. package/contracts/instance/base/ObjectCounter.sol +1 -2
  355. package/contracts/instance/base/ObjectLifecycle.sol +7 -1
  356. package/contracts/instance/base/ObjectSet.sol +24 -25
  357. package/contracts/instance/module/IComponents.sol +10 -6
  358. package/contracts/instance/module/IPolicy.sol +25 -24
  359. package/contracts/instance/module/IRisk.sol +1 -0
  360. package/contracts/oracle/BasicOracle.sol +0 -1
  361. package/contracts/oracle/IOracleService.sol +2 -1
  362. package/contracts/oracle/Oracle.sol +6 -16
  363. package/contracts/oracle/OracleService.sol +112 -81
  364. package/contracts/oracle/OracleServiceManager.sol +6 -6
  365. package/contracts/pool/BasicPool.sol +33 -24
  366. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  367. package/contracts/pool/BundleService.sol +69 -83
  368. package/contracts/pool/BundleServiceManager.sol +6 -6
  369. package/contracts/pool/IBundleService.sol +3 -14
  370. package/contracts/pool/IPoolComponent.sol +19 -15
  371. package/contracts/pool/IPoolService.sol +48 -42
  372. package/contracts/pool/Pool.sol +144 -127
  373. package/contracts/pool/PoolService.sol +277 -189
  374. package/contracts/pool/PoolServiceManager.sol +4 -4
  375. package/contracts/product/ApplicationService.sol +34 -25
  376. package/contracts/product/ApplicationServiceManager.sol +4 -4
  377. package/contracts/product/BasicProduct.sol +9 -12
  378. package/contracts/product/BasicProductAuthorization.sol +0 -1
  379. package/contracts/product/ClaimService.sol +312 -115
  380. package/contracts/product/ClaimServiceManager.sol +4 -4
  381. package/contracts/product/IApplicationService.sol +5 -2
  382. package/contracts/product/IClaimService.sol +30 -7
  383. package/contracts/product/IPolicyService.sol +31 -25
  384. package/contracts/product/IPricingService.sol +10 -10
  385. package/contracts/product/IProductComponent.sol +23 -4
  386. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -2
  387. package/contracts/product/PolicyService.sol +396 -263
  388. package/contracts/product/PolicyServiceManager.sol +4 -4
  389. package/contracts/product/PricingService.sol +49 -53
  390. package/contracts/product/PricingServiceManager.sol +3 -3
  391. package/contracts/product/Product.sol +101 -87
  392. package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
  393. package/contracts/product/RiskServiceManager.sol +39 -0
  394. package/contracts/registry/ChainNft.sol +72 -40
  395. package/contracts/registry/IRegistry.sol +57 -18
  396. package/contracts/registry/IRegistryService.sol +5 -12
  397. package/contracts/registry/ITransferInterceptor.sol +1 -2
  398. package/contracts/registry/Registry.sol +350 -201
  399. package/contracts/registry/RegistryAdmin.sol +140 -54
  400. package/contracts/registry/RegistryService.sol +35 -46
  401. package/contracts/registry/RegistryServiceManager.sol +2 -2
  402. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  403. package/contracts/registry/ReleaseRegistry.sol +207 -206
  404. package/contracts/registry/ServiceAuthorizationV3.sol +22 -47
  405. package/contracts/shared/Component.sol +52 -116
  406. package/contracts/shared/ComponentService.sol +335 -166
  407. package/contracts/shared/ComponentServiceManager.sol +8 -5
  408. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  409. package/contracts/shared/ContractLib.sol +224 -0
  410. package/contracts/shared/IComponent.sol +10 -14
  411. package/contracts/shared/IComponentService.sol +38 -16
  412. package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
  413. package/contracts/shared/ILifecycle.sol +3 -1
  414. package/contracts/shared/INftOwnable.sol +2 -0
  415. package/contracts/shared/IPolicyHolder.sol +12 -22
  416. package/contracts/shared/IRegisterable.sol +11 -0
  417. package/contracts/shared/InitializableERC165.sol +2 -2
  418. package/contracts/shared/InstanceLinkedComponent.sol +71 -38
  419. package/contracts/shared/KeyValueStore.sol +1 -1
  420. package/contracts/shared/Lifecycle.sol +15 -4
  421. package/contracts/shared/NftOwnable.sol +27 -7
  422. package/contracts/shared/PolicyHolder.sol +15 -52
  423. package/contracts/shared/Registerable.sol +19 -11
  424. package/contracts/shared/RegistryLinked.sol +9 -14
  425. package/contracts/shared/Service.sol +20 -18
  426. package/contracts/shared/TokenHandler.sol +357 -30
  427. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  428. package/contracts/staking/IStaking.sol +11 -5
  429. package/contracts/staking/IStakingService.sol +0 -3
  430. package/contracts/staking/StakeManagerLib.sol +18 -25
  431. package/contracts/staking/Staking.sol +39 -50
  432. package/contracts/staking/StakingManager.sol +8 -6
  433. package/contracts/staking/StakingReader.sol +12 -5
  434. package/contracts/staking/StakingService.sol +58 -25
  435. package/contracts/staking/StakingServiceManager.sol +2 -2
  436. package/contracts/staking/TargetManagerLib.sol +7 -3
  437. package/contracts/type/Amount.sol +15 -0
  438. package/contracts/type/ClaimId.sol +6 -1
  439. package/contracts/type/Key32.sol +2 -2
  440. package/contracts/type/Key32Set.sol +62 -0
  441. package/contracts/type/NftId.sol +7 -0
  442. package/contracts/type/ObjectType.sol +18 -11
  443. package/contracts/type/PayoutId.sol +10 -10
  444. package/contracts/type/RiskId.sol +30 -4
  445. package/contracts/type/RoleId.sol +0 -12
  446. package/contracts/type/Seconds.sol +8 -0
  447. package/contracts/type/StateId.sol +15 -1
  448. package/contracts/type/UFixed.sol +13 -119
  449. package/contracts/upgradeability/ProxyManager.sol +68 -34
  450. package/contracts/upgradeability/Versionable.sol +2 -2
  451. package/package.json +4 -3
  452. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  453. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  454. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  455. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  456. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  457. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  458. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  459. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  460. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  461. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  462. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  463. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
  464. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
  465. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  466. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  467. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  468. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  469. package/contracts/product/ProductServiceManager.sol +0 -39
  470. package/contracts/shared/InitializableCustom.sol +0 -177
  471. package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -7,12 +7,13 @@ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStri
7
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
8
  import {Amount} from "../type/Amount.sol";
9
9
  import {BundleSet} from "./BundleSet.sol";
10
+ import {RiskSet} from "./RiskSet.sol";
10
11
  import {ChainNft} from "../registry/ChainNft.sol";
11
12
  import {NftId} from "../type/NftId.sol";
12
13
  import {RoleId} from "../type/RoleId.sol";
13
14
  import {SecondsLib} from "../type/Seconds.sol";
14
15
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
- import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
16
+ import {ADMIN_ROLE} from "../type/RoleId.sol";
16
17
  import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
17
18
 
18
19
  import {Service} from "../shared/Service.sol";
@@ -29,7 +30,6 @@ import {IStakingService} from "../staking/IStakingService.sol";
29
30
  import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
30
31
 
31
32
  import {Instance} from "./Instance.sol";
32
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
33
33
  import {IInstance} from "./IInstance.sol";
34
34
  import {InstanceAdmin} from "./InstanceAdmin.sol";
35
35
  import {IInstanceService} from "./IInstanceService.sol";
@@ -55,12 +55,13 @@ contract InstanceService is
55
55
  address internal _masterInstance;
56
56
  address internal _masterInstanceReader;
57
57
  address internal _masterInstanceBundleSet;
58
+ address internal _masterInstanceRiskSet;
58
59
  address internal _masterInstanceStore;
59
60
 
60
61
 
61
62
  modifier onlyInstance() {
62
63
  address instanceAddress = msg.sender;
63
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
64
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
64
65
  if (instanceNftId.eqz()) {
65
66
  revert ErrorInstanceServiceNotRegistered(instanceAddress);
66
67
  }
@@ -70,7 +71,7 @@ contract InstanceService is
70
71
  revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
71
72
  }
72
73
 
73
- VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
74
+ VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
74
75
  if (instanceVersion != getVersion().toMajorPart()) {
75
76
  revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
77
  }
@@ -97,8 +98,8 @@ contract InstanceService is
97
98
  function createInstance()
98
99
  external
99
100
  returns (
100
- Instance clonedInstance,
101
- NftId clonedInstanceNftId
101
+ IInstance instance,
102
+ NftId instanceNftId
102
103
  )
103
104
  {
104
105
  // tx sender will become instance owner
@@ -106,24 +107,24 @@ contract InstanceService is
106
107
 
107
108
  // create instance admin and instance
108
109
  InstanceAdmin instanceAdmin = _createInstanceAdmin();
109
- clonedInstance = _createInstance(instanceAdmin, instanceOwner);
110
+ instance = _createInstance(instanceAdmin, instanceOwner);
110
111
 
111
112
  // register cloned instance with registry
112
- clonedInstanceNftId = _registryService.registerInstance(
113
- clonedInstance, instanceOwner).nftId;
113
+ instanceNftId = _registryService.registerInstance(
114
+ instance, instanceOwner).nftId;
114
115
 
115
116
  // register cloned instance as staking target
116
117
  _stakingService.createInstanceTarget(
117
- clonedInstanceNftId,
118
+ instanceNftId,
118
119
  TargetManagerLib.getDefaultLockingPeriod(),
119
120
  TargetManagerLib.getDefaultRewardRate());
120
121
 
121
122
  // MUST be set after instance is set up and registered
122
- instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
123
+ instanceAdmin.initializeInstanceAuthorization(address(instance));
123
124
 
124
125
  emit LogInstanceCloned(
125
- clonedInstanceNftId,
126
- address(clonedInstance));
126
+ instanceNftId,
127
+ address(instance));
127
128
  }
128
129
 
129
130
 
@@ -132,7 +133,7 @@ contract InstanceService is
132
133
  virtual
133
134
  onlyInstance()
134
135
  {
135
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
136
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
136
137
  _stakingService.setInstanceLockingPeriod(
137
138
  instanceNftId,
138
139
  stakeLockingPeriod);
@@ -144,7 +145,7 @@ contract InstanceService is
144
145
  virtual
145
146
  onlyInstance()
146
147
  {
147
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
148
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
148
149
  _stakingService.setInstanceRewardRate(
149
150
  instanceNftId,
150
151
  rewardRate);
@@ -156,7 +157,7 @@ contract InstanceService is
156
157
  virtual
157
158
  onlyInstance()
158
159
  {
159
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
160
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
160
161
  _stakingService.refillInstanceRewardReserves(
161
162
  instanceNftId,
162
163
  rewardProvider,
@@ -170,7 +171,7 @@ contract InstanceService is
170
171
  onlyInstance()
171
172
  returns (Amount newBalance)
172
173
  {
173
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
174
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
174
175
  _stakingService.withdrawInstanceRewardReserves(
175
176
  instanceNftId,
176
177
  dipAmount);
@@ -193,8 +194,7 @@ contract InstanceService is
193
194
  NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
194
195
 
195
196
  IInstance instance = IInstance(
196
- registry.getObjectInfo(
197
- instanceNftId).objectAddress);
197
+ registry.getObjectAddress(instanceNftId));
198
198
 
199
199
  // no revert in case already locked
200
200
  // TODO refactor/implement
@@ -216,7 +216,7 @@ contract InstanceService is
216
216
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
217
217
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
218
218
  if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
219
-
219
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
220
220
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
221
221
 
222
222
  IInstance instance = IInstance(instanceAddress);
@@ -225,28 +225,34 @@ contract InstanceService is
225
225
  address instanceAdminAddress = address(instanceAdmin);
226
226
  InstanceReader instanceReader = instance.getInstanceReader();
227
227
  address instanceReaderAddress = address(instanceReader);
228
- BundleSet bundleManager = instance.getBundleSet();
229
- address bundleManagerAddress = address(bundleManager);
228
+ BundleSet bundleSet = instance.getBundleSet();
229
+ address bundleSetAddress = address(bundleSet);
230
+ RiskSet riskSet = instance.getRiskSet();
231
+ address riskSetAddress = address(riskSet);
230
232
  InstanceStore instanceStore = instance.getInstanceStore();
231
233
  address instanceStoreAddress = address(instanceStore);
232
234
 
233
235
  if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
234
236
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
235
237
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
236
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
238
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
239
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
237
240
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
238
241
 
239
242
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
240
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
243
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
244
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
241
245
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
242
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
246
+ if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
247
+ if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
243
248
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
244
249
 
245
250
  _masterAccessManager = accessManagerAddress;
246
251
  _masterInstanceAdmin = instanceAdminAddress;
247
252
  _masterInstance = instanceAddress;
248
253
  _masterInstanceReader = instanceReaderAddress;
249
- _masterInstanceBundleSet = bundleManagerAddress;
254
+ _masterInstanceBundleSet = bundleSetAddress;
255
+ _masterInstanceRiskSet = riskSetAddress;
250
256
  _masterInstanceStore = instanceStoreAddress;
251
257
 
252
258
  IInstance masterInstance = IInstance(_masterInstance);
@@ -267,7 +273,9 @@ contract InstanceService is
267
273
 
268
274
  function upgradeInstanceReader(NftId instanceNftId)
269
275
  external
276
+ nonReentrant()
270
277
  onlyInstanceOwner(instanceNftId)
278
+ onlyNftOfType(instanceNftId, INSTANCE())
271
279
  {
272
280
  IRegistry registry = getRegistry();
273
281
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
@@ -278,67 +286,6 @@ contract InstanceService is
278
286
  instance.setInstanceReader(upgradedInstanceReaderClone);
279
287
  }
280
288
 
281
-
282
- function createGifTarget(
283
- NftId instanceNftId,
284
- address targetAddress,
285
- string memory targetName,
286
- bytes4[][] memory selectors,
287
- RoleId[] memory roles
288
- )
289
- external
290
- virtual
291
- restricted()
292
- {
293
- _createGifTarget(
294
- instanceNftId,
295
- targetAddress,
296
- targetName,
297
- roles,
298
- selectors
299
- );
300
- }
301
-
302
-
303
- function initializeAuthorization(
304
- NftId instanceNftId,
305
- IInstanceLinkedComponent component
306
- )
307
- external
308
- virtual
309
- restricted()
310
- {
311
- (IInstance instance, ) = _validateInstanceAndComponent(
312
- instanceNftId,
313
- address(component));
314
-
315
- InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
316
- instanceAdmin.initializeComponentAuthorization(
317
- address(component),
318
- component.getAuthorization());
319
- }
320
-
321
-
322
- function createComponentTarget(
323
- NftId instanceNftId,
324
- address targetAddress,
325
- string memory targetName,
326
- bytes4[][] memory selectors,
327
- RoleId[] memory roles
328
- )
329
- external
330
- virtual
331
- restricted()
332
- {
333
- _createGifTarget(
334
- instanceNftId,
335
- targetAddress,
336
- targetName,
337
- roles,
338
- selectors
339
- );
340
- }
341
-
342
289
  /// @dev create new cloned instance admin
343
290
  /// function used to setup a new instance
344
291
  function _createInstanceAdmin()
@@ -355,9 +302,11 @@ contract InstanceService is
355
302
  clonedAccessManager.initialize(
356
303
  address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
357
304
 
305
+ address authorization = address(
306
+ InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
358
307
  clonedInstanceAdmin.initialize(
359
308
  clonedAccessManager,
360
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
309
+ authorization);
361
310
  }
362
311
 
363
312
 
@@ -369,21 +318,24 @@ contract InstanceService is
369
318
  )
370
319
  internal
371
320
  virtual
372
- returns (Instance clonedInstance)
321
+ returns (IInstance)
373
322
  {
374
323
  InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
375
324
  BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
325
+ RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
376
326
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
377
327
 
378
328
  // clone instance
379
- clonedInstance = Instance(Clones.clone(_masterInstance));
329
+ Instance clonedInstance = Instance(Clones.clone(_masterInstance));
380
330
  clonedInstance.initialize(
381
331
  instanceAdmin,
382
332
  clonedInstanceStore,
383
333
  clonedBundleSet,
334
+ clonedRiskSet,
384
335
  clonedInstanceReader,
385
336
  getRegistry(),
386
337
  instanceOwner);
338
+ return clonedInstance;
387
339
  }
388
340
 
389
341
 
@@ -422,21 +374,20 @@ contract InstanceService is
422
374
  bytes memory data
423
375
  )
424
376
  internal
425
- initializer
426
377
  virtual override
378
+ initializer()
427
379
  {
428
380
  (
429
- address registryAddress,,
430
- //address managerAddress
381
+ address registryAddress,
431
382
  address authority
432
- ) = abi.decode(data, (address, address, address));
383
+ ) = abi.decode(data, (address, address));
433
384
 
434
- initializeService(registryAddress, authority, owner);
385
+ _initializeService(registryAddress, authority, owner);
435
386
 
436
387
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
437
388
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
438
389
 
439
- registerInterface(type(IInstanceService).interfaceId);
390
+ _registerInterface(type(IInstanceService).interfaceId);
440
391
  }
441
392
 
442
393
 
@@ -451,13 +402,20 @@ contract InstanceService is
451
402
  revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
452
403
  }
453
404
 
454
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
455
- if(componentInfo.parentNftId != instanceNftId) {
456
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
405
+ if (registry.getNftIdForAddress(componentAddress).gtz()) {
406
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
407
+
408
+ if(componentInfo.parentNftId != instanceNftId) {
409
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
410
+ }
411
+
412
+ componentNftId = componentInfo.nftId;
413
+ } else {
414
+
457
415
  }
458
416
 
459
417
  instance = Instance(instanceInfo.objectAddress);
460
- componentNftId = componentInfo.nftId;
418
+
461
419
  }
462
420
 
463
421
  // From IService
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with instance service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
- InstanceService instSrv = new InstanceService{salt: salt}();
21
- // bytes memory initCode = type(InstanceService).creationCode;
22
- bytes memory data = abi.encode(registryAddress, address(this), authority);
23
- IVersionable versionable = deployDetermenistic(
24
- address(instSrv),
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
25
24
  data,
26
25
  salt);
27
26
 
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {Key32} from "../type/Key32.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
11
11
  import {RequestId} from "../type/RequestId.sol";
12
12
  import {RiskId} from "../type/RiskId.sol";
13
13
  import {StateId} from "../type/StateId.sol";
@@ -195,6 +195,16 @@ contract InstanceStore is
195
195
  _updateState(_toNftKey32(policyNftId, POLICY()), newState);
196
196
  }
197
197
 
198
+
199
+ //--- Premium (Policy) ----------------------------------------------//
200
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
201
+ _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
202
+ }
203
+
204
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
205
+ _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
206
+ }
207
+
198
208
  //--- Claim -------------------------------------------------------------//
199
209
  function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
200
210
  _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
@@ -0,0 +1,119 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IPolicy} from "../instance/module/IPolicy.sol";
5
+ import {Key32} from "../type/Key32.sol";
6
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {RiskIdLib, RiskId} from "../type/RiskId.sol";
9
+
10
+ import {ObjectSet} from "./base/ObjectSet.sol";
11
+
12
+ contract RiskSet is
13
+ ObjectSet
14
+ {
15
+ using LibNftIdSet for LibNftIdSet.Set;
16
+
17
+ event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
18
+ event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
19
+
20
+ event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
21
+ event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
22
+ event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
23
+ event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
24
+
25
+ error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
26
+ error ErrorRiskSetRiskUnknown(RiskId riskId);
27
+ error ErrorRiskSetRiskNotRegistered(RiskId riskId);
28
+
29
+ mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
30
+
31
+ /// @dev links a policy to its bundle
32
+ function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
33
+
34
+ // ensure risk is active (in active set) and registered with this instance
35
+ if (!_isActive(productNftId, riskId.toKey32())) {
36
+ revert ErrorRiskSetRiskLocked(riskId, policyNftId);
37
+ }
38
+
39
+ _activePolicies[riskId].add(policyNftId);
40
+ emit LogRiskSetPolicyLinked(riskId, policyNftId);
41
+ }
42
+
43
+ /// @dev Unlinks a policy from its risk.
44
+ function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
45
+
46
+ // ensure risk is registered with this instance
47
+ if (!_contains(productNftId, riskId.toKey32())) {
48
+ revert ErrorRiskSetRiskUnknown(riskId);
49
+ }
50
+
51
+ _activePolicies[riskId].remove(policyNftId);
52
+ emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
53
+ }
54
+
55
+ /// @dev add a new risk to a product registered with this instance
56
+ // the corresponding product is fetched via instance reader
57
+ function add(RiskId riskId) external restricted() {
58
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
59
+
60
+ // ensure product is registered with instance
61
+ if(productNftId.eqz()) {
62
+ revert ErrorRiskSetRiskNotRegistered(riskId);
63
+ }
64
+
65
+ _add(productNftId, riskId.toKey32());
66
+ emit LogRiskSetRiskAdded(productNftId, riskId);
67
+ }
68
+
69
+ /// @dev Applications linked to active risks may be underwritten
70
+ function activate(RiskId riskId) external restricted() {
71
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
72
+ _activate(productNftId, riskId.toKey32());
73
+ emit LogRiskSetRiskActive(productNftId, riskId);
74
+ }
75
+
76
+ /// @dev Applications linked to paused/archived risks may not be underwritten
77
+ function pause(RiskId riskId) external restricted() {
78
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
79
+ _deactivate(productNftId, riskId.toKey32());
80
+ emit LogRiskSetRiskPaused(productNftId, riskId);
81
+ }
82
+
83
+ function checkRisk(NftId productNftId, RiskId riskId)
84
+ public
85
+ view
86
+ returns (bool exists, bool active)
87
+ {
88
+ Key32 riskKey32 = riskId.toKey32();
89
+ exists = _contains(productNftId, riskKey32);
90
+
91
+ if (exists) {
92
+ active = _isActive(productNftId, riskKey32);
93
+ }
94
+ }
95
+
96
+ function risks(NftId productNftId) external view returns(uint256) {
97
+ return _objects(productNftId);
98
+ }
99
+
100
+ function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
101
+ return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
102
+ }
103
+
104
+ function activeRisks(NftId productNftId) external view returns(uint256) {
105
+ return _activeObjs(productNftId);
106
+ }
107
+
108
+ function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
109
+ return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
110
+ }
111
+
112
+ function linkedPolicies(RiskId riskId) external view returns(uint256) {
113
+ return _activePolicies[riskId].size();
114
+ }
115
+
116
+ function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
117
+ return _activePolicies[riskId].getElementAt(idx);
118
+ }
119
+ }
@@ -11,9 +11,8 @@ contract ObjectCounter {
11
11
  // TODO refactor risk id
12
12
  // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
13
 
14
- uint256 private _requestCounter;
14
+ uint256 private _requestCounter = 0;
15
15
 
16
- // TODO introduce RequestId (uint64)
17
16
  function _createNextRequestId() internal returns (RequestId requestId) {
18
17
  _requestCounter++;
19
18
  requestId = RequestIdLib.toRequestId(_requestCounter);
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
7
  import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
9
9
 
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
23
23
  _setupBundleLifecycle();
24
24
  _setupComponentLifecycle();
25
25
  _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
26
27
  _setupClaimLifecycle();
27
28
  _setupPayoutLifecycle();
28
29
  _setupRiskLifecycle();
@@ -57,6 +58,11 @@ contract ObjectLifecycle is
57
58
  setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
58
59
  }
59
60
 
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
64
+ }
65
+
60
66
  function _setupClaimLifecycle() private {
61
67
  setInitialState(CLAIM(), SUBMITTED());
62
68
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
@@ -4,22 +4,21 @@ pragma solidity ^0.8.20;
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
6
6
  import {IInstance} from "../IInstance.sol";
7
- import {INSTANCE} from "../../type/ObjectType.sol";
8
- import {InstanceReader} from "../InstanceReader.sol";
9
- import {IRegistry} from "../../registry/IRegistry.sol";
10
- import {LibNftIdSet} from "../../type/NftIdSet.sol";
7
+ import {LibKey32Set} from "../../type/Key32Set.sol";
11
8
  import {NftId} from "../../type/NftId.sol";
9
+ import {Key32} from "../../type/Key32.sol";
12
10
 
13
11
  contract ObjectSet is
14
12
  Cloneable
15
13
  {
14
+ using LibKey32Set for LibKey32Set.Set;
16
15
 
17
16
  event LogObjectSetInitialized(address instance);
18
17
 
19
18
  error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
20
19
 
21
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
22
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
20
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
21
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
23
22
  IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
24
23
 
25
24
  /// @dev This initializer needs to be called from the instance itself.
@@ -37,43 +36,43 @@ contract ObjectSet is
37
36
  return _instance;
38
37
  }
39
38
 
40
- function _add(NftId componentNftId, NftId objectNftId) internal {
41
- LibNftIdSet.Set storage allSet = _allObjects[componentNftId];
42
- LibNftIdSet.Set storage activeSet = _activeObjects[componentNftId];
39
+ function _add(NftId componentNftId, Key32 key) internal {
40
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
41
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
43
42
 
44
- LibNftIdSet.add(allSet, objectNftId);
45
- LibNftIdSet.add(activeSet, objectNftId);
43
+ allSet.add(key);
44
+ activeSet.add(key);
46
45
  }
47
46
 
48
- function _activate(NftId componentNftId, NftId objectNftId) internal {
49
- LibNftIdSet.add(_activeObjects[componentNftId], objectNftId);
47
+ function _activate(NftId componentNftId, Key32 key) internal {
48
+ _activeObjects[componentNftId].add(key);
50
49
  }
51
50
 
52
- function _deactivate(NftId componentNftId, NftId objectNftId) internal {
53
- LibNftIdSet.remove(_activeObjects[componentNftId], objectNftId);
51
+ function _deactivate(NftId componentNftId, Key32 key) internal {
52
+ _activeObjects[componentNftId].remove(key);
54
53
  }
55
54
 
56
55
  function _objects(NftId componentNftId) internal view returns (uint256) {
57
- return LibNftIdSet.size(_allObjects[componentNftId]);
56
+ return _allObjects[componentNftId].size();
58
57
  }
59
58
 
60
- function _contains(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
61
- return LibNftIdSet.contains(_allObjects[componentNftId], objectNftId);
59
+ function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
60
+ return _allObjects[componentNftId].contains(key);
62
61
  }
63
62
 
64
- function _getObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
65
- return LibNftIdSet.getElementAt(_allObjects[componentNftId], idx);
63
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
64
+ return _allObjects[componentNftId].getElementAt(idx);
66
65
  }
67
66
 
68
67
  function _activeObjs(NftId componentNftId) internal view returns (uint256) {
69
- return LibNftIdSet.size(_activeObjects[componentNftId]);
68
+ return _activeObjects[componentNftId].size();
70
69
  }
71
70
 
72
- function _isActive(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
73
- return LibNftIdSet.contains(_activeObjects[componentNftId], objectNftId);
71
+ function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
72
+ return _activeObjects[componentNftId].contains(key);
74
73
  }
75
74
 
76
- function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
77
- return LibNftIdSet.getElementAt(_activeObjects[componentNftId], idx);
75
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
76
+ return _activeObjects[componentNftId].getElementAt(idx);
78
77
  }
79
78
  }