@etherisc/gif-next 0.0.2-b1fff40-773 → 0.0.2-b2070b1-995

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 (591) hide show
  1. package/README.md +109 -9
  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/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  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 +183 -487
  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 +102 -387
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +209 -133
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -191
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  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/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2609 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  81. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  82. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  85. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1799 -789
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +960 -1163
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  116. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  118. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  120. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  125. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  126. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -355
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +424 -37
  131. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -133
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -323
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -438
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +502 -364
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +194 -114
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +340 -112
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -236
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  156. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  157. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -416
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -106
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +272 -431
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -226
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  187. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -108
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  198. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  199. package/artifacts/contracts/product/Product.sol/Product.json +264 -423
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  211. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  212. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  214. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  216. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  218. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  219. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  220. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  222. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  224. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  225. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  226. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  228. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  230. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  232. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  233. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  234. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  236. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  238. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +183 -133
  240. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  248. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  250. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  252. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -133
  254. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +79 -6
  256. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  257. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  258. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  260. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  262. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  264. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  267. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  268. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  269. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  270. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -322
  271. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  272. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +85 -7
  273. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  274. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  275. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  277. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  279. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  280. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  281. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  283. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  284. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  285. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  291. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  292. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  293. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1510 -191
  295. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  297. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  298. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  299. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  300. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -455
  301. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  302. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  303. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  305. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  307. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  308. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  309. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  310. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  311. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  312. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  313. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  314. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  315. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  316. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  317. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  318. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  320. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  322. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  324. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  326. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  328. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  330. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  332. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  333. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  334. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  336. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  337. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  338. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  340. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  342. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  344. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  346. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  347. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  348. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  350. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  352. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +112 -2
  354. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  356. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  358. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  360. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  362. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +56 -5
  364. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  366. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  368. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  370. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  371. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  372. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  373. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  374. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  375. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  376. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  378. package/contracts/accounting/AccountingService.sol +274 -0
  379. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  380. package/contracts/accounting/IAccountingService.sol +47 -0
  381. package/contracts/authorization/AccessAdmin.sol +458 -269
  382. package/contracts/authorization/AccessAdminLib.sol +396 -0
  383. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  384. package/contracts/authorization/Authorization.sol +159 -208
  385. package/contracts/authorization/IAccess.sol +25 -6
  386. package/contracts/authorization/IAccessAdmin.sol +87 -79
  387. package/contracts/authorization/IAuthorization.sol +9 -37
  388. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  389. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  390. package/contracts/distribution/BasicDistribution.sol +22 -30
  391. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  392. package/contracts/distribution/Distribution.sol +44 -98
  393. package/contracts/distribution/DistributionService.sol +243 -132
  394. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  395. package/contracts/distribution/IDistributionComponent.sol +4 -11
  396. package/contracts/distribution/IDistributionService.sol +47 -29
  397. package/contracts/examples/fire/DamageLevel.sol +59 -0
  398. package/contracts/examples/fire/FirePool.sol +86 -0
  399. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  400. package/contracts/examples/fire/FireProduct.sol +433 -0
  401. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  402. package/contracts/examples/fire/FireUSD.sol +26 -0
  403. package/contracts/examples/flight/FlightOracle.sol +167 -0
  404. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  405. package/contracts/examples/flight/FlightPool.sol +89 -0
  406. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  407. package/contracts/examples/flight/FlightProduct.sol +728 -0
  408. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  409. package/contracts/examples/flight/FlightUSD.sol +26 -0
  410. package/contracts/examples/flight/originalV1.sol +396 -0
  411. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  412. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  413. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  414. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  415. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  416. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  417. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  418. package/contracts/instance/BaseStore.sol +93 -0
  419. package/contracts/instance/BundleSet.sol +42 -38
  420. package/contracts/instance/IBaseStore.sol +37 -0
  421. package/contracts/instance/IInstance.sol +113 -43
  422. package/contracts/instance/IInstanceService.sol +61 -34
  423. package/contracts/instance/Instance.sol +201 -104
  424. package/contracts/instance/InstanceAdmin.sol +275 -162
  425. package/contracts/instance/InstanceAuthorizationV3.sol +142 -71
  426. package/contracts/instance/InstanceReader.sol +502 -251
  427. package/contracts/instance/InstanceService.sol +333 -262
  428. package/contracts/instance/InstanceServiceManager.sol +6 -7
  429. package/contracts/instance/InstanceStore.sol +27 -36
  430. package/contracts/instance/ProductStore.sol +119 -0
  431. package/contracts/instance/RiskSet.sol +126 -0
  432. package/contracts/instance/TargetNames.sol +10 -0
  433. package/contracts/instance/base/BalanceStore.sol +4 -6
  434. package/contracts/instance/base/ObjectCounter.sol +1 -2
  435. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  436. package/contracts/instance/base/ObjectSet.sol +31 -33
  437. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  438. package/contracts/instance/module/IBundle.sol +6 -5
  439. package/contracts/instance/module/IComponents.sol +30 -19
  440. package/contracts/instance/module/IDistribution.sol +21 -8
  441. package/contracts/instance/module/IPolicy.sol +50 -29
  442. package/contracts/instance/module/IRisk.sol +5 -0
  443. package/contracts/mock/Dip.sol +1 -1
  444. package/contracts/oracle/BasicOracle.sol +2 -5
  445. package/contracts/oracle/BasicOracleAuthorization.sol +14 -8
  446. package/contracts/oracle/IOracle.sol +9 -4
  447. package/contracts/oracle/IOracleService.sol +14 -13
  448. package/contracts/oracle/Oracle.sol +11 -27
  449. package/contracts/oracle/OracleService.sol +119 -87
  450. package/contracts/oracle/OracleServiceManager.sol +6 -6
  451. package/contracts/pool/BasicPool.sol +39 -41
  452. package/contracts/pool/BasicPoolAuthorization.sol +39 -13
  453. package/contracts/pool/BundleService.sol +200 -155
  454. package/contracts/pool/BundleServiceManager.sol +6 -6
  455. package/contracts/pool/IBundleService.sol +42 -46
  456. package/contracts/pool/IPoolComponent.sol +19 -15
  457. package/contracts/pool/IPoolService.sol +97 -77
  458. package/contracts/pool/Pool.sol +143 -138
  459. package/contracts/pool/PoolLib.sol +341 -0
  460. package/contracts/pool/PoolService.sol +413 -233
  461. package/contracts/pool/PoolServiceManager.sol +4 -4
  462. package/contracts/product/ApplicationService.sol +144 -47
  463. package/contracts/product/ApplicationServiceManager.sol +4 -4
  464. package/contracts/product/BasicProduct.sol +13 -46
  465. package/contracts/product/BasicProductAuthorization.sol +33 -12
  466. package/contracts/product/ClaimService.sol +394 -185
  467. package/contracts/product/ClaimServiceManager.sol +4 -4
  468. package/contracts/product/IApplicationService.sol +29 -3
  469. package/contracts/product/IClaimService.sol +48 -11
  470. package/contracts/product/IPolicyService.sol +61 -37
  471. package/contracts/product/IPricingService.sol +11 -10
  472. package/contracts/product/IProductComponent.sol +27 -5
  473. package/contracts/product/IRiskService.sol +48 -0
  474. package/contracts/product/PolicyService.sol +445 -276
  475. package/contracts/product/PolicyServiceLib.sol +139 -0
  476. package/contracts/product/PolicyServiceManager.sol +4 -4
  477. package/contracts/product/PricingService.sol +90 -84
  478. package/contracts/product/PricingServiceManager.sol +4 -4
  479. package/contracts/product/Product.sol +201 -100
  480. package/contracts/product/RiskService.sol +190 -0
  481. package/contracts/product/RiskServiceManager.sol +39 -0
  482. package/contracts/registry/ChainNft.sol +72 -40
  483. package/contracts/registry/IRegistry.sol +70 -32
  484. package/contracts/registry/IRegistryService.sol +5 -12
  485. package/contracts/registry/IRelease.sol +29 -0
  486. package/contracts/registry/ITransferInterceptor.sol +1 -2
  487. package/contracts/registry/Registry.sol +367 -207
  488. package/contracts/registry/RegistryAdmin.sol +114 -288
  489. package/contracts/registry/RegistryAuthorization.sol +336 -0
  490. package/contracts/registry/RegistryService.sol +38 -49
  491. package/contracts/registry/RegistryServiceManager.sol +3 -3
  492. package/contracts/registry/ReleaseAdmin.sol +195 -0
  493. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  494. package/contracts/registry/ReleaseRegistry.sol +279 -241
  495. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  496. package/contracts/registry/TokenRegistry.sol +61 -59
  497. package/contracts/shared/Component.sol +70 -136
  498. package/contracts/shared/ComponentService.sol +423 -387
  499. package/contracts/shared/ComponentServiceManager.sol +8 -5
  500. package/contracts/shared/ContractLib.sol +312 -0
  501. package/contracts/shared/IComponent.sol +6 -18
  502. package/contracts/shared/IComponentService.sol +43 -40
  503. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  504. package/contracts/shared/IKeyValueStore.sol +9 -1
  505. package/contracts/shared/ILifecycle.sol +3 -1
  506. package/contracts/shared/INftOwnable.sol +4 -0
  507. package/contracts/shared/IPolicyHolder.sol +12 -22
  508. package/contracts/shared/IRegisterable.sol +22 -1
  509. package/contracts/shared/IService.sol +3 -5
  510. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  511. package/contracts/shared/InstanceLinkedComponent.sol +116 -54
  512. package/contracts/shared/KeyValueStore.sol +4 -4
  513. package/contracts/shared/Lifecycle.sol +15 -4
  514. package/contracts/shared/NftOwnable.sol +33 -11
  515. package/contracts/shared/PolicyHolder.sol +20 -59
  516. package/contracts/shared/Registerable.sol +52 -21
  517. package/contracts/shared/RegistryLinked.sol +9 -14
  518. package/contracts/shared/Service.sol +20 -35
  519. package/contracts/shared/TokenHandler.sol +310 -26
  520. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  521. package/contracts/staking/IStaking.sol +271 -71
  522. package/contracts/staking/IStakingService.sol +45 -78
  523. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  524. package/contracts/staking/Staking.sol +525 -243
  525. package/contracts/staking/StakingLib.sol +195 -0
  526. package/contracts/staking/StakingManager.sol +12 -9
  527. package/contracts/staking/StakingReader.sol +70 -82
  528. package/contracts/staking/StakingService.sol +62 -152
  529. package/contracts/staking/StakingServiceManager.sol +7 -5
  530. package/contracts/staking/StakingStore.sol +1093 -330
  531. package/contracts/staking/TargetHandler.sol +132 -0
  532. package/contracts/staking/TargetManagerLib.sol +73 -46
  533. package/contracts/type/Amount.sol +19 -0
  534. package/contracts/type/Blocknumber.sol +22 -16
  535. package/contracts/type/ChainId.sol +101 -0
  536. package/contracts/type/ClaimId.sol +6 -1
  537. package/contracts/type/Fee.sol +8 -8
  538. package/contracts/type/Key32.sol +2 -2
  539. package/contracts/type/Key32Set.sol +62 -0
  540. package/contracts/type/NftId.sol +7 -0
  541. package/contracts/type/ObjectType.sol +74 -67
  542. package/contracts/type/PayoutId.sol +10 -10
  543. package/contracts/type/Referral.sol +6 -0
  544. package/contracts/type/RequestIdSet.sol +62 -0
  545. package/contracts/type/RiskId.sol +38 -6
  546. package/contracts/type/RoleId.sol +61 -55
  547. package/contracts/type/Seconds.sol +44 -1
  548. package/contracts/type/Selector.sol +5 -0
  549. package/contracts/type/StateId.sol +15 -1
  550. package/contracts/type/String.sol +42 -0
  551. package/contracts/type/Timestamp.sol +24 -8
  552. package/contracts/type/UFixed.sol +38 -126
  553. package/contracts/type/Version.sol +54 -5
  554. package/contracts/upgradeability/IVersionable.sol +3 -0
  555. package/contracts/upgradeability/ProxyManager.sol +93 -45
  556. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  557. package/contracts/upgradeability/Versionable.sol +8 -5
  558. package/package.json +5 -4
  559. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  560. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  561. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  562. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  563. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  565. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  566. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  567. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  568. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  569. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  571. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  572. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  573. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  574. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  575. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  576. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  577. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  578. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  579. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  580. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  581. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  582. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  583. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  584. package/contracts/instance/module/IAccess.sol +0 -46
  585. package/contracts/product/IProductService.sol +0 -33
  586. package/contracts/product/ProductService.sol +0 -99
  587. package/contracts/product/ProductServiceManager.sol +0 -39
  588. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  589. package/contracts/shared/InitializableCustom.sol +0 -177
  590. package/contracts/staking/StakeManagerLib.sol +0 -231
  591. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -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(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
25
24
  data,
26
25
  salt);
27
26
 
@@ -3,30 +3,28 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
+ import {IBundle} from "./module/IBundle.sol";
7
+ import {IComponents} from "./module/IComponents.sol";
8
+ import {IDistribution} from "./module/IDistribution.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IPolicy} from "./module/IPolicy.sol";
11
+ import {IOracle} from "../oracle/IOracle.sol";
12
+ import {IRisk} from "./module/IRisk.sol";
13
+
6
14
  import {Amount} from "../type/Amount.sol";
7
15
  import {Key32} from "../type/Key32.sol";
8
16
  import {NftId} from "../type/NftId.sol";
9
17
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
18
+ import {ObjectType, BUNDLE, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
11
19
  import {RequestId} from "../type/RequestId.sol";
12
20
  import {RiskId} from "../type/RiskId.sol";
13
- import {StateId} from "../type/StateId.sol";
21
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
14
22
  import {ReferralId} from "../type/Referral.sol";
15
23
  import {DistributorType} from "../type/DistributorType.sol";
16
24
  import {PayoutId} from "../type/PayoutId.sol";
17
-
18
25
  import {BalanceStore} from "./base/BalanceStore.sol";
19
- import {IInstance} from "./IInstance.sol";
20
26
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
27
  import {ObjectCounter} from "./base/ObjectCounter.sol";
22
-
23
- import {IBundle} from "./module/IBundle.sol";
24
- import {IComponents} from "./module/IComponents.sol";
25
- import {IDistribution} from "./module/IDistribution.sol";
26
- import {IPolicy} from "./module/IPolicy.sol";
27
- import {IOracle} from "../oracle/IOracle.sol";
28
- import {IRisk} from "./module/IRisk.sol";
29
-
30
28
  import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
31
29
 
32
30
 
@@ -85,6 +83,17 @@ contract InstanceStore is
85
83
  _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
84
  }
87
85
 
86
+
87
+ //--- Fee -----------------------------------------------------------//
88
+ function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
89
+ _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
90
+ }
91
+
92
+ // Fee only has one state, so no change change possible
93
+ function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
94
+ _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
95
+ }
96
+
88
97
  //--- Pool --------------------------------------------------------------//
89
98
 
90
99
  function createPool(
@@ -167,32 +176,14 @@ contract InstanceStore is
167
176
  function updateRiskState(RiskId riskId, StateId newState) external restricted() {
168
177
  _updateState(riskId.toKey32(), newState);
169
178
  }
170
-
171
- //--- Application (Policy) ----------------------------------------------//
172
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
173
- _registerBalanceTarget(applicationNftId);
174
- _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
175
- }
176
-
177
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
178
- _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
179
- }
180
-
181
- function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
182
- _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
183
- }
184
-
185
- //--- Policy ------------------------------------------------------------//
186
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
187
- _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
188
- }
189
-
190
- function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
191
- _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
179
+
180
+ //--- Premium (Policy) ----------------------------------------------//
181
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
182
+ _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
192
183
  }
193
184
 
194
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
195
- _updateState(_toNftKey32(policyNftId, POLICY()), newState);
185
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
186
+ _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
196
187
  }
197
188
 
198
189
  //--- Claim -------------------------------------------------------------//
@@ -0,0 +1,119 @@
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 {IInstance} from "./IInstance.sol";
7
+ import {IPolicy} from "./module/IPolicy.sol";
8
+
9
+ import {BalanceStore} from "./base/BalanceStore.sol";
10
+ import {BaseStore} from "./BaseStore.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
12
+ import {ClaimId} from "../type/ClaimId.sol";
13
+ import {Key32} from "../type/Key32.sol";
14
+ import {NftId} from "../type/NftId.sol";
15
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
16
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
17
+ import {ObjectType, POLICY} from "../type/ObjectType.sol";
18
+ import {PayoutId} from "../type/PayoutId.sol";
19
+ import {StateId} from "../type/StateId.sol";
20
+
21
+
22
+ contract ProductStore is
23
+ AccessManagedUpgradeable,
24
+ BalanceStore,
25
+ BaseStore,
26
+ ObjectCounter,
27
+ ObjectLifecycle
28
+ {
29
+ event LogProductStorePolicyInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
30
+ event LogProductStorePolicyInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
31
+
32
+ mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
33
+
34
+
35
+ /// @dev This initializer needs to be called from the instance itself.
36
+ function initialize()
37
+ public
38
+ initializer()
39
+ {
40
+ address instance = msg.sender;
41
+ address authority = IInstance(instance).authority();
42
+
43
+ __AccessManaged_init(authority);
44
+ // double initialization, safe
45
+ _initializeLifecycle();
46
+ }
47
+
48
+
49
+ //--- Application (Policy) ----------------------------------------------//
50
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
51
+ _registerBalanceTarget(applicationNftId);
52
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
53
+ _createMetadata(key);
54
+ _policies[key] = policy;
55
+ // solhint-disable-next-line avoid-tx-origin
56
+ emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
57
+ }
58
+
59
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
60
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
61
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
62
+ StateId oldState = getState(key);
63
+ _policies[key] = policy;
64
+ // solhint-disable-next-line avoid-tx-origin
65
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
66
+ }
67
+
68
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
69
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
70
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
71
+ StateId oldState = getState(key);
72
+ // solhint-disable-next-line avoid-tx-origin
73
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
74
+ }
75
+
76
+ //--- Policy ------------------------------------------------------------//
77
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
78
+ Key32 key = _toNftKey32(policyNftId, POLICY());
79
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
80
+ StateId oldState = getState(key);
81
+ _policies[key] = policy;
82
+ // solhint-disable-next-line avoid-tx-origin
83
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
84
+ }
85
+
86
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
87
+ Key32 key = _toNftKey32(policyNftId, POLICY());
88
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
89
+ StateId oldState = getState(key);
90
+ _policies[key] = policy;
91
+ // solhint-disable-next-line avoid-tx-origin
92
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
93
+ }
94
+
95
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
96
+ Key32 key = _toNftKey32(policyNftId, POLICY());
97
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
98
+ StateId oldState = getState(key);
99
+ // solhint-disable-next-line avoid-tx-origin
100
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
101
+ }
102
+
103
+ function getPolicy(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
104
+ return _policies[_toNftKey32(policyNftId, POLICY())];
105
+ }
106
+
107
+ //--- internal view/pure functions --------------------------------------//
108
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
109
+ return nftId.toKey32(objectType);
110
+ }
111
+
112
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
113
+ return claimId.toKey32(policyNftId);
114
+ }
115
+
116
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
117
+ return payoutId.toKey32(policyNftId);
118
+ }
119
+ }
@@ -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 {
@@ -54,28 +52,32 @@ contract ObjectLifecycle is
54
52
  setStateTransition(POLICY(), APPLIED(), REVOKED());
55
53
  setStateTransition(POLICY(), APPLIED(), DECLINED());
56
54
  setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
57
- setStateTransition(POLICY(), APPLIED(), ACTIVE());
58
- setStateTransition(POLICY(), COLLATERALIZED(), ACTIVE());
59
- setStateTransition(POLICY(), ACTIVE(), CLOSED());
55
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
56
+ }
57
+
58
+ function _setupPremiumLifecycle() private {
59
+ setInitialState(PREMIUM(), EXPECTED());
60
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
60
61
  }
61
62
 
62
63
  function _setupClaimLifecycle() private {
63
64
  setInitialState(CLAIM(), SUBMITTED());
65
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
64
66
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
65
67
  setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
66
68
  setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
69
+ setStateTransition(CLAIM(), CONFIRMED(), CANCELLED());
67
70
  }
68
71
 
69
72
  function _setupPayoutLifecycle() private {
70
73
  setInitialState(PAYOUT(), EXPECTED());
71
74
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
75
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
72
76
  }
73
77
 
74
78
  function _setupRiskLifecycle() private {
75
79
  setInitialState(RISK(), ACTIVE());
76
- setStateTransition(RISK(), ACTIVE(), PAUSED());
77
- setStateTransition(RISK(), PAUSED(), ACTIVE());
78
- setStateTransition(RISK(), PAUSED(), ARCHIVED());
80
+ setStateTransition(RISK(), ACTIVE(), CLOSED());
79
81
  }
80
82
 
81
83
  function _setupRequestLifecycle() private {
@@ -94,6 +96,7 @@ contract ObjectLifecycle is
94
96
  // dummy lifecycle only
95
97
  function _setUpProductLifecycle() private {
96
98
  setInitialState(PRODUCT(), ACTIVE());
99
+ setInitialState(FEE(), ACTIVE());
97
100
  }
98
101
 
99
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
  }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../module/IBundle.sol";
5
+ import {IInstance} from "../IInstance.sol";
6
+ import {IRisk} from "../module/IRisk.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+
10
+
11
+ library ObjectSetHelperLib {
12
+
13
+ function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
14
+
15
+ return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
16
+ }
17
+
18
+ function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
19
+ return getRiskInfo(instanceAddress, riskId).productNftId;
20
+ }
21
+
22
+ function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
23
+ return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
24
+ }
25
+
26
+ function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
27
+ return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
28
+ }
29
+
30
+ }