@etherisc/gif-next 0.0.2-ff1bf36-818 → 0.0.2-ff3a8a0-504

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 (547) hide show
  1. package/README.md +91 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +408 -104
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  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 +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +196 -441
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -325
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +682 -375
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +218 -130
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -160
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +478 -108
  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 +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1439 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1635 -804
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1275 -1690
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +148 -317
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +116 -109
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +124 -269
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +173 -326
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +352 -380
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +174 -126
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -121
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +154 -158
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +500 -269
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -308
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +723 -515
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +218 -110
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +357 -173
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +165 -97
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +305 -389
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -253
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +335 -19
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +300 -64
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -202
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +286 -21
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +428 -287
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +193 -121
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +278 -362
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +364 -186
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +166 -94
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Component.sol/Component.json +100 -227
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +496 -625
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -109
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +123 -268
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1512 -167
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  276. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1646 -402
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +193 -107
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  292. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  301. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  355. package/contracts/accounting/AccountingService.sol +274 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +47 -0
  358. package/contracts/authorization/AccessAdmin.sol +458 -269
  359. package/contracts/authorization/AccessAdminLib.sol +396 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  361. package/contracts/authorization/Authorization.sol +159 -207
  362. package/contracts/authorization/IAccess.sol +25 -6
  363. package/contracts/authorization/IAccessAdmin.sol +87 -79
  364. package/contracts/authorization/IAuthorization.sol +9 -37
  365. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  366. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  367. package/contracts/distribution/BasicDistribution.sol +20 -17
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  369. package/contracts/distribution/Distribution.sol +44 -92
  370. package/contracts/distribution/DistributionService.sol +243 -117
  371. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  372. package/contracts/distribution/IDistributionComponent.sol +4 -11
  373. package/contracts/distribution/IDistributionService.sol +46 -26
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +86 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +433 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BaseStore.sol +93 -0
  388. package/contracts/instance/BundleSet.sol +42 -38
  389. package/contracts/instance/IBaseStore.sol +37 -0
  390. package/contracts/instance/IInstance.sol +111 -18
  391. package/contracts/instance/IInstanceService.sol +61 -34
  392. package/contracts/instance/Instance.sol +197 -75
  393. package/contracts/instance/InstanceAdmin.sol +276 -182
  394. package/contracts/instance/InstanceAuthorizationV3.sol +152 -81
  395. package/contracts/instance/InstanceReader.sol +463 -257
  396. package/contracts/instance/InstanceService.sol +320 -273
  397. package/contracts/instance/InstanceServiceManager.sol +6 -7
  398. package/contracts/instance/InstanceStore.sol +165 -107
  399. package/contracts/instance/ProductStore.sol +303 -0
  400. package/contracts/instance/RiskSet.sol +126 -0
  401. package/contracts/instance/TargetNames.sol +10 -0
  402. package/contracts/instance/base/BalanceStore.sol +4 -6
  403. package/contracts/instance/base/ObjectCounter.sol +1 -2
  404. package/contracts/instance/base/ObjectLifecycle.sol +12 -8
  405. package/contracts/instance/base/ObjectSet.sol +31 -33
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +29 -13
  409. package/contracts/instance/module/IDistribution.sol +21 -8
  410. package/contracts/instance/module/IPolicy.sol +49 -28
  411. package/contracts/instance/module/IRisk.sol +5 -0
  412. package/contracts/oracle/BasicOracle.sol +2 -5
  413. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  414. package/contracts/oracle/IOracle.sol +9 -4
  415. package/contracts/oracle/IOracleService.sol +2 -1
  416. package/contracts/oracle/Oracle.sol +9 -21
  417. package/contracts/oracle/OracleService.sol +119 -87
  418. package/contracts/oracle/OracleServiceManager.sol +6 -6
  419. package/contracts/pool/BasicPool.sol +34 -38
  420. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  421. package/contracts/pool/BundleService.sol +117 -167
  422. package/contracts/pool/BundleServiceManager.sol +6 -6
  423. package/contracts/pool/IBundleService.sol +28 -46
  424. package/contracts/pool/IPoolComponent.sol +19 -15
  425. package/contracts/pool/IPoolService.sol +80 -73
  426. package/contracts/pool/Pool.sol +142 -137
  427. package/contracts/pool/PoolLib.sol +341 -0
  428. package/contracts/pool/PoolService.sol +361 -288
  429. package/contracts/pool/PoolServiceManager.sol +4 -4
  430. package/contracts/product/ApplicationService.sol +113 -36
  431. package/contracts/product/ApplicationServiceManager.sol +4 -4
  432. package/contracts/product/BasicProduct.sol +11 -14
  433. package/contracts/product/BasicProductAuthorization.sol +32 -12
  434. package/contracts/product/ClaimService.sol +391 -181
  435. package/contracts/product/ClaimServiceManager.sol +4 -4
  436. package/contracts/product/IApplicationService.sol +28 -3
  437. package/contracts/product/IClaimService.sol +47 -11
  438. package/contracts/product/IPolicyService.sol +47 -29
  439. package/contracts/product/IPricingService.sol +11 -10
  440. package/contracts/product/IProductComponent.sol +27 -5
  441. package/contracts/product/IRiskService.sol +25 -10
  442. package/contracts/product/PolicyService.sol +379 -318
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +4 -4
  445. package/contracts/product/PricingService.sol +85 -83
  446. package/contracts/product/PricingServiceManager.sol +4 -4
  447. package/contracts/product/Product.sol +177 -94
  448. package/contracts/product/RiskService.sol +132 -40
  449. package/contracts/product/RiskServiceManager.sol +4 -4
  450. package/contracts/registry/ChainNft.sol +72 -40
  451. package/contracts/registry/IRegistry.sol +70 -32
  452. package/contracts/registry/IRegistryService.sol +5 -12
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +367 -207
  456. package/contracts/registry/RegistryAdmin.sol +114 -297
  457. package/contracts/registry/RegistryAuthorization.sol +336 -0
  458. package/contracts/registry/RegistryService.sol +38 -49
  459. package/contracts/registry/RegistryServiceManager.sol +3 -3
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  462. package/contracts/registry/ReleaseRegistry.sol +279 -239
  463. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  464. package/contracts/registry/TokenRegistry.sol +61 -59
  465. package/contracts/shared/Component.sol +69 -123
  466. package/contracts/shared/ComponentService.sol +429 -379
  467. package/contracts/shared/ComponentServiceManager.sol +8 -5
  468. package/contracts/shared/ContractLib.sol +312 -0
  469. package/contracts/shared/IComponent.sol +6 -18
  470. package/contracts/shared/IComponentService.sol +43 -40
  471. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  472. package/contracts/shared/ILifecycle.sol +3 -1
  473. package/contracts/shared/INftOwnable.sol +4 -0
  474. package/contracts/shared/IPolicyHolder.sol +12 -22
  475. package/contracts/shared/IRegisterable.sol +22 -1
  476. package/contracts/shared/IService.sol +3 -5
  477. package/contracts/shared/InitializableERC165.sol +10 -2
  478. package/contracts/shared/InstanceLinkedComponent.sol +73 -51
  479. package/contracts/shared/Lifecycle.sol +15 -4
  480. package/contracts/shared/NftOwnable.sol +31 -9
  481. package/contracts/shared/PolicyHolder.sol +18 -54
  482. package/contracts/shared/Registerable.sol +52 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +20 -35
  485. package/contracts/shared/TokenHandler.sol +275 -72
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  487. package/contracts/staking/IStaking.sol +271 -71
  488. package/contracts/staking/IStakingService.sol +45 -78
  489. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  490. package/contracts/staking/Staking.sol +523 -222
  491. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +70 -81
  492. package/contracts/staking/StakingManager.sol +12 -9
  493. package/contracts/staking/StakingReader.sol +70 -82
  494. package/contracts/staking/StakingService.sol +63 -149
  495. package/contracts/staking/StakingServiceManager.sol +7 -5
  496. package/contracts/staking/StakingStore.sol +1093 -330
  497. package/contracts/staking/TargetHandler.sol +132 -0
  498. package/contracts/staking/TargetManagerLib.sol +73 -46
  499. package/contracts/type/Amount.sol +19 -0
  500. package/contracts/type/Blocknumber.sol +15 -15
  501. package/contracts/type/ChainId.sol +101 -0
  502. package/contracts/type/ClaimId.sol +6 -1
  503. package/contracts/type/Fee.sol +8 -8
  504. package/contracts/type/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/type/NftId.sol +7 -0
  507. package/contracts/type/ObjectType.sol +73 -37
  508. package/contracts/type/PayoutId.sol +10 -10
  509. package/contracts/type/RiskId.sol +38 -6
  510. package/contracts/type/RoleId.sol +61 -55
  511. package/contracts/type/Seconds.sol +27 -0
  512. package/contracts/type/Selector.sol +5 -0
  513. package/contracts/type/StateId.sol +15 -1
  514. package/contracts/type/String.sol +12 -0
  515. package/contracts/type/Timestamp.sol +4 -7
  516. package/contracts/type/UFixed.sol +38 -126
  517. package/contracts/type/Version.sol +54 -5
  518. package/contracts/upgradeability/IVersionable.sol +3 -0
  519. package/contracts/upgradeability/ProxyManager.sol +93 -45
  520. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  521. package/contracts/upgradeability/Versionable.sol +8 -5
  522. package/package.json +5 -4
  523. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  524. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  525. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  529. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  530. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  531. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  532. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  533. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  534. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  535. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
  536. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  537. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  538. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  539. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  540. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  541. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  542. package/contracts/instance/module/IAccess.sol +0 -46
  543. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  544. package/contracts/shared/IKeyValueStore.sol +0 -54
  545. package/contracts/shared/InitializableCustom.sol +0 -177
  546. package/contracts/shared/KeyValueStore.sol +0 -131
  547. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,303 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {IComponents} from "./module/IComponents.sol";
7
+ import {IInstance} from "./IInstance.sol";
8
+ import {IPolicy} from "./module/IPolicy.sol";
9
+ import {IRisk} from "./module/IRisk.sol";
10
+
11
+ import {BalanceStore} from "./base/BalanceStore.sol";
12
+ import {BaseStore} from "./BaseStore.sol";
13
+ import {Blocknumber} from "../type/Blocknumber.sol";
14
+ import {ClaimId} from "../type/ClaimId.sol";
15
+ import {Key32} from "../type/Key32.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
18
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
19
+ import {ObjectType, FEE, POLICY, PREMIUM, PRODUCT} from "../type/ObjectType.sol";
20
+ import {PayoutId} from "../type/PayoutId.sol";
21
+ import {RiskId} from "../type/RiskId.sol";
22
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
23
+
24
+
25
+ contract ProductStore is
26
+ AccessManagedUpgradeable,
27
+ BalanceStore,
28
+ BaseStore,
29
+ ObjectCounter,
30
+ ObjectLifecycle
31
+ {
32
+ event LogProductStoreProductInfoCreated(NftId productNftId, StateId state, address createdBy, address txOrigin);
33
+ event LogProductStoreProductInfoUpdated(NftId productNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
34
+ event LogProductStoreFeeInfoCreated(NftId productNftId, StateId state, address createdBy, address txOrigin);
35
+ event LogProductStoreFeeInfoUpdated(NftId productNftId, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
36
+ event LogProductStoreRiskInfoCreated(RiskId riskId, StateId state, address createdBy, address txOrigin);
37
+ event LogProductStoreRiskInfoUpdated(RiskId riskId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
38
+ event LogProductStorePolicyInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
39
+ event LogProductStorePolicyInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
40
+ event LogProductStorePremiumInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
41
+ event LogProductStorePremiumInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
42
+ event LogProductStoreClaimInfoCreated(NftId policyNftId, ClaimId claimId, StateId state, address createdBy, address txOrigin);
43
+ event LogProductStoreClaimInfoUpdated(NftId policyNftId, ClaimId claimId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
44
+ event LogProductStorePayoutInfoCreated(NftId policyNftId, PayoutId payoutId, StateId state, address createdBy, address txOrigin);
45
+ event LogProductStorePayoutInfoUpdated(NftId policyNftId, PayoutId payoutId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
46
+
47
+ mapping(Key32 key32 => IComponents.ProductInfo) private _products;
48
+ mapping(Key32 key32 => IComponents.FeeInfo) private _fees;
49
+ mapping(Key32 key32 => IRisk.RiskInfo) private _risks;
50
+ mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
51
+ mapping(Key32 key32 => IPolicy.PremiumInfo) private _premiums;
52
+ mapping(Key32 key32 => IPolicy.ClaimInfo) private _claims;
53
+ mapping(Key32 key32 => IPolicy.PayoutInfo) private _payouts;
54
+
55
+
56
+ /// @dev This initializer needs to be called from the instance itself.
57
+ function initialize()
58
+ public
59
+ initializer()
60
+ {
61
+ address instance = msg.sender;
62
+ address authority = IInstance(instance).authority();
63
+
64
+ __AccessManaged_init(authority);
65
+ // double initialization, safe
66
+ _initializeLifecycle();
67
+ }
68
+
69
+
70
+ //--- Product -----------------------------------------------------------//
71
+
72
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
73
+ Key32 key = _toNftKey32(productNftId, PRODUCT());
74
+ _createMetadata(key);
75
+ _products[key] = info;
76
+ // solhint-disable-next-line avoid-tx-origin
77
+ emit LogProductStoreProductInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
78
+ }
79
+
80
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
81
+ Key32 key = _toNftKey32(productNftId, PRODUCT());
82
+ StateId oldState = getState(key);
83
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
84
+ _products[key] = info;
85
+ // solhint-disable-next-line avoid-tx-origin
86
+ emit LogProductStoreProductInfoUpdated(productNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
87
+ }
88
+
89
+ function getProductInfo(NftId productNftId) external view returns (IComponents.ProductInfo memory info) {
90
+ return _products[_toNftKey32(productNftId, PRODUCT())];
91
+ }
92
+
93
+ //--- Fee -----------------------------------------------------------//
94
+
95
+ function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
96
+ Key32 key = _toNftKey32(productNftId, FEE());
97
+ _createMetadata(key);
98
+ _fees[key] = info;
99
+ // solhint-disable-next-line avoid-tx-origin
100
+ emit LogProductStoreFeeInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
101
+ }
102
+
103
+ // Fee only has one state, so no change change possible
104
+ function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
105
+ Key32 key = _toNftKey32(productNftId, FEE());
106
+ Blocknumber lastUpdatedIn = _updateState(key, KEEP_STATE());
107
+ _fees[key] = info;
108
+ // solhint-disable-next-line avoid-tx-origin
109
+ emit LogProductStoreFeeInfoUpdated(productNftId, msg.sender, tx.origin, lastUpdatedIn);
110
+ }
111
+
112
+ function getFeeInfo(NftId productNftId) external view returns (IComponents.FeeInfo memory info) {
113
+ return _fees[_toNftKey32(productNftId, FEE())];
114
+ }
115
+
116
+ //--- Risk --------------------------------------------------------------//
117
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory info) external restricted() {
118
+ Key32 key = riskId.toKey32();
119
+ _createMetadata(key);
120
+ _risks[key] = info;
121
+ // solhint-disable-next-line avoid-tx-origin
122
+ emit LogProductStoreRiskInfoCreated(riskId, getState(key), msg.sender, tx.origin);
123
+ }
124
+
125
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory info, StateId newState) external restricted() {
126
+ Key32 key = riskId.toKey32();
127
+ StateId oldState = getState(key);
128
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
129
+ _risks[key] = info;
130
+ // solhint-disable-next-line avoid-tx-origin
131
+ emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
132
+ }
133
+
134
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
135
+ // _updateState(riskId.toKey32(), newState);
136
+ Key32 key = riskId.toKey32();
137
+ StateId oldState = getState(key);
138
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
139
+ // solhint-disable-next-line avoid-tx-origin
140
+ emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
141
+ }
142
+
143
+ function getRiskInfo(RiskId riskId) external view returns (IRisk.RiskInfo memory info) {
144
+ return _risks[riskId.toKey32()];
145
+ }
146
+
147
+ //--- Application (Policy) ----------------------------------------------//
148
+
149
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
150
+ _registerBalanceTarget(applicationNftId);
151
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
152
+ _createMetadata(key);
153
+ _policies[key] = policy;
154
+ // solhint-disable-next-line avoid-tx-origin
155
+ emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
156
+ }
157
+
158
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
159
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
160
+ StateId oldState = getState(key);
161
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
162
+ _policies[key] = policy;
163
+ // solhint-disable-next-line avoid-tx-origin
164
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
165
+ }
166
+
167
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
168
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
169
+ StateId oldState = getState(key);
170
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
171
+ // solhint-disable-next-line avoid-tx-origin
172
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
173
+ }
174
+
175
+ //--- Policy ------------------------------------------------------------//
176
+
177
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
178
+ Key32 key = _toNftKey32(policyNftId, POLICY());
179
+ StateId oldState = getState(key);
180
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
181
+ _policies[key] = policy;
182
+ // solhint-disable-next-line avoid-tx-origin
183
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
184
+ }
185
+
186
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
187
+ Key32 key = _toNftKey32(policyNftId, POLICY());
188
+ StateId oldState = getState(key);
189
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
190
+ _policies[key] = policy;
191
+ // solhint-disable-next-line avoid-tx-origin
192
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
193
+ }
194
+
195
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
196
+ Key32 key = _toNftKey32(policyNftId, POLICY());
197
+ StateId oldState = getState(key);
198
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
199
+ // solhint-disable-next-line avoid-tx-origin
200
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
201
+ }
202
+
203
+ function getPolicyInfo(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
204
+ return _policies[_toNftKey32(policyNftId, POLICY())];
205
+ }
206
+
207
+ //--- Premium (Policy) ----------------------------------------------//
208
+
209
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
210
+ Key32 key = _toNftKey32(policyNftId, PREMIUM());
211
+ _createMetadata(key);
212
+ _premiums[key] = premium;
213
+ // solhint-disable-next-line avoid-tx-origin
214
+ emit LogProductStorePremiumInfoCreated(policyNftId, getState(key), msg.sender, tx.origin);
215
+ }
216
+
217
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
218
+ Key32 key = _toNftKey32(policyNftId, PREMIUM());
219
+ StateId oldState = getState(key);
220
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
221
+ // solhint-disable-next-line avoid-tx-origin
222
+ emit LogProductStorePremiumInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
223
+ }
224
+
225
+ function getPremiumInfo(NftId policyNftId) external view returns (IPolicy.PremiumInfo memory premium) {
226
+ return _premiums[_toNftKey32(policyNftId, PREMIUM())];
227
+ }
228
+
229
+ //--- Claim -------------------------------------------------------------//
230
+
231
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
232
+ Key32 key = _toClaimKey32(policyNftId, claimId);
233
+ _createMetadata(key);
234
+ _claims[key] = claim;
235
+ // solhint-disable-next-line avoid-tx-origin
236
+ emit LogProductStoreClaimInfoCreated(policyNftId, claimId, getState(key), msg.sender, tx.origin);
237
+ }
238
+
239
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
240
+ Key32 key = _toClaimKey32(policyNftId, claimId);
241
+ StateId oldState = getState(key);
242
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
243
+ _claims[key] = claim;
244
+ // solhint-disable-next-line avoid-tx-origin
245
+ emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
246
+ }
247
+
248
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
249
+ Key32 key = _toClaimKey32(policyNftId, claimId);
250
+ StateId oldState = getState(key);
251
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
252
+ // solhint-disable-next-line avoid-tx-origin
253
+ emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
254
+ }
255
+
256
+ function getClaimInfo(NftId policyNftId, ClaimId claimId) external view returns (IPolicy.ClaimInfo memory claim) {
257
+ return _claims[_toClaimKey32(policyNftId, claimId)];
258
+ }
259
+
260
+ //--- Payout ------------------------------------------------------------//
261
+
262
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
263
+ Key32 key = _toPayoutKey32(policyNftId, payoutId);
264
+ _createMetadata(key);
265
+ _payouts[key] = payout;
266
+ // solhint-disable-next-line avoid-tx-origin
267
+ emit LogProductStorePayoutInfoCreated(policyNftId, payoutId, getState(key), msg.sender, tx.origin);
268
+ }
269
+
270
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
271
+ Key32 key = _toPayoutKey32(policyNftId, payoutId);
272
+ StateId oldState = getState(key);
273
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
274
+ _payouts[key] = payout;
275
+ // solhint-disable-next-line avoid-tx-origin
276
+ emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
277
+ }
278
+
279
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
280
+ Key32 key = _toPayoutKey32(policyNftId, payoutId);
281
+ StateId oldState = getState(key);
282
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
283
+ // solhint-disable-next-line avoid-tx-origin
284
+ emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
285
+ }
286
+
287
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId) external view returns (IPolicy.PayoutInfo memory payout) {
288
+ return _payouts[_toPayoutKey32(policyNftId, payoutId)];
289
+ }
290
+
291
+ //--- internal view/pure functions --------------------------------------//
292
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
293
+ return nftId.toKey32(objectType);
294
+ }
295
+
296
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
297
+ return claimId.toKey32(policyNftId);
298
+ }
299
+
300
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
301
+ return payoutId.toKey32(policyNftId);
302
+ }
303
+ }
@@ -0,0 +1,126 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectSet} from "./base/ObjectSet.sol";
8
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
9
+ import {RiskIdLib, RiskId} from "../type/RiskId.sol";
10
+
11
+ /// @dev RiskSet manages the risks and its active policies per product.
12
+ contract RiskSet is
13
+ ObjectSet
14
+ {
15
+
16
+ event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
17
+ event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
18
+
19
+ event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
20
+ event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
21
+ event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
22
+
23
+ error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
24
+ error ErrorRiskSetRiskUnknown(RiskId riskId);
25
+ error ErrorRiskSetRiskNotRegistered(RiskId riskId);
26
+
27
+ mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
28
+
29
+ /// @dev links a policy to its bundle
30
+ function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
31
+
32
+ // ensure risk is active (in active set) and registered with this instance
33
+ if (!_isActive(productNftId, riskId.toKey32())) {
34
+ revert ErrorRiskSetRiskLocked(riskId, policyNftId);
35
+ }
36
+
37
+ LibNftIdSet.add(_activePolicies[riskId], policyNftId);
38
+ emit LogRiskSetPolicyLinked(riskId, policyNftId);
39
+ }
40
+
41
+ /// @dev Unlinks a policy from its risk.
42
+ function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
43
+
44
+ // ensure risk is registered with this instance
45
+ if (!_contains(productNftId, riskId.toKey32())) {
46
+ revert ErrorRiskSetRiskUnknown(riskId);
47
+ }
48
+
49
+ LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
50
+ emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
51
+ }
52
+
53
+ /// @dev add a new risk to a product registered with this instance
54
+ // the corresponding product is fetched via instance reader
55
+ function add(RiskId riskId) external restricted() {
56
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
57
+
58
+ // ensure product is registered with instance
59
+ if(productNftId.eqz()) {
60
+ revert ErrorRiskSetRiskNotRegistered(riskId);
61
+ }
62
+
63
+ _add(productNftId, riskId.toKey32());
64
+ emit LogRiskSetRiskAdded(productNftId, riskId);
65
+ }
66
+
67
+ /// @dev Applications linked to active risks may be underwritten
68
+ function activate(RiskId riskId) external restricted() {
69
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
70
+ _activate(productNftId, riskId.toKey32());
71
+ emit LogRiskSetRiskActive(productNftId, riskId);
72
+ }
73
+
74
+ /// @dev Applications linked to paused/archived risks may not be underwritten
75
+ function deactivate(RiskId riskId) external restricted() {
76
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
77
+ _deactivate(productNftId, riskId.toKey32());
78
+ emit LogRiskSetRiskPaused(productNftId, riskId);
79
+ }
80
+
81
+ function checkRisk(NftId productNftId, RiskId riskId)
82
+ public
83
+ view
84
+ returns (bool exists, bool active)
85
+ {
86
+ Key32 riskKey32 = riskId.toKey32();
87
+ exists = _contains(productNftId, riskKey32);
88
+
89
+ if (exists) {
90
+ active = _isActive(productNftId, riskKey32);
91
+ }
92
+ }
93
+
94
+ function hasRisk(NftId productNftId, RiskId riskId)
95
+ public
96
+ view
97
+ returns (bool)
98
+ {
99
+ Key32 riskKey32 = riskId.toKey32();
100
+ return _contains(productNftId, riskKey32);
101
+ }
102
+
103
+ function risks(NftId productNftId) external view returns(uint256) {
104
+ return _objects(productNftId);
105
+ }
106
+
107
+ function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
108
+ return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
109
+ }
110
+
111
+ function activeRisks(NftId productNftId) external view returns(uint256) {
112
+ return _activeObjs(productNftId);
113
+ }
114
+
115
+ function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
116
+ return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
117
+ }
118
+
119
+ function linkedPolicies(RiskId riskId) external view returns(uint256) {
120
+ return LibNftIdSet.size(_activePolicies[riskId]);
121
+ }
122
+
123
+ function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
125
+ }
126
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ string constant INSTANCE_TARGET_NAME = "Instance";
5
+ string constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
6
+ string constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
7
+ string constant PRODUCT_STORE_TARGET_NAME = "ProductStore";
8
+ string constant BUNDLE_SET_TARGET_NAME = "BundleSet";
9
+ string constant RISK_SET_TARGET_NAME = "RiskSet";
10
+
@@ -24,13 +24,12 @@ contract BalanceStore {
24
24
  mapping(NftId nftId => Amount balance) private _balanceAmount;
25
25
  mapping(NftId nftId => Amount locked) private _lockedAmount;
26
26
  mapping(NftId nftId => Amount fees) private _feeAmount;
27
- mapping(NftId nftId => bool isRegistered) private _isRegistered;
28
27
 
29
- // TODO check if this is made redundant by *Info struct updates
28
+ // used to indicate if the target has been registered as well as when it was last updated (not used externally atm)
30
29
  mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
31
30
 
32
31
  modifier onlyRegisteredTarget(NftId targetNftId) {
33
- if (!_isRegistered[targetNftId]) {
32
+ if (!_lastUpdatedIn[targetNftId].gtz()) {
34
33
  revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
35
34
  }
36
35
  _;
@@ -55,11 +54,10 @@ contract BalanceStore {
55
54
  }
56
55
 
57
56
  function _registerBalanceTarget(NftId targetNftId) internal {
58
- if (_isRegistered[targetNftId]) {
57
+ if (_lastUpdatedIn[targetNftId].gtz()) {
59
58
  revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
60
59
  }
61
60
 
62
- _isRegistered[targetNftId] = true;
63
61
  _setLastUpdatedIn(targetNftId);
64
62
 
65
63
  emit LogBalanceStoreTargetRegistered(targetNftId);
@@ -118,6 +116,6 @@ contract BalanceStore {
118
116
 
119
117
  //--- internal/private functions ----------------------------------------//
120
118
  function _setLastUpdatedIn(NftId targetNftId) internal {
121
- _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
119
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.current();
122
120
  }
123
121
  }
@@ -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, FEE} 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();
@@ -43,10 +44,7 @@ contract ObjectLifecycle is
43
44
 
44
45
  function _setupBundleLifecycle() private {
45
46
  setInitialState(BUNDLE(), ACTIVE());
46
- setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
47
47
  setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
48
- setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
49
- setStateTransition(BUNDLE(), PAUSED(), CLOSED());
50
48
  }
51
49
 
52
50
  function _setupPolicyLifecycle() private {
@@ -57,24 +55,29 @@ contract ObjectLifecycle is
57
55
  setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
58
56
  }
59
57
 
58
+ function _setupPremiumLifecycle() private {
59
+ setInitialState(PREMIUM(), EXPECTED());
60
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
61
+ }
62
+
60
63
  function _setupClaimLifecycle() private {
61
64
  setInitialState(CLAIM(), SUBMITTED());
65
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
62
66
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
63
67
  setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
64
68
  setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
69
+ setStateTransition(CLAIM(), CONFIRMED(), CANCELLED());
65
70
  }
66
71
 
67
72
  function _setupPayoutLifecycle() private {
68
73
  setInitialState(PAYOUT(), EXPECTED());
69
- // TODO: add state cancelled
70
74
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
75
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
71
76
  }
72
77
 
73
78
  function _setupRiskLifecycle() private {
74
79
  setInitialState(RISK(), ACTIVE());
75
- setStateTransition(RISK(), ACTIVE(), PAUSED());
76
- setStateTransition(RISK(), PAUSED(), ACTIVE());
77
- setStateTransition(RISK(), PAUSED(), ARCHIVED());
80
+ setStateTransition(RISK(), ACTIVE(), CLOSED());
78
81
  }
79
82
 
80
83
  function _setupRequestLifecycle() private {
@@ -93,6 +96,7 @@ contract ObjectLifecycle is
93
96
  // dummy lifecycle only
94
97
  function _setUpProductLifecycle() private {
95
98
  setInitialState(PRODUCT(), ACTIVE());
99
+ setInitialState(FEE(), ACTIVE());
96
100
  }
97
101
 
98
102
  // dummy lifecycles only
@@ -3,77 +3,75 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
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";
6
+ import {LibKey32Set} from "../../type/Key32Set.sol";
11
7
  import {NftId} from "../../type/NftId.sol";
8
+ import {Key32} from "../../type/Key32.sol";
12
9
 
13
10
  contract ObjectSet is
14
11
  Cloneable
15
12
  {
13
+ using LibKey32Set for LibKey32Set.Set;
16
14
 
17
15
  event LogObjectSetInitialized(address instance);
18
16
 
19
17
  error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
20
18
 
21
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
22
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
23
- IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
19
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
20
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
21
+ address internal _instanceAddress;
24
22
 
25
23
  /// @dev This initializer needs to be called from the instance itself.
26
- function initialize()
24
+ function initialize(address authority, address registry)
27
25
  external
28
26
  initializer()
29
27
  {
30
- _instance = IInstance(msg.sender);
31
- __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
28
+ _instanceAddress = msg.sender;
29
+ __Cloneable_init(authority, registry);
32
30
 
33
- emit LogObjectSetInitialized(address(_instance));
31
+ emit LogObjectSetInitialized(address(_instanceAddress));
34
32
  }
35
33
 
36
- function getInstance() external view returns (IInstance) {
37
- return _instance;
34
+ function getInstanceAddress() external view returns (address) {
35
+ return _instanceAddress;
38
36
  }
39
37
 
40
- function _add(NftId componentNftId, NftId objectNftId) internal {
41
- LibNftIdSet.Set storage allSet = _allObjects[componentNftId];
42
- LibNftIdSet.Set storage activeSet = _activeObjects[componentNftId];
38
+ function _add(NftId componentNftId, Key32 key) internal {
39
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
40
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
43
41
 
44
- LibNftIdSet.add(allSet, objectNftId);
45
- LibNftIdSet.add(activeSet, objectNftId);
42
+ allSet.add(key);
43
+ activeSet.add(key);
46
44
  }
47
45
 
48
- function _activate(NftId componentNftId, NftId objectNftId) internal {
49
- LibNftIdSet.add(_activeObjects[componentNftId], objectNftId);
46
+ function _activate(NftId componentNftId, Key32 key) internal {
47
+ _activeObjects[componentNftId].add(key);
50
48
  }
51
49
 
52
- function _deactivate(NftId componentNftId, NftId objectNftId) internal {
53
- LibNftIdSet.remove(_activeObjects[componentNftId], objectNftId);
50
+ function _deactivate(NftId componentNftId, Key32 key) internal {
51
+ _activeObjects[componentNftId].remove(key);
54
52
  }
55
53
 
56
54
  function _objects(NftId componentNftId) internal view returns (uint256) {
57
- return LibNftIdSet.size(_allObjects[componentNftId]);
55
+ return _allObjects[componentNftId].size();
58
56
  }
59
57
 
60
- function _contains(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
61
- return LibNftIdSet.contains(_allObjects[componentNftId], objectNftId);
58
+ function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
59
+ return _allObjects[componentNftId].contains(key);
62
60
  }
63
61
 
64
- function _getObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
65
- return LibNftIdSet.getElementAt(_allObjects[componentNftId], idx);
62
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
63
+ return _allObjects[componentNftId].getElementAt(idx);
66
64
  }
67
65
 
68
66
  function _activeObjs(NftId componentNftId) internal view returns (uint256) {
69
- return LibNftIdSet.size(_activeObjects[componentNftId]);
67
+ return _activeObjects[componentNftId].size();
70
68
  }
71
69
 
72
- function _isActive(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
73
- return LibNftIdSet.contains(_activeObjects[componentNftId], objectNftId);
70
+ function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
71
+ return _activeObjects[componentNftId].contains(key);
74
72
  }
75
73
 
76
- function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
77
- return LibNftIdSet.getElementAt(_activeObjects[componentNftId], idx);
74
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
75
+ return _activeObjects[componentNftId].getElementAt(idx);
78
76
  }
79
77
  }