@etherisc/gif-next 0.0.2-83e248c-054 → 0.0.2-8469187-381

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 (736) hide show
  1. package/README.md +136 -318
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +299 -329
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +288 -280
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +465 -1901
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +540 -71
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +551 -2480
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1816 -693
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +553 -345
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +217 -166
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +313 -237
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +269 -248
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +334 -478
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  144. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +379 -428
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +475 -493
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +346 -247
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +202 -177
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IRiskService.sol/IRiskService.json} +261 -203
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  186. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +390 -250
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +233 -110
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  222. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  236. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +153 -138
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  238. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +573 -743
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Service.sol/Service.json +95 -109
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  346. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +40 -8
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  360. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  361. package/contracts/accounting/AccountingService.sol +274 -0
  362. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  363. package/contracts/accounting/IAccountingService.sol +47 -0
  364. package/contracts/authorization/AccessAdmin.sol +679 -0
  365. package/contracts/authorization/AccessAdminLib.sol +678 -0
  366. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  367. package/contracts/authorization/Authorization.sol +190 -0
  368. package/contracts/authorization/IAccess.sol +66 -0
  369. package/contracts/authorization/IAccessAdmin.sol +142 -0
  370. package/contracts/authorization/IAuthorization.sol +26 -0
  371. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  372. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  373. package/contracts/distribution/BasicDistribution.sol +140 -0
  374. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  375. package/contracts/distribution/Distribution.sol +245 -0
  376. package/contracts/distribution/DistributionService.sol +448 -0
  377. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  378. package/contracts/distribution/IDistributionComponent.sol +45 -0
  379. package/contracts/distribution/IDistributionService.sol +115 -0
  380. package/contracts/examples/fire/DamageLevel.sol +59 -0
  381. package/contracts/examples/fire/FirePool.sol +86 -0
  382. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  383. package/contracts/examples/fire/FireProduct.sol +433 -0
  384. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  385. package/contracts/examples/fire/FireUSD.sol +26 -0
  386. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  387. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  389. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  390. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  391. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  392. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  393. package/contracts/instance/BaseStore.sol +93 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IBaseStore.sol +37 -0
  396. package/contracts/instance/IInstance.sol +128 -74
  397. package/contracts/instance/IInstanceService.sol +86 -35
  398. package/contracts/instance/Instance.sol +246 -205
  399. package/contracts/instance/InstanceAdmin.sol +307 -0
  400. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  401. package/contracts/instance/InstanceReader.sol +496 -207
  402. package/contracts/instance/InstanceService.sol +412 -376
  403. package/contracts/instance/InstanceServiceManager.sol +14 -29
  404. package/contracts/instance/InstanceStore.sol +323 -0
  405. package/contracts/instance/ProductStore.sol +290 -0
  406. package/contracts/instance/RiskSet.sol +126 -0
  407. package/contracts/instance/TargetNames.sol +10 -0
  408. package/contracts/instance/base/BalanceStore.sol +121 -0
  409. package/contracts/instance/base/Cloneable.sol +28 -0
  410. package/contracts/instance/base/ObjectCounter.sol +20 -0
  411. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  412. package/contracts/instance/base/ObjectSet.sol +77 -0
  413. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  414. package/contracts/instance/module/IBundle.sol +9 -11
  415. package/contracts/instance/module/IComponents.sol +43 -24
  416. package/contracts/instance/module/IDistribution.sol +25 -12
  417. package/contracts/instance/module/IPolicy.sol +67 -39
  418. package/contracts/instance/module/IRisk.sol +6 -1
  419. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  420. package/contracts/oracle/BasicOracle.sol +44 -0
  421. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  422. package/contracts/oracle/IOracle.sol +41 -0
  423. package/contracts/oracle/IOracleComponent.sol +33 -0
  424. package/contracts/oracle/IOracleService.sol +66 -0
  425. package/contracts/oracle/Oracle.sol +152 -0
  426. package/contracts/oracle/OracleService.sol +310 -0
  427. package/contracts/oracle/OracleServiceManager.sol +39 -0
  428. package/contracts/pool/BasicPool.sol +161 -0
  429. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  430. package/contracts/pool/BundleService.sol +386 -0
  431. package/contracts/pool/BundleServiceManager.sol +39 -0
  432. package/contracts/pool/IBundleService.sol +116 -0
  433. package/contracts/pool/IPoolComponent.sol +62 -0
  434. package/contracts/pool/IPoolService.sol +170 -0
  435. package/contracts/pool/Pool.sol +331 -0
  436. package/contracts/pool/PoolLib.sol +341 -0
  437. package/contracts/pool/PoolService.sol +614 -0
  438. package/contracts/pool/PoolServiceManager.sol +39 -0
  439. package/contracts/product/ApplicationService.sol +327 -0
  440. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  441. package/contracts/product/BasicProduct.sol +48 -0
  442. package/contracts/product/BasicProductAuthorization.sol +63 -0
  443. package/contracts/product/ClaimService.sol +626 -0
  444. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  445. package/contracts/{instance/service → product}/IApplicationService.sol +41 -31
  446. package/contracts/product/IClaimService.sol +136 -0
  447. package/contracts/product/IPolicyService.sol +102 -0
  448. package/contracts/product/IPricingService.sol +40 -0
  449. package/contracts/product/IProductComponent.sol +62 -0
  450. package/contracts/product/IRiskService.sol +48 -0
  451. package/contracts/product/PolicyService.sol +645 -0
  452. package/contracts/product/PolicyServiceLib.sol +139 -0
  453. package/contracts/product/PolicyServiceManager.sol +39 -0
  454. package/contracts/product/PricingService.sol +306 -0
  455. package/contracts/product/PricingServiceManager.sol +39 -0
  456. package/contracts/product/Product.sol +491 -0
  457. package/contracts/product/RiskService.sol +189 -0
  458. package/contracts/product/RiskServiceManager.sol +39 -0
  459. package/contracts/registry/ChainNft.sol +79 -40
  460. package/contracts/registry/IRegistry.sol +104 -33
  461. package/contracts/registry/IRegistryService.sol +34 -40
  462. package/contracts/registry/IRelease.sol +29 -0
  463. package/contracts/registry/ITransferInterceptor.sol +1 -2
  464. package/contracts/registry/Registry.sol +469 -200
  465. package/contracts/registry/RegistryAdmin.sol +173 -0
  466. package/contracts/registry/RegistryAuthorization.sol +337 -0
  467. package/contracts/registry/RegistryService.sol +90 -131
  468. package/contracts/registry/RegistryServiceManager.sol +23 -32
  469. package/contracts/registry/ReleaseAdmin.sol +199 -0
  470. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  471. package/contracts/registry/ReleaseRegistry.sol +525 -0
  472. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  473. package/contracts/registry/TokenRegistry.sol +265 -64
  474. package/contracts/shared/Component.sol +210 -0
  475. package/contracts/shared/ComponentService.sol +691 -0
  476. package/contracts/shared/ComponentServiceManager.sol +38 -0
  477. package/contracts/shared/ContractLib.sol +312 -0
  478. package/contracts/shared/IComponent.sol +58 -0
  479. package/contracts/shared/IComponentService.sol +111 -0
  480. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  481. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  482. package/contracts/shared/INftOwnable.sol +6 -2
  483. package/contracts/shared/IPolicyHolder.sol +23 -14
  484. package/contracts/shared/IRegisterable.sol +22 -1
  485. package/contracts/shared/IRegistryLinked.sol +0 -1
  486. package/contracts/shared/IService.sol +12 -5
  487. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  488. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  489. package/contracts/shared/Lifecycle.sol +88 -0
  490. package/contracts/shared/NftIdSet.sol +65 -0
  491. package/contracts/shared/NftOwnable.sol +36 -27
  492. package/contracts/shared/PolicyHolder.sol +23 -41
  493. package/contracts/shared/Registerable.sol +52 -20
  494. package/contracts/shared/RegistryLinked.sol +9 -19
  495. package/contracts/shared/Service.sol +36 -41
  496. package/contracts/shared/TokenHandler.sol +322 -13
  497. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  498. package/contracts/staking/IStaking.sol +366 -0
  499. package/contracts/staking/IStakingService.sol +127 -0
  500. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  501. package/contracts/staking/Staking.sol +797 -0
  502. package/contracts/staking/StakingLib.sol +195 -0
  503. package/contracts/staking/StakingManager.sol +53 -0
  504. package/contracts/staking/StakingReader.sol +171 -0
  505. package/contracts/staking/StakingService.sol +321 -0
  506. package/contracts/staking/StakingServiceManager.sol +46 -0
  507. package/contracts/staking/StakingStore.sol +1368 -0
  508. package/contracts/staking/TargetHandler.sol +132 -0
  509. package/contracts/staking/TargetManagerLib.sol +234 -0
  510. package/contracts/{types → type}/AddressSet.sol +1 -1
  511. package/contracts/type/Amount.sol +154 -0
  512. package/contracts/{types → type}/Blocknumber.sol +38 -20
  513. package/contracts/type/ChainId.sol +101 -0
  514. package/contracts/{types → type}/ClaimId.sol +6 -1
  515. package/contracts/{types → type}/Fee.sol +28 -26
  516. package/contracts/{types → type}/Key32.sol +2 -2
  517. package/contracts/type/Key32Set.sol +62 -0
  518. package/contracts/{types → type}/NftId.sol +21 -16
  519. package/contracts/{types → type}/NftIdSet.sol +2 -2
  520. package/contracts/type/ObjectType.sol +307 -0
  521. package/contracts/{types → type}/PayoutId.sol +10 -10
  522. package/contracts/{types → type}/Referral.sol +2 -1
  523. package/contracts/type/RequestId.sol +75 -0
  524. package/contracts/type/RiskId.sol +75 -0
  525. package/contracts/type/RoleId.sol +180 -0
  526. package/contracts/type/Seconds.sol +120 -0
  527. package/contracts/type/Selector.sol +107 -0
  528. package/contracts/{types → type}/StateId.sol +41 -2
  529. package/contracts/type/String.sol +65 -0
  530. package/contracts/{types → type}/Timestamp.sol +20 -9
  531. package/contracts/type/UFixed.sol +263 -0
  532. package/contracts/{types → type}/Version.sol +58 -7
  533. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  534. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  535. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  536. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  537. package/package.json +12 -8
  538. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  540. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  545. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  546. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  547. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  548. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  550. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  553. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  555. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  560. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  562. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  564. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  567. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  569. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  571. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
  573. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  575. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  577. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  579. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  581. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  583. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -602
  587. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  592. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
  594. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  598. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  600. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  602. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  604. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  605. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  606. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  607. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  608. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  610. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  611. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  612. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  614. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  615. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  616. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  617. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  620. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  622. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  624. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  626. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  628. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  629. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  630. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  631. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  632. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  633. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  634. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  636. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
  638. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  640. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  642. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  644. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  646. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  648. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  650. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  652. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  653. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  654. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  656. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  658. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  660. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  662. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  664. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  666. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  668. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  670. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  673. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  675. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  677. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  679. package/contracts/components/Component.sol +0 -253
  680. package/contracts/components/Distribution.sol +0 -284
  681. package/contracts/components/IComponent.sol +0 -76
  682. package/contracts/components/IDistributionComponent.sol +0 -71
  683. package/contracts/components/IPoolComponent.sol +0 -113
  684. package/contracts/components/IProductComponent.sol +0 -40
  685. package/contracts/components/Pool.sol +0 -302
  686. package/contracts/components/Product.sol +0 -371
  687. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  688. package/contracts/instance/BundleManager.sol +0 -126
  689. package/contracts/instance/Cloneable.sol +0 -51
  690. package/contracts/instance/InstanceAccessManager.sol +0 -527
  691. package/contracts/instance/ObjectManager.sol +0 -82
  692. package/contracts/instance/base/ComponentService.sol +0 -121
  693. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  694. package/contracts/instance/base/KeyValueStore.sol +0 -180
  695. package/contracts/instance/base/Lifecycle.sol +0 -117
  696. package/contracts/instance/module/IAccess.sol +0 -54
  697. package/contracts/instance/module/ISetup.sol +0 -33
  698. package/contracts/instance/module/ITreasury.sol +0 -23
  699. package/contracts/instance/service/ApplicationService.sol +0 -355
  700. package/contracts/instance/service/BundleService.sol +0 -436
  701. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  702. package/contracts/instance/service/ClaimService.sol +0 -239
  703. package/contracts/instance/service/DistributionService.sol +0 -431
  704. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  705. package/contracts/instance/service/IBundleService.sol +0 -96
  706. package/contracts/instance/service/IClaimService.sol +0 -92
  707. package/contracts/instance/service/IDistributionService.sol +0 -99
  708. package/contracts/instance/service/IPolicyService.sol +0 -137
  709. package/contracts/instance/service/IPoolService.sol +0 -99
  710. package/contracts/instance/service/IProductService.sol +0 -40
  711. package/contracts/instance/service/PolicyService.sol +0 -541
  712. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  713. package/contracts/instance/service/PoolService.sol +0 -303
  714. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  715. package/contracts/instance/service/ProductService.sol +0 -210
  716. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  717. package/contracts/registry/RegistryAccessManager.sol +0 -216
  718. package/contracts/registry/ReleaseManager.sol +0 -324
  719. package/contracts/shared/ContractDeployerLib.sol +0 -72
  720. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  721. package/contracts/test/TestFee.sol +0 -25
  722. package/contracts/test/TestRegisterable.sol +0 -18
  723. package/contracts/test/TestRoleId.sol +0 -14
  724. package/contracts/test/TestService.sol +0 -25
  725. package/contracts/test/TestToken.sol +0 -26
  726. package/contracts/test/TestVersion.sol +0 -44
  727. package/contracts/test/TestVersionable.sol +0 -17
  728. package/contracts/types/Amount.sol +0 -65
  729. package/contracts/types/ChainId.sol +0 -38
  730. package/contracts/types/NumberId.sol +0 -52
  731. package/contracts/types/ObjectType.sol +0 -157
  732. package/contracts/types/RiskId.sol +0 -43
  733. package/contracts/types/RoleId.sol +0 -97
  734. package/contracts/types/Seconds.sol +0 -54
  735. package/contracts/types/UFixed.sol +0 -326
  736. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimpleProduct} from "./SimpleProduct.sol";
8
+
9
+ contract SimpleProductAuthorization
10
+ is BasicProductAuthorization
11
+ {
12
+ constructor(string memory componentName)
13
+ BasicProductAuthorization(componentName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
27
+ }
28
+ }
@@ -0,0 +1,93 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBaseStore} from "./IBaseStore.sol";
5
+
6
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
7
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
10
+ import {Lifecycle} from "../shared/Lifecycle.sol";
11
+
12
+ abstract contract BaseStore is
13
+ Lifecycle,
14
+ IBaseStore
15
+ {
16
+
17
+ mapping(Key32 key32 => IBaseStore.Metadata metadata) private _metadata;
18
+
19
+ function _createMetadata(
20
+ Key32 key32
21
+ )
22
+ internal
23
+ {
24
+ ObjectType objectType = key32.toObjectType();
25
+ if (objectType.eqz()) {
26
+ revert ErrorBaseStoreTypeUndefined(objectType);
27
+ }
28
+
29
+ Metadata storage metadata = _metadata[key32];
30
+ if (metadata.updatedIn.gtz()) {
31
+ revert ErrorBaseStoreAlreadyCreated(key32, objectType);
32
+ }
33
+
34
+ if(!hasLifecycle(objectType)) {
35
+ revert ErrorBaseStoreNoLifecycle(objectType);
36
+ }
37
+
38
+ Blocknumber blocknumber = BlocknumberLib.current();
39
+ StateId initialState = getInitialState(objectType);
40
+
41
+ // set metadata
42
+ metadata.objectType = objectType;
43
+ metadata.state = initialState;
44
+ metadata.updatedIn = blocknumber;
45
+ }
46
+
47
+ function _updateState(
48
+ Key32 key32,
49
+ StateId state
50
+ )
51
+ internal
52
+ returns (Blocknumber lastUpdatedIn, StateId oldState)
53
+ {
54
+ if (state.eqz()) {
55
+ revert ErrorBaseStoreStateZero(key32);
56
+ }
57
+
58
+ Metadata storage metadata = _metadata[key32];
59
+ oldState = metadata.state;
60
+ lastUpdatedIn = metadata.updatedIn;
61
+
62
+ if (oldState.eqz()) {
63
+ revert ErrorBaseStoreNotExisting(key32);
64
+ }
65
+
66
+ // update state
67
+ if(state != KEEP_STATE()) {
68
+ checkTransition(oldState, metadata.objectType, oldState, state);
69
+ metadata.state = state;
70
+
71
+ // solhint-disable-next-line avoid-tx-origin
72
+ }
73
+
74
+ // update metadata
75
+ metadata.updatedIn = BlocknumberLib.current();
76
+ }
77
+
78
+ function exists(Key32 key32) public view returns (bool) {
79
+ return _metadata[key32].state.gtz();
80
+ }
81
+
82
+ function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
83
+ return _metadata[key32];
84
+ }
85
+
86
+ function getState(Key32 key32) public view returns (StateId state) {
87
+ return _metadata[key32].state;
88
+ }
89
+
90
+ function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
91
+ return Key32Lib.toKey32(objectType, id);
92
+ }
93
+ }
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId, NftIdLib} from "../type/NftId.sol";
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {BUNDLE} from "../type/ObjectType.sol";
8
+
9
+ import {ObjectSet} from "./base/ObjectSet.sol";
10
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
11
+
12
+ contract BundleSet is
13
+ ObjectSet
14
+ {
15
+ using LibNftIdSet for LibNftIdSet.Set;
16
+
17
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+
20
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
24
+
25
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
27
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
28
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
29
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
30
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
31
+
32
+ mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
33
+
34
+ /// @dev links a policy to its bundle
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
36
+
37
+ // ensure bundle is unlocked (in active set) and registered with this instance
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
39
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
40
+ }
41
+
42
+ _activePolicies[bundleNftId].add(policyNftId);
43
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
44
+ }
45
+
46
+
47
+ /// @dev unlinks a policy from its bundle
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
49
+
50
+ // ensure bundle is registered with this instance
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
52
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
53
+ }
54
+
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
57
+ }
58
+
59
+
60
+ /// @dev add a new bundle to a pool registerd with this instance
61
+ // the corresponding pool is fetched via instance reader
62
+ function add(NftId bundleNftId) external restricted() {
63
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
64
+
65
+ // ensure pool is registered with instance
66
+ if(poolNftId.eqz()) {
67
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
68
+ }
69
+
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
71
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
72
+ }
73
+
74
+
75
+ /// @dev unlocked (active) bundles are available to collateralize new policies
76
+ function unlock(NftId bundleNftId) external restricted() {
77
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
79
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
80
+ }
81
+
82
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
83
+ function lock(NftId bundleNftId) external restricted() {
84
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
87
+ }
88
+
89
+
90
+ function checkBundle(NftId productNftId, NftId bundleId)
91
+ public
92
+ view
93
+ returns (bool exists, bool active)
94
+ {
95
+ Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
96
+ exists = _contains(productNftId, bundleKey32);
97
+
98
+ if (exists) {
99
+ active = _isActive(productNftId, bundleKey32);
100
+ }
101
+ }
102
+
103
+ function bundles(NftId poolNftId) external view returns(uint256) {
104
+ return _objects(poolNftId);
105
+ }
106
+
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
+ }
110
+
111
+ function activeBundles(NftId poolNftId) external view returns(uint256) {
112
+ return _activeObjs(poolNftId);
113
+ }
114
+
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
+ }
118
+
119
+ function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
+ return _activePolicies[bundleNftId].size();
121
+ }
122
+
123
+ function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
129
+ }
130
+ }
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ILifecycle} from "../shared/ILifecycle.sol";
5
+
6
+ import {Blocknumber} from "../type/Blocknumber.sol";
7
+ import {Key32, KeyId} from "../type/Key32.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {StateId} from "../type/StateId.sol";
10
+
11
+
12
+ interface IBaseStore is ILifecycle {
13
+
14
+ error ErrorBaseStoreTypeUndefined(ObjectType objectType);
15
+ error ErrorBaseStoreAlreadyCreated(Key32 key, ObjectType objectType);
16
+ error ErrorBaseStoreNoLifecycle(ObjectType objectType);
17
+ error ErrorBaseStoreStateZero(Key32 key);
18
+ error ErrorBaseStoreNotExisting(Key32 key);
19
+
20
+
21
+ struct Metadata {
22
+ // slot 0
23
+ ObjectType objectType;
24
+ StateId state;
25
+ Blocknumber updatedIn;
26
+ }
27
+
28
+ /// @dev check if a metadata entry with the key exists
29
+ function exists(Key32 key) external view returns (bool);
30
+ /// @dev retrieve the metadata for a given key
31
+ function getMetadata(Key32 key) external view returns (Metadata memory metadata);
32
+ /// @dev retrieve the state for a given key
33
+ function getState(Key32 key) external view returns (StateId state);
34
+
35
+ /// @dev convert an object type and an id to a key32
36
+ function toKey32(ObjectType objectType, KeyId id) external pure returns(Key32);
37
+ }
@@ -1,102 +1,156 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
-
6
- import {ClaimId} from "../types/ClaimId.sol";
7
- import {DistributorType} from "../types/DistributorType.sol";
8
- import {PayoutId} from "../types/PayoutId.sol";
9
- import {NftId} from "../types/NftId.sol";
10
- import {StateId} from "../types/StateId.sol";
11
- import {ReferralId} from "../types/Referral.sol";
12
- import {RiskId} from "../types/RiskId.sol";
13
- import {VersionPart} from "../types/Version.sol";
14
- import {Key32} from "../types/Key32.sol";
15
-
4
+ import {IAccess} from "../authorization/IAccess.sol";
16
5
  import {IRegisterable} from "../shared/IRegisterable.sol";
17
6
 
18
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
19
-
20
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
21
- import {BundleManager} from "./BundleManager.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {BundleSet} from "./BundleSet.sol";
9
+ import {RiskSet} from "./RiskSet.sol";
10
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
22
11
  import {InstanceReader} from "./InstanceReader.sol";
23
-
24
- import {IBundle} from "./module/IBundle.sol";
25
- import {IBundleService} from "./service/IBundleService.sol";
26
- import {IComponents} from "./module/IComponents.sol";
27
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
28
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
29
- import {IPolicy} from "./module/IPolicy.sol";
30
- import {IDistribution} from "./module/IDistribution.sol";
31
- import {IRisk} from "./module/IRisk.sol";
32
- import {ISetup} from "./module/ISetup.sol";
33
-
12
+ import {InstanceStore} from "./InstanceStore.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {ProductStore} from "./ProductStore.sol";
15
+ import {RoleId} from "../type/RoleId.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
34
18
 
35
19
 
36
20
  interface IInstance is
37
- IRegisterable,
38
- ITransferInterceptor,
39
- IAccessManaged,
40
- IKeyValueStore
21
+ IRegisterable
41
22
  {
42
- error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
43
- error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
23
+ // role handling
24
+ event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
25
+ event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
26
+ event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
27
+ event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
28
+
29
+ // target handling
30
+ event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
31
+ event LogInstanceTargetLocked(address target, bool locked);
32
+ event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
33
+
34
+ // modifier is onlyRoleAdmin
35
+ error ErrorInstanceNotCustomRole(RoleId roleId);
36
+ error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
44
37
 
45
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
46
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
47
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
38
+ error ErrorInstanceInstanceAdminZero();
39
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
40
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
41
+
42
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
43
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
44
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
45
+
46
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
47
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
48
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
48
49
 
49
50
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
50
51
 
51
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
52
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
53
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
52
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
53
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
54
+
55
+ struct InstanceContracts {
56
+ InstanceAdmin instanceAdmin;
57
+ InstanceStore instanceStore;
58
+ ProductStore productStore;
59
+ BundleSet bundleSet;
60
+ RiskSet riskSet;
61
+ InstanceReader instanceReader;
62
+ }
63
+
64
+ struct InstanceInfo {
65
+ uint64 requestsCount;
66
+ }
67
+
68
+ ///--- instance ---------------------------------------------------------//
69
+
70
+ /// @dev Locks/unlocks the complete instance, including all its components.
71
+ function setInstanceLocked(bool locked) external;
72
+
73
+ /// @dev Upgrades the instance reader to the specified target.
74
+ function upgradeInstanceReader() external;
75
+
76
+ /// @dev Sets the instance reader for the instance.
77
+ /// Permissioned: only the instance service may call this function.
78
+ function setInstanceReader(InstanceReader instanceReader) external;
79
+
80
+ ///--- staking ----------------------------------------------------------//
81
+
82
+ /// @dev Sets the duration for locking new stakes on this instance..
83
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
84
+
85
+ /// @dev Sets the staking reward rate [apr] for this instance.
86
+ function setStakingRewardRate(UFixed rewardRate) external;
87
+
88
+ /// @dev Sets the maximum staked amount for this instance.
89
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
90
+
91
+ /// @dev Refills the staking reward reserves for the specified target.
92
+ function refillStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
93
+
94
+ /// @dev Defunds the staking reward reserves for the specified target.
95
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
96
+
97
+ ///--- product/component ------------------------------------------------//
98
+
99
+ /// @dev Locks/unlocks the specified target.
100
+ function setTargetLocked(address target, bool locked) external;
101
+
102
+ /// @dev Register a product with the instance.
103
+ function registerProduct(address product, address token) external returns (NftId productNftId);
104
+
105
+ ///--- authz ------------------------------------------------------------//
54
106
 
55
- function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external;
56
- function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external;
57
- function updatePoolSetupState(NftId poolNftId, StateId newState) external;
107
+ /// @dev Creates a new custom role for the calling instance.
108
+ /// Custom roles are intended to be used for access control of custom components and its helper contracts.
109
+ /// Custom roles are not intended to be used as target roles for custom contracts.
110
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
58
111
 
59
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
60
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
61
- function updateBundleState(NftId bundleNftId, StateId newState) external;
112
+ /// @dev Activates/deactivates the specified role.
113
+ /// Only instance owner or account with role admin role can call this function.
114
+ function setRoleActive(RoleId roleId, bool active) external;
62
115
 
63
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external;
64
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
65
- function updateProductSetupState(NftId productNftId, StateId newState) external;
116
+ /// @dev Grants the specified role to the account.
117
+ /// Only active roles can be granted.
118
+ /// Only instance owner or account with role admin role can call this function.
119
+ function grantRole(RoleId roleId, address account) external;
66
120
 
67
- function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external;
68
- function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external;
69
- function updateDistributorTypeState(DistributorType distributorType, StateId newState) external;
121
+ /// @dev Revokes the specified role from the account.
122
+ /// Only instance owner or account with role admin role can call this function.
123
+ function revokeRole(RoleId roleId, address account) external;
70
124
 
71
- function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external;
72
- function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external;
73
- function updateDistributorState(NftId nftId, StateId newState) external;
125
+ /// @dev Creates a new custom target.
126
+ /// Custom targets are intended to be used for access control helper contracts of components.
127
+ /// Custom targets are not intended to be used for components.
128
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
74
129
 
75
- function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external;
76
- function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external;
77
- function updateReferralState(ReferralId referralId, StateId newState) external;
130
+ /// @dev Authorizes the specified functions for the target and provided role.
131
+ function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
78
132
 
79
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
80
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
81
- function updateRiskState(RiskId riskId, StateId newState) external;
133
+ /// @dev Removes any role authorization for the specified functions.
134
+ function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
82
135
 
83
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external;
84
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
85
- function updateApplicationState(NftId applicationNftId, StateId newState) external;
136
+ //--- getters -----------------------------------------------------------//
86
137
 
87
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
88
- function updatePolicyState(NftId policyNftId, StateId newState) external;
138
+ /// @dev returns the overall locking state of the instance (including all components)
139
+ function isInstanceLocked() external view returns (bool isLocked);
89
140
 
90
- function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external;
91
- function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external;
92
- function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external;
141
+ /// @dev returns the locking state of the specified target
142
+ function isTargetLocked(address target) external view returns (bool isLocked);
93
143
 
94
- function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory claim) external;
95
- function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory claim, StateId newState) external;
96
- function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external;
144
+ // get products
145
+ function products() external view returns (uint256 productCount);
146
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
97
147
 
98
- function getMajorVersion() external pure returns (VersionPart majorVersion);
148
+ // get supporting contracts
99
149
  function getInstanceReader() external view returns (InstanceReader);
100
- function getBundleManager() external view returns (BundleManager);
101
- function getInstanceAccessManager() external view returns (InstanceAccessManager);
150
+ function getBundleSet() external view returns (BundleSet);
151
+ function getRiskSet() external view returns (RiskSet);
152
+ function getInstanceAdmin() external view returns (InstanceAdmin);
153
+ function getInstanceStore() external view returns (InstanceStore);
154
+ function getProductStore() external view returns (ProductStore);
155
+ function isTokenRegistryDisabled() external view returns (bool);
102
156
  }