@etherisc/gif-next 0.0.2-bdd64e2-180 → 0.0.2-be78639-672

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