@etherisc/gif-next 0.0.2-ee7cb16-393 → 0.0.2-ef15ccf-423

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 (781) hide show
  1. package/README.md +147 -23
  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 +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +683 -1216
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +748 -141
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +596 -2802
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +775 -409
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +385 -125
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3250 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1852 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  108. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  109. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +414 -370
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +394 -350
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +689 -113
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +351 -226
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +1027 -149
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +327 -322
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +375 -119
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +391 -80
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/Component.sol/Component.json} +350 -98
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +291 -201
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  242. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +139 -40
  244. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  246. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  248. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  250. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  253. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  254. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  256. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  258. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  260. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  261. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +172 -26
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  354. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  358. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  362. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  366. package/contracts/accounting/AccountingService.sol +274 -0
  367. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  368. package/contracts/accounting/IAccountingService.sol +47 -0
  369. package/contracts/authorization/AccessAdmin.sol +780 -0
  370. package/contracts/authorization/AccessAdminLib.sol +396 -0
  371. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  372. package/contracts/authorization/Authorization.sol +169 -0
  373. package/contracts/authorization/IAccess.sol +67 -0
  374. package/contracts/authorization/IAccessAdmin.sol +144 -0
  375. package/contracts/authorization/IAuthorization.sol +26 -0
  376. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  377. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  378. package/contracts/distribution/BasicDistribution.sol +141 -0
  379. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  380. package/contracts/distribution/Distribution.sol +247 -0
  381. package/contracts/distribution/DistributionService.sol +448 -0
  382. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  383. package/contracts/distribution/IDistributionComponent.sol +45 -0
  384. package/contracts/distribution/IDistributionService.sol +115 -0
  385. package/contracts/examples/fire/DamageLevel.sol +59 -0
  386. package/contracts/examples/fire/FirePool.sol +86 -0
  387. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  388. package/contracts/examples/fire/FireProduct.sol +433 -0
  389. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  390. package/contracts/examples/fire/FireUSD.sol +26 -0
  391. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  392. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  393. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  394. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  395. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  396. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  397. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  398. package/contracts/instance/BaseStore.sol +93 -0
  399. package/contracts/instance/BundleSet.sol +130 -0
  400. package/contracts/instance/IBaseStore.sol +37 -0
  401. package/contracts/instance/IInstance.sol +138 -38
  402. package/contracts/instance/IInstanceService.sol +106 -19
  403. package/contracts/instance/Instance.sol +250 -354
  404. package/contracts/instance/InstanceAdmin.sol +379 -0
  405. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  406. package/contracts/instance/InstanceReader.sol +526 -208
  407. package/contracts/instance/InstanceService.sol +465 -196
  408. package/contracts/instance/InstanceServiceManager.sol +14 -32
  409. package/contracts/instance/InstanceStore.sol +259 -0
  410. package/contracts/instance/ProductStore.sol +143 -0
  411. package/contracts/instance/RiskSet.sol +126 -0
  412. package/contracts/instance/TargetNames.sol +10 -0
  413. package/contracts/instance/base/BalanceStore.sol +121 -0
  414. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  415. package/contracts/instance/base/ObjectCounter.sol +20 -0
  416. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  417. package/contracts/instance/base/ObjectSet.sol +77 -0
  418. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  419. package/contracts/instance/module/IBundle.sol +10 -9
  420. package/contracts/instance/module/IComponents.sol +62 -0
  421. package/contracts/instance/module/IDistribution.sol +25 -10
  422. package/contracts/instance/module/IPolicy.sol +81 -21
  423. package/contracts/instance/module/IRisk.sol +6 -1
  424. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  425. package/contracts/oracle/BasicOracle.sol +45 -0
  426. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  427. package/contracts/oracle/IOracle.sol +41 -0
  428. package/contracts/oracle/IOracleComponent.sol +33 -0
  429. package/contracts/oracle/IOracleService.sol +66 -0
  430. package/contracts/oracle/Oracle.sol +154 -0
  431. package/contracts/oracle/OracleService.sol +310 -0
  432. package/contracts/oracle/OracleServiceManager.sol +39 -0
  433. package/contracts/pool/BasicPool.sol +162 -0
  434. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  435. package/contracts/pool/BundleService.sol +386 -0
  436. package/contracts/pool/BundleServiceManager.sol +39 -0
  437. package/contracts/pool/IBundleService.sol +116 -0
  438. package/contracts/pool/IPoolComponent.sol +62 -0
  439. package/contracts/pool/IPoolService.sol +170 -0
  440. package/contracts/pool/Pool.sol +333 -0
  441. package/contracts/pool/PoolLib.sol +341 -0
  442. package/contracts/pool/PoolService.sol +614 -0
  443. package/contracts/pool/PoolServiceManager.sol +39 -0
  444. package/contracts/product/ApplicationService.sol +327 -0
  445. package/contracts/product/ApplicationServiceManager.sol +38 -0
  446. package/contracts/product/BasicProduct.sol +49 -0
  447. package/contracts/product/BasicProductAuthorization.sol +63 -0
  448. package/contracts/product/ClaimService.sol +626 -0
  449. package/contracts/product/ClaimServiceManager.sol +38 -0
  450. package/contracts/product/IApplicationService.sol +88 -0
  451. package/contracts/product/IClaimService.sol +136 -0
  452. package/contracts/product/IPolicyService.sol +102 -0
  453. package/contracts/product/IPricingService.sol +40 -0
  454. package/contracts/product/IProductComponent.sol +62 -0
  455. package/contracts/product/IRiskService.sol +48 -0
  456. package/contracts/product/PolicyService.sol +645 -0
  457. package/contracts/product/PolicyServiceLib.sol +139 -0
  458. package/contracts/product/PolicyServiceManager.sol +39 -0
  459. package/contracts/product/PricingService.sol +306 -0
  460. package/contracts/product/PricingServiceManager.sol +39 -0
  461. package/contracts/product/Product.sol +493 -0
  462. package/contracts/product/RiskService.sol +190 -0
  463. package/contracts/product/RiskServiceManager.sol +39 -0
  464. package/contracts/registry/ChainNft.sol +82 -35
  465. package/contracts/registry/IRegistry.sol +123 -32
  466. package/contracts/registry/IRegistryService.sol +40 -28
  467. package/contracts/registry/IRelease.sol +29 -0
  468. package/contracts/registry/ITransferInterceptor.sol +1 -1
  469. package/contracts/registry/Registry.sol +561 -273
  470. package/contracts/registry/RegistryAdmin.sol +191 -0
  471. package/contracts/registry/RegistryAuthorization.sol +336 -0
  472. package/contracts/registry/RegistryService.sol +116 -233
  473. package/contracts/registry/RegistryServiceManager.sol +26 -53
  474. package/contracts/registry/ReleaseAdmin.sol +195 -0
  475. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  476. package/contracts/registry/ReleaseRegistry.sol +525 -0
  477. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  478. package/contracts/registry/TokenRegistry.sol +265 -59
  479. package/contracts/shared/Component.sol +214 -0
  480. package/contracts/shared/ComponentService.sol +687 -0
  481. package/contracts/shared/ComponentServiceManager.sol +38 -0
  482. package/contracts/shared/ContractLib.sol +312 -0
  483. package/contracts/shared/IComponent.sol +58 -0
  484. package/contracts/shared/IComponentService.sol +111 -0
  485. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  486. package/contracts/{instance/base → shared}/IKeyValueStore.sol +23 -10
  487. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  488. package/contracts/shared/INftOwnable.sol +17 -12
  489. package/contracts/shared/IPolicyHolder.sol +35 -0
  490. package/contracts/shared/IRegisterable.sol +24 -5
  491. package/contracts/shared/IRegistryLinked.sol +11 -0
  492. package/contracts/shared/IService.sol +13 -5
  493. package/contracts/shared/InitializableERC165.sol +35 -0
  494. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  495. package/contracts/shared/KeyValueStore.sol +131 -0
  496. package/contracts/shared/Lifecycle.sol +88 -0
  497. package/contracts/shared/NftIdSet.sol +65 -0
  498. package/contracts/shared/NftOwnable.sol +77 -82
  499. package/contracts/shared/PolicyHolder.sol +63 -0
  500. package/contracts/shared/Registerable.sol +54 -38
  501. package/contracts/shared/RegistryLinked.sol +38 -0
  502. package/contracts/shared/Service.sol +45 -33
  503. package/contracts/shared/TokenHandler.sol +327 -12
  504. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  505. package/contracts/staking/IStaking.sol +367 -0
  506. package/contracts/staking/IStakingService.sol +127 -0
  507. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  508. package/contracts/staking/Staking.sol +798 -0
  509. package/contracts/staking/StakingLib.sol +195 -0
  510. package/contracts/staking/StakingManager.sol +53 -0
  511. package/contracts/staking/StakingReader.sol +171 -0
  512. package/contracts/staking/StakingService.sol +321 -0
  513. package/contracts/staking/StakingServiceManager.sol +46 -0
  514. package/contracts/staking/StakingStore.sol +1368 -0
  515. package/contracts/staking/TargetHandler.sol +132 -0
  516. package/contracts/staking/TargetManagerLib.sol +234 -0
  517. package/contracts/{types → type}/AddressSet.sol +1 -1
  518. package/contracts/type/Amount.sol +154 -0
  519. package/contracts/{types → type}/Blocknumber.sol +36 -12
  520. package/contracts/type/ChainId.sol +101 -0
  521. package/contracts/type/ClaimId.sol +80 -0
  522. package/contracts/{types → type}/DistributorType.sol +2 -2
  523. package/contracts/type/Fee.sol +66 -0
  524. package/contracts/{types → type}/Key32.sol +2 -2
  525. package/contracts/type/Key32Set.sol +62 -0
  526. package/contracts/{types → type}/NftId.sol +28 -15
  527. package/contracts/{types → type}/NftIdSet.sol +2 -2
  528. package/contracts/type/ObjectType.sol +307 -0
  529. package/contracts/type/PayoutId.sol +82 -0
  530. package/contracts/{types → type}/Referral.sol +6 -1
  531. package/contracts/type/RequestId.sol +75 -0
  532. package/contracts/type/RiskId.sol +75 -0
  533. package/contracts/type/RoleId.sol +180 -0
  534. package/contracts/type/Seconds.sol +120 -0
  535. package/contracts/type/Selector.sol +107 -0
  536. package/contracts/{types → type}/StateId.sol +48 -4
  537. package/contracts/type/String.sol +65 -0
  538. package/contracts/{types → type}/Timestamp.sol +36 -20
  539. package/contracts/type/UFixed.sol +263 -0
  540. package/contracts/{types → type}/Version.sol +59 -7
  541. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  542. package/contracts/upgradeability/ProxyManager.sol +246 -0
  543. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  544. package/contracts/upgradeability/Versionable.sol +62 -0
  545. package/package.json +12 -8
  546. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  548. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  549. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  550. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -368
  551. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  552. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  553. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  554. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  555. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  556. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  557. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  558. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  559. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  560. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  561. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  563. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  565. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  567. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  569. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  571. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  573. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  575. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  577. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  579. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  581. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  584. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  586. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  588. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  589. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  590. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  592. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  594. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  596. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  598. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  600. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  601. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  602. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  604. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  605. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  606. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  607. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  608. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  609. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  610. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  611. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  612. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  613. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  614. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  615. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  616. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  617. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  618. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  619. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  620. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  621. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  622. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  623. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  625. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  626. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  629. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  631. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  633. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  635. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  636. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  637. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  638. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  639. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1049
  640. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  641. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -464
  642. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  643. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  644. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  645. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  646. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  647. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  648. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  649. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  650. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  651. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  652. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  653. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  654. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  655. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  656. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  657. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  658. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  659. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  660. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  662. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  664. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  665. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  666. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  667. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  668. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  669. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  670. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  671. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  672. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  673. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  674. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  675. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  676. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  677. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  678. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  680. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  682. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  684. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  686. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  687. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  688. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  690. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  691. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  692. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  694. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  696. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  698. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  700. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  702. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  704. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  706. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  707. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  708. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  709. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  710. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  711. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  712. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  713. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  714. package/contracts/components/BaseComponent.sol +0 -132
  715. package/contracts/components/Distribution.sol +0 -163
  716. package/contracts/components/IBaseComponent.sol +0 -31
  717. package/contracts/components/IDistributionComponent.sol +0 -44
  718. package/contracts/components/IPoolComponent.sol +0 -66
  719. package/contracts/components/IProductComponent.sol +0 -35
  720. package/contracts/components/Pool.sol +0 -267
  721. package/contracts/components/Product.sol +0 -289
  722. package/contracts/experiment/cloning/Cloner.sol +0 -47
  723. package/contracts/experiment/errors/Require.sol +0 -38
  724. package/contracts/experiment/errors/Revert.sol +0 -44
  725. package/contracts/experiment/inheritance/A.sol +0 -53
  726. package/contracts/experiment/inheritance/B.sol +0 -28
  727. package/contracts/experiment/inheritance/C.sol +0 -34
  728. package/contracts/experiment/inheritance/IA.sol +0 -13
  729. package/contracts/experiment/inheritance/IB.sol +0 -10
  730. package/contracts/experiment/inheritance/IC.sol +0 -12
  731. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  732. package/contracts/experiment/statemachine/ISM.sol +0 -25
  733. package/contracts/experiment/statemachine/SM.sol +0 -57
  734. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  735. package/contracts/experiment/types/TypeA.sol +0 -47
  736. package/contracts/experiment/types/TypeB.sol +0 -29
  737. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  738. package/contracts/instance/BundleManager.sol +0 -129
  739. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  740. package/contracts/instance/IInstanceBase.sol +0 -26
  741. package/contracts/instance/InstanceAccessManager.sol +0 -288
  742. package/contracts/instance/InstanceBase.sol +0 -41
  743. package/contracts/instance/ObjectManager.sol +0 -101
  744. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  745. package/contracts/instance/base/IInstanceBase.sol +0 -23
  746. package/contracts/instance/base/KeyValueStore.sol +0 -172
  747. package/contracts/instance/base/Lifecycle.sol +0 -100
  748. package/contracts/instance/module/IAccess.sol +0 -38
  749. package/contracts/instance/module/ISetup.sol +0 -46
  750. package/contracts/instance/module/ITreasury.sol +0 -23
  751. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  752. package/contracts/instance/service/DistributionService.sol +0 -88
  753. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  754. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  755. package/contracts/instance/service/IDistributionService.sol +0 -12
  756. package/contracts/instance/service/IPoolService.sol +0 -51
  757. package/contracts/instance/service/IProductService.sol +0 -110
  758. package/contracts/instance/service/PoolService.sol +0 -287
  759. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  760. package/contracts/instance/service/ProductService.sol +0 -570
  761. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  762. package/contracts/shared/ContractDeployerLib.sol +0 -72
  763. package/contracts/shared/ERC165.sol +0 -25
  764. package/contracts/shared/ProxyManager.sol +0 -94
  765. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  766. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  767. package/contracts/shared/Versionable.sol +0 -147
  768. package/contracts/test/TestFee.sol +0 -25
  769. package/contracts/test/TestRegisterable.sol +0 -18
  770. package/contracts/test/TestRoleId.sol +0 -14
  771. package/contracts/test/TestService.sol +0 -24
  772. package/contracts/test/TestToken.sol +0 -26
  773. package/contracts/test/TestVersion.sol +0 -44
  774. package/contracts/test/TestVersionable.sol +0 -17
  775. package/contracts/types/ChainId.sol +0 -38
  776. package/contracts/types/Fee.sol +0 -56
  777. package/contracts/types/NumberId.sol +0 -52
  778. package/contracts/types/ObjectType.sol +0 -152
  779. package/contracts/types/RiskId.sol +0 -43
  780. package/contracts/types/RoleId.sol +0 -90
  781. package/contracts/types/UFixed.sol +0 -325
@@ -1,48 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Instance} from "./Instance.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {InstanceService} from "./InstanceService.sol";
8
- import {Registry} from "../registry/Registry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
- import {VersionLib} from "../types/Version.sol";
11
7
 
12
8
  contract InstanceServiceManager is ProxyManager {
13
9
 
14
10
  InstanceService private _instanceService;
15
11
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
12
+ /// @dev initializes proxy manager with instance service implementation
17
13
  constructor(
18
- address registryAddress
19
- )
20
- ProxyManager()
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
21
18
  {
22
- InstanceService instSrv = new InstanceService();
23
- // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
- address(instSrv),
27
- data);
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
28
26
 
29
27
  _instanceService = InstanceService(address(versionable));
30
-
31
- Registry registry = Registry(registryAddress);
32
- address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
33
- RegistryService registryService = RegistryService(registryServiceAddress);
34
- // TODO this must have a role or own nft to register service
35
- //registryService.registerService(_instanceService);
36
- // RegistryService registryService = _instanceService.getRegistryService();
37
-
38
- // TODO no nft to link yet
39
- // link ownership of instance service manager ot nft owner of instance service
40
- //_linkToNftOwnable(
41
- // address(registryAddress),
42
- // address(_instanceService));
43
-
44
- // implies that after this constructor call only upgrade functionality is available
45
- _isDeployed = true;
46
28
  }
47
29
 
48
30
  //--- view functions ----------------------------------------------------//
@@ -0,0 +1,259 @@
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 {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
+
14
+ import {Amount} from "../type/Amount.sol";
15
+ import {Key32} from "../type/Key32.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ClaimId} from "../type/ClaimId.sol";
18
+ import {ObjectType, BUNDLE, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
20
+ import {RiskId} from "../type/RiskId.sol";
21
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
22
+ import {ReferralId} from "../type/Referral.sol";
23
+ import {DistributorType} from "../type/DistributorType.sol";
24
+ import {PayoutId} from "../type/PayoutId.sol";
25
+ import {BalanceStore} from "./base/BalanceStore.sol";
26
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
27
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
28
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
29
+
30
+
31
+ contract InstanceStore is
32
+ AccessManagedUpgradeable,
33
+ BalanceStore,
34
+ KeyValueStore,
35
+ ObjectCounter,
36
+ ObjectLifecycle
37
+ {
38
+
39
+ /// @dev This initializer needs to be called from the instance itself.
40
+ function initialize()
41
+ public
42
+ initializer()
43
+ {
44
+ address instance = msg.sender;
45
+ address authority = IInstance(instance).authority();
46
+
47
+ __AccessManaged_init(authority);
48
+ // double initialization, safe
49
+ _initializeLifecycle();
50
+ }
51
+
52
+ //--- Component ---------------------------------------------------------//
53
+
54
+ function createComponent(
55
+ NftId componentNftId,
56
+ IComponents.ComponentInfo memory componentInfo
57
+ )
58
+ external
59
+ restricted()
60
+ {
61
+ _registerBalanceTarget(componentNftId);
62
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
63
+ }
64
+
65
+ function updateComponent(
66
+ NftId componentNftId,
67
+ IComponents.ComponentInfo memory componentInfo,
68
+ StateId newState
69
+ )
70
+ external
71
+ restricted()
72
+ {
73
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
74
+ }
75
+
76
+ //--- Product -----------------------------------------------------------//
77
+
78
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
79
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
80
+ }
81
+
82
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
83
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
84
+ }
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
+
97
+ //--- Pool --------------------------------------------------------------//
98
+
99
+ function createPool(
100
+ NftId poolNftId,
101
+ IComponents.PoolInfo memory info
102
+ )
103
+ external
104
+ restricted()
105
+ {
106
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
107
+ }
108
+
109
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
110
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
111
+ }
112
+
113
+ //--- DistributorType ---------------------------------------------------//
114
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
115
+ _create(distributorType.toKey32(), abi.encode(info));
116
+ }
117
+
118
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
119
+ _update(distributorType.toKey32(), abi.encode(info), newState);
120
+ }
121
+
122
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
123
+ _updateState(distributorType.toKey32(), newState);
124
+ }
125
+
126
+ //--- Distributor -------------------------------------------------------//
127
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
128
+ _registerBalanceTarget(distributorNftId);
129
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
130
+ }
131
+
132
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
133
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
134
+ }
135
+
136
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
137
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
138
+ }
139
+
140
+ //--- Referral ----------------------------------------------------------//
141
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
142
+ _create(referralId.toKey32(), abi.encode(referralInfo));
143
+ }
144
+
145
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
146
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
147
+ }
148
+
149
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
150
+ _updateState(referralId.toKey32(), newState);
151
+ }
152
+
153
+ //--- Bundle ------------------------------------------------------------//
154
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
155
+ _registerBalanceTarget(bundleNftId);
156
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
157
+ }
158
+
159
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
160
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
161
+ }
162
+
163
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
164
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
165
+ }
166
+
167
+ //--- Risk --------------------------------------------------------------//
168
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
169
+ _create(riskId.toKey32(), abi.encode(risk));
170
+ }
171
+
172
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
173
+ _update(riskId.toKey32(), abi.encode(risk), newState);
174
+ }
175
+
176
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
177
+ _updateState(riskId.toKey32(), newState);
178
+ }
179
+
180
+ //--- Claim -------------------------------------------------------------//
181
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
182
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
183
+ }
184
+
185
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
186
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
187
+ }
188
+
189
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
190
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
191
+ }
192
+
193
+ //--- Payout ------------------------------------------------------------//
194
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
195
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
196
+ }
197
+
198
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
199
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
200
+ }
201
+
202
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
203
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
204
+ }
205
+
206
+ //--- Request -----------------------------------------------------------//
207
+
208
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
209
+ requestId = _createNextRequestId();
210
+ _create(requestId.toKey32(), abi.encode(request));
211
+ }
212
+
213
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
214
+ _update(requestId.toKey32(), abi.encode(request), newState);
215
+ }
216
+
217
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
218
+ _updateState(requestId.toKey32(), newState);
219
+ }
220
+
221
+ //--- balance and fee management functions ------------------------------//
222
+
223
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
224
+ return _increaseBalance(targetNftId, amount);
225
+ }
226
+
227
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
228
+ return _decreaseBalance(targetNftId, amount);
229
+ }
230
+
231
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
232
+ return _increaseFees(targetNftId, amount);
233
+ }
234
+
235
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
236
+ return _decreaseFees(targetNftId, amount);
237
+ }
238
+
239
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
240
+ return _increaseLocked(targetNftId, amount);
241
+ }
242
+
243
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
244
+ return _decreaseLocked(targetNftId, amount);
245
+ }
246
+
247
+ //--- internal view/pure functions --------------------------------------//
248
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
249
+ return nftId.toKey32(objectType);
250
+ }
251
+
252
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
253
+ return claimId.toKey32(policyNftId);
254
+ }
255
+
256
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
257
+ return payoutId.toKey32(policyNftId);
258
+ }
259
+ }
@@ -0,0 +1,143 @@
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, PREMIUM} 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
+ event LogProductStorePremiumInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
32
+ event LogProductStorePremiumInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
33
+
34
+ mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
35
+ mapping(Key32 key32 => IPolicy.PremiumInfo) private _premiums;
36
+
37
+
38
+ /// @dev This initializer needs to be called from the instance itself.
39
+ function initialize()
40
+ public
41
+ initializer()
42
+ {
43
+ address instance = msg.sender;
44
+ address authority = IInstance(instance).authority();
45
+
46
+ __AccessManaged_init(authority);
47
+ // double initialization, safe
48
+ _initializeLifecycle();
49
+ }
50
+
51
+
52
+ //--- Application (Policy) ----------------------------------------------//
53
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
54
+ _registerBalanceTarget(applicationNftId);
55
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
56
+ _createMetadata(key);
57
+ _policies[key] = policy;
58
+ // solhint-disable-next-line avoid-tx-origin
59
+ emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
60
+ }
61
+
62
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
63
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
64
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
65
+ StateId oldState = getState(key);
66
+ _policies[key] = policy;
67
+ // solhint-disable-next-line avoid-tx-origin
68
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
69
+ }
70
+
71
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
72
+ Key32 key = _toNftKey32(applicationNftId, POLICY());
73
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
74
+ StateId oldState = getState(key);
75
+ // solhint-disable-next-line avoid-tx-origin
76
+ emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
77
+ }
78
+
79
+ //--- Policy ------------------------------------------------------------//
80
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
81
+ Key32 key = _toNftKey32(policyNftId, POLICY());
82
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
83
+ StateId oldState = getState(key);
84
+ _policies[key] = policy;
85
+ // solhint-disable-next-line avoid-tx-origin
86
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
87
+ }
88
+
89
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
90
+ Key32 key = _toNftKey32(policyNftId, POLICY());
91
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
92
+ StateId oldState = getState(key);
93
+ _policies[key] = policy;
94
+ // solhint-disable-next-line avoid-tx-origin
95
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
96
+ }
97
+
98
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
99
+ Key32 key = _toNftKey32(policyNftId, POLICY());
100
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
101
+ StateId oldState = getState(key);
102
+ // solhint-disable-next-line avoid-tx-origin
103
+ emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
104
+ }
105
+
106
+ function getPolicy(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
107
+ return _policies[_toNftKey32(policyNftId, POLICY())];
108
+ }
109
+
110
+ //--- Premium (Policy) ----------------------------------------------//
111
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
112
+ Key32 key = _toNftKey32(policyNftId, PREMIUM());
113
+ _createMetadata(key);
114
+ _premiums[key] = premium;
115
+ // solhint-disable-next-line avoid-tx-origin
116
+ emit LogProductStorePremiumInfoCreated(policyNftId, getState(key), msg.sender, tx.origin);
117
+ }
118
+
119
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
120
+ Key32 key = _toNftKey32(policyNftId, PREMIUM());
121
+ Blocknumber lastUpdatedIn = _updateState(key, newState);
122
+ StateId oldState = getState(key);
123
+ // solhint-disable-next-line avoid-tx-origin
124
+ emit LogProductStorePremiumInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
125
+ }
126
+
127
+ function getPremium(NftId policyNftId) external view returns (IPolicy.PremiumInfo memory premium) {
128
+ return _premiums[_toNftKey32(policyNftId, PREMIUM())];
129
+ }
130
+
131
+ //--- internal view/pure functions --------------------------------------//
132
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
133
+ return nftId.toKey32(objectType);
134
+ }
135
+
136
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
137
+ return claimId.toKey32(policyNftId);
138
+ }
139
+
140
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
141
+ return payoutId.toKey32(policyNftId);
142
+ }
143
+ }
@@ -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
+