@etherisc/gif-next 0.0.2-cc4a5cb-898 → 0.0.2-ccfa4c7-304

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 (813) hide show
  1. package/README.md +292 -46
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/{shared/IOwnable.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1523 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +352 -1528
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +802 -0
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +482 -1853
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2463 -0
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1048 -0
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3738 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  103. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  104. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  105. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  108. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.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 +959 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -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/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +850 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +736 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -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} +307 -319
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IRiskService.sol/IRiskService.json} +247 -228
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +242 -12
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1024 -119
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
  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 +4 -0
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +1450 -219
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +1337 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1532 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  228. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  233. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  234. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  236. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  238. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  240. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
  242. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  244. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  246. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  248. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  249. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +47 -74
  250. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  251. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  252. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +229 -21
  254. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  255. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  256. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  257. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +198 -163
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  262. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  263. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  264. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  267. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  271. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +275 -18
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  275. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  276. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  277. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +233 -156
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  283. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1512 -0
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  287. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +1917 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  292. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +796 -0
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -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 +225 -0
  312. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  314. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  316. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  318. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  320. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  322. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  324. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  326. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  328. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  330. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  332. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  334. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  336. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  338. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  344. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  346. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  348. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  350. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  352. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  354. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  356. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  360. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  362. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  364. package/contracts/accounting/AccountingService.sol +262 -0
  365. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  366. package/contracts/accounting/IAccountingService.sol +45 -0
  367. package/contracts/authorization/AccessAdmin.sol +704 -0
  368. package/contracts/authorization/AccessAdminLib.sol +183 -0
  369. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  370. package/contracts/authorization/Authorization.sol +365 -0
  371. package/contracts/authorization/IAccess.sol +49 -0
  372. package/contracts/authorization/IAccessAdmin.sol +170 -0
  373. package/contracts/authorization/IAuthorization.sol +80 -0
  374. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  375. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  376. package/contracts/distribution/BasicDistribution.sol +141 -0
  377. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  378. package/contracts/distribution/Distribution.sol +289 -0
  379. package/contracts/distribution/DistributionService.sol +385 -0
  380. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  381. package/contracts/distribution/IDistributionComponent.sol +52 -0
  382. package/contracts/distribution/IDistributionService.sol +103 -0
  383. package/contracts/examples/fire/DamageLevel.sol +59 -0
  384. package/contracts/examples/fire/FirePool.sol +90 -0
  385. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  386. package/contracts/examples/fire/FireProduct.sol +437 -0
  387. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  388. package/contracts/examples/fire/FireUSD.sol +26 -0
  389. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  390. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  391. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  392. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  393. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  394. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  395. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  396. package/contracts/instance/BundleSet.sol +130 -0
  397. package/contracts/instance/IInstance.sol +99 -47
  398. package/contracts/instance/IInstanceService.sol +84 -0
  399. package/contracts/instance/Instance.sol +289 -67
  400. package/contracts/instance/InstanceAdmin.sol +450 -0
  401. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  402. package/contracts/instance/InstanceReader.sol +650 -0
  403. package/contracts/instance/InstanceService.sol +462 -0
  404. package/contracts/instance/InstanceServiceManager.sol +39 -0
  405. package/contracts/instance/InstanceStore.sol +298 -0
  406. package/contracts/instance/RiskSet.sol +118 -0
  407. package/contracts/instance/base/BalanceStore.sol +123 -0
  408. package/contracts/instance/base/Cloneable.sol +28 -0
  409. package/contracts/instance/base/ObjectCounter.sol +20 -0
  410. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  411. package/contracts/instance/base/ObjectSet.sol +77 -0
  412. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  413. package/contracts/instance/module/IBundle.sol +20 -0
  414. package/contracts/instance/module/IComponents.sol +51 -0
  415. package/contracts/instance/module/IDistribution.sol +44 -0
  416. package/contracts/instance/module/IPolicy.sol +85 -0
  417. package/contracts/instance/module/IRisk.sol +14 -0
  418. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  419. package/contracts/oracle/BasicOracle.sol +47 -0
  420. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  421. package/contracts/oracle/IOracle.sol +36 -0
  422. package/contracts/oracle/IOracleComponent.sol +33 -0
  423. package/contracts/oracle/IOracleService.sol +66 -0
  424. package/contracts/oracle/Oracle.sol +156 -0
  425. package/contracts/oracle/OracleService.sol +310 -0
  426. package/contracts/oracle/OracleServiceManager.sol +39 -0
  427. package/contracts/pool/BasicPool.sol +175 -0
  428. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  429. package/contracts/pool/BundleService.sol +395 -0
  430. package/contracts/pool/BundleServiceManager.sol +39 -0
  431. package/contracts/pool/IBundleService.sol +115 -0
  432. package/contracts/pool/IPoolComponent.sol +62 -0
  433. package/contracts/pool/IPoolService.sol +165 -0
  434. package/contracts/pool/Pool.sol +345 -0
  435. package/contracts/pool/PoolLib.sol +216 -0
  436. package/contracts/pool/PoolService.sol +757 -0
  437. package/contracts/pool/PoolServiceManager.sol +39 -0
  438. package/contracts/product/ApplicationService.sol +269 -0
  439. package/contracts/product/ApplicationServiceManager.sol +38 -0
  440. package/contracts/product/BasicProduct.sol +51 -0
  441. package/contracts/product/BasicProductAuthorization.sol +56 -0
  442. package/contracts/product/ClaimService.sol +632 -0
  443. package/contracts/product/ClaimServiceManager.sol +38 -0
  444. package/contracts/product/IApplicationService.sol +67 -0
  445. package/contracts/product/IClaimService.sol +135 -0
  446. package/contracts/product/IPolicyService.sol +95 -0
  447. package/contracts/product/IPricingService.sol +39 -0
  448. package/contracts/product/IProductComponent.sol +62 -0
  449. package/contracts/product/IRiskService.sol +30 -0
  450. package/contracts/product/PolicyService.sol +664 -0
  451. package/contracts/product/PolicyServiceLib.sol +65 -0
  452. package/contracts/product/PolicyServiceManager.sol +39 -0
  453. package/contracts/product/PricingService.sol +304 -0
  454. package/contracts/product/PricingServiceManager.sol +39 -0
  455. package/contracts/product/Product.sol +469 -0
  456. package/contracts/product/RiskService.sol +144 -0
  457. package/contracts/product/RiskServiceManager.sol +39 -0
  458. package/contracts/registry/ChainNft.sol +130 -40
  459. package/contracts/registry/IRegistry.sol +138 -29
  460. package/contracts/registry/IRegistryService.sol +62 -0
  461. package/contracts/registry/IRelease.sol +26 -0
  462. package/contracts/registry/ITransferInterceptor.sol +6 -0
  463. package/contracts/registry/Registry.sol +631 -282
  464. package/contracts/registry/RegistryAdmin.sol +258 -0
  465. package/contracts/registry/RegistryAuthorization.sol +267 -0
  466. package/contracts/registry/RegistryService.sol +241 -0
  467. package/contracts/registry/RegistryServiceManager.sol +53 -0
  468. package/contracts/registry/ReleaseAdmin.sol +253 -0
  469. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  470. package/contracts/registry/ReleaseRegistry.sol +517 -0
  471. package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
  472. package/contracts/registry/TokenRegistry.sol +313 -0
  473. package/contracts/shared/Component.sol +227 -0
  474. package/contracts/shared/ComponentService.sol +689 -0
  475. package/contracts/shared/ComponentServiceManager.sol +38 -0
  476. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  477. package/contracts/shared/ContractLib.sol +281 -0
  478. package/contracts/shared/IComponent.sol +61 -0
  479. package/contracts/shared/IComponentService.sol +110 -0
  480. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  481. package/contracts/shared/IKeyValueStore.sol +54 -0
  482. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  483. package/contracts/shared/INftOwnable.sol +25 -0
  484. package/contracts/shared/IPolicyHolder.sol +35 -0
  485. package/contracts/shared/IRegisterable.sol +33 -20
  486. package/contracts/shared/IRegistryLinked.sol +11 -0
  487. package/contracts/shared/IService.sol +23 -0
  488. package/contracts/shared/InitializableERC165.sol +35 -0
  489. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  490. package/contracts/shared/KeyValueStore.sol +131 -0
  491. package/contracts/shared/Lifecycle.sol +88 -0
  492. package/contracts/shared/NftIdSet.sol +65 -0
  493. package/contracts/shared/NftOwnable.sol +127 -0
  494. package/contracts/shared/PolicyHolder.sol +62 -0
  495. package/contracts/shared/Registerable.sol +80 -60
  496. package/contracts/shared/RegistryLinked.sol +38 -0
  497. package/contracts/shared/Service.sol +65 -0
  498. package/contracts/shared/TokenHandler.sol +342 -0
  499. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  500. package/contracts/staking/IStaking.sol +175 -0
  501. package/contracts/staking/IStakingService.sol +172 -0
  502. package/contracts/staking/Staking.sol +546 -0
  503. package/contracts/staking/StakingLib.sol +281 -0
  504. package/contracts/staking/StakingLifecycle.sol +23 -0
  505. package/contracts/staking/StakingManager.sol +52 -0
  506. package/contracts/staking/StakingReader.sol +180 -0
  507. package/contracts/staking/StakingService.sol +464 -0
  508. package/contracts/staking/StakingServiceManager.sol +45 -0
  509. package/contracts/staking/StakingStore.sol +606 -0
  510. package/contracts/staking/TargetManagerLib.sol +211 -0
  511. package/contracts/{types → type}/AddressSet.sol +1 -1
  512. package/contracts/type/Amount.sol +150 -0
  513. package/contracts/{types → type}/Blocknumber.sol +27 -3
  514. package/contracts/type/ClaimId.sol +80 -0
  515. package/contracts/type/DistributorType.sol +55 -0
  516. package/contracts/type/Fee.sol +66 -0
  517. package/contracts/{types → type}/Key32.sol +10 -5
  518. package/contracts/type/Key32Set.sol +62 -0
  519. package/contracts/{types → type}/NftId.sol +28 -15
  520. package/contracts/type/NftIdSet.sol +62 -0
  521. package/contracts/type/ObjectType.sol +294 -0
  522. package/contracts/type/PayoutId.sol +82 -0
  523. package/contracts/type/Referral.sol +90 -0
  524. package/contracts/type/RequestId.sol +75 -0
  525. package/contracts/type/RiskId.sol +75 -0
  526. package/contracts/type/RoleId.sol +182 -0
  527. package/contracts/type/Seconds.sol +101 -0
  528. package/contracts/type/Selector.sol +107 -0
  529. package/contracts/{types → type}/StateId.sol +53 -5
  530. package/contracts/type/String.sol +53 -0
  531. package/contracts/{types → type}/Timestamp.sol +37 -19
  532. package/contracts/{types → type}/UFixed.sol +48 -12
  533. package/contracts/type/Version.sol +159 -0
  534. package/contracts/upgradeability/IVersionable.sol +53 -0
  535. package/contracts/upgradeability/ProxyManager.sol +232 -0
  536. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  537. package/contracts/upgradeability/Versionable.sol +59 -0
  538. package/package.json +13 -8
  539. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  541. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  542. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  543. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  546. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  548. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  549. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  550. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  551. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  552. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  553. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  554. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  556. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  558. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  560. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  562. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  564. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  570. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  572. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  574. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  578. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  580. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  582. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  584. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  586. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  588. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  590. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  591. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  593. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  597. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  600. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  602. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  603. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  604. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  605. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  607. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  608. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  609. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  610. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  612. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  613. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  615. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  616. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  617. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  618. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  619. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  620. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  621. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  622. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  623. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  625. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  626. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  627. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  628. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  629. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  630. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  631. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  632. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  633. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  634. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  635. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  636. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  637. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  638. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  639. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  640. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  641. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  642. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  643. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  644. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  645. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  646. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  647. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  648. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  649. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  650. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  651. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -531
  652. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  653. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -420
  654. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  655. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  656. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -325
  657. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  658. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  659. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  660. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -543
  661. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  662. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  663. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  664. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  665. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  666. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  667. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  668. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  669. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  670. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -164
  671. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  672. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -178
  673. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  674. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +0 -129
  675. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  676. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -164
  677. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  678. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  679. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  681. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  682. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  683. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  684. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  685. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  686. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  687. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  688. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  689. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  690. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  691. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  692. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  693. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  694. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  695. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  696. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  697. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  698. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  699. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  700. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  701. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  703. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  705. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  707. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  709. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  710. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  711. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  712. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  713. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  715. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  717. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  719. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  721. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  722. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  723. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  724. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  725. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  726. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  727. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  728. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  729. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  730. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  731. package/contracts/components/BaseComponent.sol +0 -94
  732. package/contracts/components/Distribution.sol +0 -132
  733. package/contracts/components/IBaseComponent.sol +0 -19
  734. package/contracts/components/IDistributionComponent.sol +0 -47
  735. package/contracts/components/IPoolComponent.sol +0 -71
  736. package/contracts/components/IProductComponent.sol +0 -38
  737. package/contracts/components/Pool.sol +0 -235
  738. package/contracts/components/Product.sol +0 -227
  739. package/contracts/experiment/errors/Require.sol +0 -38
  740. package/contracts/experiment/errors/Revert.sol +0 -44
  741. package/contracts/experiment/inheritance/A.sol +0 -53
  742. package/contracts/experiment/inheritance/B.sol +0 -28
  743. package/contracts/experiment/inheritance/C.sol +0 -34
  744. package/contracts/experiment/inheritance/IA.sol +0 -13
  745. package/contracts/experiment/inheritance/IB.sol +0 -10
  746. package/contracts/experiment/inheritance/IC.sol +0 -12
  747. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  748. package/contracts/experiment/statemachine/ISM.sol +0 -25
  749. package/contracts/experiment/statemachine/README.md +0 -112
  750. package/contracts/experiment/statemachine/SM.sol +0 -57
  751. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  752. package/contracts/experiment/types/TypeA.sol +0 -47
  753. package/contracts/experiment/types/TypeB.sol +0 -29
  754. package/contracts/instance/IInstanceLinked.sol +0 -8
  755. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  756. package/contracts/instance/base/IInstanceBase.sol +0 -22
  757. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  758. package/contracts/instance/base/IService.sol +0 -15
  759. package/contracts/instance/base/InstanceBase.sol +0 -91
  760. package/contracts/instance/base/KeyValueStore.sol +0 -161
  761. package/contracts/instance/base/Lifecycle.sol +0 -100
  762. package/contracts/instance/base/ModuleBase.sol +0 -57
  763. package/contracts/instance/base/ServiceBase.sol +0 -37
  764. package/contracts/instance/module/access/Access.sol +0 -149
  765. package/contracts/instance/module/access/IAccess.sol +0 -53
  766. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  767. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  768. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  769. package/contracts/instance/module/component/IComponent.sol +0 -28
  770. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  771. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  772. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  773. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  774. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  775. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  776. package/contracts/instance/module/risk/IRisk.sol +0 -26
  777. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  778. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  779. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  780. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  781. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  782. package/contracts/instance/service/DistributionService.sol +0 -59
  783. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  784. package/contracts/instance/service/IDistributionService.sol +0 -12
  785. package/contracts/instance/service/IPoolService.sol +0 -37
  786. package/contracts/instance/service/IProductService.sol +0 -107
  787. package/contracts/instance/service/PoolService.sol +0 -149
  788. package/contracts/instance/service/ProductService.sol +0 -509
  789. package/contracts/registry/IChainNft.sol +0 -21
  790. package/contracts/registry/IRegistryLinked.sol +0 -8
  791. package/contracts/shared/ERC165.sol +0 -21
  792. package/contracts/shared/IOwnable.sol +0 -6
  793. package/contracts/shared/IVersionable.sol +0 -52
  794. package/contracts/shared/Proxy.sol +0 -83
  795. package/contracts/shared/Versionable.sol +0 -89
  796. package/contracts/test/TestDistribution.sol +0 -21
  797. package/contracts/test/TestFee.sol +0 -25
  798. package/contracts/test/TestPool.sol +0 -25
  799. package/contracts/test/TestProduct.sol +0 -72
  800. package/contracts/test/TestRegisterable.sol +0 -19
  801. package/contracts/test/TestRoleId.sol +0 -14
  802. package/contracts/test/TestService.sol +0 -32
  803. package/contracts/test/TestToken.sol +0 -26
  804. package/contracts/test/TestVersion.sol +0 -44
  805. package/contracts/test/TestVersionable.sol +0 -17
  806. package/contracts/types/ChainId.sol +0 -38
  807. package/contracts/types/Fee.sol +0 -56
  808. package/contracts/types/NftIdSet.sol +0 -60
  809. package/contracts/types/ObjectType.sol +0 -131
  810. package/contracts/types/ReferralId.sol +0 -48
  811. package/contracts/types/RiskId.sol +0 -43
  812. package/contracts/types/RoleId.sol +0 -38
  813. package/contracts/types/Version.sol +0 -95
@@ -0,0 +1,298 @@
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 {Amount} from "../type/Amount.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
11
+ import {RequestId} from "../type/RequestId.sol";
12
+ import {RiskId} from "../type/RiskId.sol";
13
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
14
+ import {ReferralId} from "../type/Referral.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {PayoutId} from "../type/PayoutId.sol";
17
+
18
+ import {BalanceStore} from "./base/BalanceStore.sol";
19
+ import {IInstance} from "./IInstance.sol";
20
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
+ 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
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
31
+
32
+
33
+ contract InstanceStore is
34
+ AccessManagedUpgradeable,
35
+ BalanceStore,
36
+ KeyValueStore,
37
+ ObjectCounter,
38
+ ObjectLifecycle
39
+ {
40
+
41
+ /// @dev This initializer needs to be called from the instance itself.
42
+ function initialize()
43
+ public
44
+ initializer()
45
+ {
46
+ address instance = msg.sender;
47
+ address authority = IInstance(instance).authority();
48
+
49
+ __AccessManaged_init(authority);
50
+ // double initialization, safe
51
+ _initializeLifecycle();
52
+ }
53
+
54
+ //--- Component ---------------------------------------------------------//
55
+
56
+ function createComponent(
57
+ NftId componentNftId,
58
+ IComponents.ComponentInfo memory componentInfo
59
+ )
60
+ external
61
+ restricted()
62
+ {
63
+ _registerBalanceTarget(componentNftId);
64
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
65
+ }
66
+
67
+ function updateComponent(
68
+ NftId componentNftId,
69
+ IComponents.ComponentInfo memory componentInfo,
70
+ StateId newState
71
+ )
72
+ external
73
+ restricted()
74
+ {
75
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
76
+ }
77
+
78
+ //--- Product -----------------------------------------------------------//
79
+
80
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
81
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
82
+ }
83
+
84
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
85
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
+ }
87
+
88
+
89
+ //--- Fee -----------------------------------------------------------//
90
+ function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
91
+ _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
92
+ }
93
+
94
+ // Fee only has one state, so no change change possible
95
+ function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
96
+ _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
97
+ }
98
+
99
+ //--- Pool --------------------------------------------------------------//
100
+
101
+ function createPool(
102
+ NftId poolNftId,
103
+ IComponents.PoolInfo memory info
104
+ )
105
+ external
106
+ restricted()
107
+ {
108
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
109
+ }
110
+
111
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
112
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
113
+ }
114
+
115
+ //--- DistributorType ---------------------------------------------------//
116
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
117
+ _create(distributorType.toKey32(), abi.encode(info));
118
+ }
119
+
120
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
121
+ _update(distributorType.toKey32(), abi.encode(info), newState);
122
+ }
123
+
124
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
125
+ _updateState(distributorType.toKey32(), newState);
126
+ }
127
+
128
+ //--- Distributor -------------------------------------------------------//
129
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
130
+ _registerBalanceTarget(distributorNftId);
131
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
132
+ }
133
+
134
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
135
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
136
+ }
137
+
138
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
139
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
140
+ }
141
+
142
+ //--- Referral ----------------------------------------------------------//
143
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
144
+ _create(referralId.toKey32(), abi.encode(referralInfo));
145
+ }
146
+
147
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
148
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
149
+ }
150
+
151
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
152
+ _updateState(referralId.toKey32(), newState);
153
+ }
154
+
155
+ //--- Bundle ------------------------------------------------------------//
156
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
157
+ _registerBalanceTarget(bundleNftId);
158
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
159
+ }
160
+
161
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
162
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
163
+ }
164
+
165
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
166
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
167
+ }
168
+
169
+ //--- Risk --------------------------------------------------------------//
170
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
171
+ _create(riskId.toKey32(), abi.encode(risk));
172
+ }
173
+
174
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
175
+ _update(riskId.toKey32(), abi.encode(risk), newState);
176
+ }
177
+
178
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
179
+ _updateState(riskId.toKey32(), newState);
180
+ }
181
+
182
+ //--- Application (Policy) ----------------------------------------------//
183
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
184
+ _registerBalanceTarget(applicationNftId);
185
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
186
+ }
187
+
188
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
189
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
190
+ }
191
+
192
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
193
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
194
+ }
195
+
196
+ //--- Policy ------------------------------------------------------------//
197
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
198
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
199
+ }
200
+
201
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
202
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
203
+ }
204
+
205
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
206
+ _updateState(_toNftKey32(policyNftId, POLICY()), newState);
207
+ }
208
+
209
+
210
+ //--- Premium (Policy) ----------------------------------------------//
211
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
212
+ _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
213
+ }
214
+
215
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
216
+ _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
217
+ }
218
+
219
+ //--- Claim -------------------------------------------------------------//
220
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
221
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
222
+ }
223
+
224
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
225
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
226
+ }
227
+
228
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
229
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
230
+ }
231
+
232
+ //--- Payout ------------------------------------------------------------//
233
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
234
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
235
+ }
236
+
237
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
238
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
239
+ }
240
+
241
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
242
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
243
+ }
244
+
245
+ //--- Request -----------------------------------------------------------//
246
+
247
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
248
+ requestId = _createNextRequestId();
249
+ _create(requestId.toKey32(), abi.encode(request));
250
+ }
251
+
252
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
253
+ _update(requestId.toKey32(), abi.encode(request), newState);
254
+ }
255
+
256
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
257
+ _updateState(requestId.toKey32(), newState);
258
+ }
259
+
260
+ //--- balance and fee management functions ------------------------------//
261
+
262
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
263
+ return _increaseBalance(targetNftId, amount);
264
+ }
265
+
266
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
267
+ return _decreaseBalance(targetNftId, amount);
268
+ }
269
+
270
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
271
+ return _increaseFees(targetNftId, amount);
272
+ }
273
+
274
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
275
+ return _decreaseFees(targetNftId, amount);
276
+ }
277
+
278
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
279
+ return _increaseLocked(targetNftId, amount);
280
+ }
281
+
282
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
283
+ return _decreaseLocked(targetNftId, amount);
284
+ }
285
+
286
+ //--- internal view/pure functions --------------------------------------//
287
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
288
+ return nftId.toKey32(objectType);
289
+ }
290
+
291
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
292
+ return claimId.toKey32(policyNftId);
293
+ }
294
+
295
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
296
+ return payoutId.toKey32(policyNftId);
297
+ }
298
+ }
@@ -0,0 +1,118 @@
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
+ event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
23
+
24
+ error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
25
+ error ErrorRiskSetRiskUnknown(RiskId riskId);
26
+ error ErrorRiskSetRiskNotRegistered(RiskId riskId);
27
+
28
+ mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
29
+
30
+ /// @dev links a policy to its bundle
31
+ function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
32
+
33
+ // ensure risk is active (in active set) and registered with this instance
34
+ if (!_isActive(productNftId, riskId.toKey32())) {
35
+ revert ErrorRiskSetRiskLocked(riskId, policyNftId);
36
+ }
37
+
38
+ LibNftIdSet.add(_activePolicies[riskId], policyNftId);
39
+ emit LogRiskSetPolicyLinked(riskId, policyNftId);
40
+ }
41
+
42
+ /// @dev Unlinks a policy from its risk.
43
+ function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
44
+
45
+ // ensure risk is registered with this instance
46
+ if (!_contains(productNftId, riskId.toKey32())) {
47
+ revert ErrorRiskSetRiskUnknown(riskId);
48
+ }
49
+
50
+ LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
51
+ emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
52
+ }
53
+
54
+ /// @dev add a new risk to a product registered with this instance
55
+ // the corresponding product is fetched via instance reader
56
+ function add(RiskId riskId) external restricted() {
57
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
58
+
59
+ // ensure product is registered with instance
60
+ if(productNftId.eqz()) {
61
+ revert ErrorRiskSetRiskNotRegistered(riskId);
62
+ }
63
+
64
+ _add(productNftId, riskId.toKey32());
65
+ emit LogRiskSetRiskAdded(productNftId, riskId);
66
+ }
67
+
68
+ /// @dev Applications linked to active risks may be underwritten
69
+ function activate(RiskId riskId) external restricted() {
70
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
71
+ _activate(productNftId, riskId.toKey32());
72
+ emit LogRiskSetRiskActive(productNftId, riskId);
73
+ }
74
+
75
+ /// @dev Applications linked to paused/archived risks may not be underwritten
76
+ function pause(RiskId riskId) external restricted() {
77
+ NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
78
+ _deactivate(productNftId, riskId.toKey32());
79
+ emit LogRiskSetRiskPaused(productNftId, riskId);
80
+ }
81
+
82
+ function checkRisk(NftId productNftId, RiskId riskId)
83
+ public
84
+ view
85
+ returns (bool exists, bool active)
86
+ {
87
+ Key32 riskKey32 = riskId.toKey32();
88
+ exists = _contains(productNftId, riskKey32);
89
+
90
+ if (exists) {
91
+ active = _isActive(productNftId, riskKey32);
92
+ }
93
+ }
94
+
95
+ function risks(NftId productNftId) external view returns(uint256) {
96
+ return _objects(productNftId);
97
+ }
98
+
99
+ function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
100
+ return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
101
+ }
102
+
103
+ function activeRisks(NftId productNftId) external view returns(uint256) {
104
+ return _activeObjs(productNftId);
105
+ }
106
+
107
+ function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
108
+ return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
109
+ }
110
+
111
+ function linkedPolicies(RiskId riskId) external view returns(uint256) {
112
+ return LibNftIdSet.size(_activePolicies[riskId]);
113
+ }
114
+
115
+ function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
116
+ return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
117
+ }
118
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+
8
+ contract BalanceStore {
9
+
10
+ error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
11
+ error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
12
+
13
+ event LogBalanceStoreTargetRegistered(NftId targetNftId);
14
+
15
+ event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
+ event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
17
+
18
+ event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
+ event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
20
+
21
+ event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
+ event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
23
+
24
+ mapping(NftId nftId => Amount balance) private _balanceAmount;
25
+ mapping(NftId nftId => Amount locked) private _lockedAmount;
26
+ mapping(NftId nftId => Amount fees) private _feeAmount;
27
+ mapping(NftId nftId => bool isRegistered) private _isRegistered;
28
+
29
+ // TODO check if this is made redundant by *Info struct updates
30
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
31
+
32
+ modifier onlyRegisteredTarget(NftId targetNftId) {
33
+ if (!_isRegistered[targetNftId]) {
34
+ revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
35
+ }
36
+ _;
37
+ }
38
+
39
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
40
+ function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
41
+ function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
42
+
43
+ function getAmounts(NftId targetNftId)
44
+ external
45
+ view
46
+ returns (
47
+ Amount balanceAmount,
48
+ Amount lockedAmount,
49
+ Amount feeAmount
50
+ )
51
+ {
52
+ balanceAmount = _balanceAmount[targetNftId];
53
+ lockedAmount = _lockedAmount[targetNftId];
54
+ feeAmount = _feeAmount[targetNftId];
55
+ }
56
+
57
+ function _registerBalanceTarget(NftId targetNftId) internal {
58
+ if (_isRegistered[targetNftId]) {
59
+ revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
60
+ }
61
+
62
+ _isRegistered[targetNftId] = true;
63
+ _setLastUpdatedIn(targetNftId);
64
+
65
+ emit LogBalanceStoreTargetRegistered(targetNftId);
66
+ }
67
+
68
+ //--- fee management ----------------------------------------------------//
69
+ function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
70
+ newBalance = _feeAmount[targetNftId] + amount;
71
+ _feeAmount[targetNftId] = newBalance;
72
+
73
+ emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
74
+ _setLastUpdatedIn(targetNftId);
75
+ }
76
+
77
+ function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
78
+ newBalance = _feeAmount[targetNftId] - amount;
79
+ _feeAmount[targetNftId] = newBalance;
80
+
81
+ emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
82
+ _setLastUpdatedIn(targetNftId);
83
+ }
84
+
85
+ //--- locked management -------------------------------------------------//
86
+ function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
87
+ newBalance = _lockedAmount[targetNftId] + amount;
88
+ _lockedAmount[targetNftId] = newBalance;
89
+
90
+ emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
91
+ _setLastUpdatedIn(targetNftId);
92
+ }
93
+
94
+ function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
95
+ newBalance = _lockedAmount[targetNftId] - amount;
96
+ _lockedAmount[targetNftId] = newBalance;
97
+
98
+ emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
99
+ _setLastUpdatedIn(targetNftId);
100
+ }
101
+
102
+ //--- balance management ------------------------------------------------//
103
+ function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
104
+ newBalance = _balanceAmount[targetNftId] + amount;
105
+ _balanceAmount[targetNftId] = newBalance;
106
+
107
+ emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
108
+ _setLastUpdatedIn(targetNftId);
109
+ }
110
+
111
+ function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
112
+ newBalance = _balanceAmount[targetNftId] - amount;
113
+ _balanceAmount[targetNftId] = newBalance;
114
+
115
+ emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
116
+ _setLastUpdatedIn(targetNftId);
117
+ }
118
+
119
+ //--- internal/private functions ----------------------------------------//
120
+ function _setLastUpdatedIn(NftId targetNftId) internal {
121
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
122
+ }
123
+ }
@@ -0,0 +1,28 @@
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 {IRegistry} from "../../registry/IRegistry.sol";
7
+
8
+ abstract contract Cloneable is
9
+ AccessManagedUpgradeable
10
+ {
11
+ IRegistry internal _registry;
12
+
13
+ /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
14
+ function __Cloneable_init(
15
+ address authority,
16
+ address registry
17
+ )
18
+ internal
19
+ onlyInitializing
20
+ {
21
+ __AccessManaged_init(authority);
22
+ _registry = IRegistry(registry);
23
+ }
24
+
25
+ function getRegistry() external view returns (IRegistry) {
26
+ return _registry;
27
+ }
28
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
8
+
9
+ contract ObjectCounter {
10
+
11
+ // TODO refactor risk id
12
+ // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
+
14
+ uint256 private _requestCounter = 0;
15
+
16
+ function _createNextRequestId() internal returns (RequestId requestId) {
17
+ _requestCounter++;
18
+ requestId = RequestIdLib.toRequestId(_requestCounter);
19
+ }
20
+ }