@etherisc/gif-next 0.0.2-c9711ab-345 → 0.0.2-c99b1cc-016

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 (557) hide show
  1. package/README.md +95 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +183 -497
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -397
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +209 -133
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -201
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1633 -807
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1277 -1707
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -365
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -143
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -333
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +152 -390
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +362 -445
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +170 -134
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -152
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +141 -192
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +517 -281
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +131 -372
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +691 -558
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +191 -123
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +266 -435
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +358 -127
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +477 -373
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -124
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +258 -427
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +183 -133
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -143
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -332
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  276. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  292. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  301. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  355. package/contracts/accounting/AccountingService.sol +274 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +47 -0
  358. package/contracts/authorization/AccessAdmin.sol +458 -269
  359. package/contracts/authorization/AccessAdminLib.sol +396 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  361. package/contracts/authorization/Authorization.sol +159 -208
  362. package/contracts/authorization/IAccess.sol +25 -6
  363. package/contracts/authorization/IAccessAdmin.sol +87 -79
  364. package/contracts/authorization/IAuthorization.sol +9 -37
  365. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  366. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  367. package/contracts/distribution/BasicDistribution.sol +21 -19
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  369. package/contracts/distribution/Distribution.sol +46 -96
  370. package/contracts/distribution/DistributionService.sol +243 -132
  371. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  372. package/contracts/distribution/IDistributionComponent.sol +4 -11
  373. package/contracts/distribution/IDistributionService.sol +47 -29
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +86 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +433 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BaseStore.sol +93 -0
  388. package/contracts/instance/BundleSet.sol +42 -38
  389. package/contracts/instance/IBaseStore.sol +37 -0
  390. package/contracts/instance/IInstance.sol +113 -43
  391. package/contracts/instance/IInstanceService.sol +61 -34
  392. package/contracts/instance/Instance.sol +201 -104
  393. package/contracts/instance/InstanceAdmin.sol +275 -162
  394. package/contracts/instance/InstanceAuthorizationV3.sol +152 -81
  395. package/contracts/instance/InstanceReader.sol +460 -261
  396. package/contracts/instance/InstanceService.sol +333 -262
  397. package/contracts/instance/InstanceServiceManager.sol +6 -7
  398. package/contracts/instance/InstanceStore.sol +153 -107
  399. package/contracts/instance/ProductStore.sol +290 -0
  400. package/contracts/instance/RiskSet.sol +126 -0
  401. package/contracts/instance/TargetNames.sol +10 -0
  402. package/contracts/instance/base/BalanceStore.sol +4 -6
  403. package/contracts/instance/base/ObjectCounter.sol +1 -2
  404. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  405. package/contracts/instance/base/ObjectSet.sol +31 -33
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +28 -14
  409. package/contracts/instance/module/IDistribution.sol +21 -8
  410. package/contracts/instance/module/IPolicy.sol +50 -29
  411. package/contracts/instance/module/IRisk.sol +5 -0
  412. package/contracts/oracle/BasicOracle.sol +3 -7
  413. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  414. package/contracts/oracle/IOracle.sol +9 -4
  415. package/contracts/oracle/IOracleService.sol +2 -1
  416. package/contracts/oracle/Oracle.sol +11 -25
  417. package/contracts/oracle/OracleService.sol +119 -87
  418. package/contracts/oracle/OracleServiceManager.sol +6 -6
  419. package/contracts/pool/BasicPool.sol +35 -40
  420. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  421. package/contracts/pool/BundleService.sol +117 -182
  422. package/contracts/pool/BundleServiceManager.sol +6 -6
  423. package/contracts/pool/IBundleService.sol +29 -48
  424. package/contracts/pool/IPoolComponent.sol +19 -15
  425. package/contracts/pool/IPoolService.sol +93 -72
  426. package/contracts/pool/Pool.sol +144 -141
  427. package/contracts/pool/PoolLib.sol +341 -0
  428. package/contracts/pool/PoolService.sol +373 -321
  429. package/contracts/pool/PoolServiceManager.sol +4 -4
  430. package/contracts/product/ApplicationService.sol +144 -47
  431. package/contracts/product/ApplicationServiceManager.sol +4 -4
  432. package/contracts/product/BasicProduct.sol +11 -15
  433. package/contracts/product/BasicProductAuthorization.sol +32 -12
  434. package/contracts/product/ClaimService.sol +394 -185
  435. package/contracts/product/ClaimServiceManager.sol +4 -4
  436. package/contracts/product/IApplicationService.sol +29 -3
  437. package/contracts/product/IClaimService.sol +48 -11
  438. package/contracts/product/IPolicyService.sol +61 -43
  439. package/contracts/product/IPricingService.sol +11 -10
  440. package/contracts/product/IProductComponent.sol +27 -5
  441. package/contracts/product/IRiskService.sol +48 -0
  442. package/contracts/product/PolicyService.sol +426 -310
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +4 -4
  445. package/contracts/product/PricingService.sol +90 -84
  446. package/contracts/product/PricingServiceManager.sol +4 -4
  447. package/contracts/product/Product.sol +190 -110
  448. package/contracts/product/RiskService.sol +189 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -40
  451. package/contracts/registry/IRegistry.sol +70 -32
  452. package/contracts/registry/IRegistryService.sol +5 -12
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +367 -207
  456. package/contracts/registry/RegistryAdmin.sol +114 -288
  457. package/contracts/registry/RegistryAuthorization.sol +336 -0
  458. package/contracts/registry/RegistryService.sol +38 -49
  459. package/contracts/registry/RegistryServiceManager.sol +3 -3
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  462. package/contracts/registry/ReleaseRegistry.sol +279 -239
  463. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  464. package/contracts/registry/TokenRegistry.sol +61 -59
  465. package/contracts/shared/Component.sol +72 -142
  466. package/contracts/shared/ComponentService.sol +428 -388
  467. package/contracts/shared/ComponentServiceManager.sol +8 -5
  468. package/contracts/shared/ContractLib.sol +312 -0
  469. package/contracts/shared/IComponent.sol +6 -18
  470. package/contracts/shared/IComponentService.sol +43 -40
  471. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  472. package/contracts/shared/ILifecycle.sol +3 -1
  473. package/contracts/shared/INftOwnable.sol +4 -0
  474. package/contracts/shared/IPolicyHolder.sol +12 -22
  475. package/contracts/shared/IRegisterable.sol +22 -1
  476. package/contracts/shared/IService.sol +3 -5
  477. package/contracts/shared/InitializableERC165.sol +10 -2
  478. package/contracts/shared/InstanceLinkedComponent.sol +74 -54
  479. package/contracts/shared/Lifecycle.sol +15 -4
  480. package/contracts/shared/NftOwnable.sol +31 -9
  481. package/contracts/shared/PolicyHolder.sol +18 -54
  482. package/contracts/shared/Registerable.sol +52 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +20 -35
  485. package/contracts/shared/TokenHandler.sol +310 -26
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +271 -71
  488. package/contracts/staking/IStakingService.sol +45 -78
  489. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  490. package/contracts/staking/Staking.sol +526 -245
  491. package/contracts/staking/StakingLib.sol +195 -0
  492. package/contracts/staking/StakingManager.sol +12 -9
  493. package/contracts/staking/StakingReader.sol +70 -82
  494. package/contracts/staking/StakingService.sol +62 -152
  495. package/contracts/staking/StakingServiceManager.sol +7 -5
  496. package/contracts/staking/StakingStore.sol +1093 -330
  497. package/contracts/staking/TargetHandler.sol +132 -0
  498. package/contracts/staking/TargetManagerLib.sol +73 -46
  499. package/contracts/type/Amount.sol +19 -0
  500. package/contracts/type/Blocknumber.sol +15 -15
  501. package/contracts/type/ChainId.sol +101 -0
  502. package/contracts/type/ClaimId.sol +6 -1
  503. package/contracts/type/Fee.sol +8 -8
  504. package/contracts/type/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/type/NftId.sol +7 -0
  507. package/contracts/type/ObjectType.sol +73 -37
  508. package/contracts/type/PayoutId.sol +10 -10
  509. package/contracts/type/RiskId.sol +38 -6
  510. package/contracts/type/RoleId.sol +61 -55
  511. package/contracts/type/Seconds.sol +27 -0
  512. package/contracts/type/Selector.sol +5 -0
  513. package/contracts/type/StateId.sol +15 -1
  514. package/contracts/type/String.sol +12 -0
  515. package/contracts/type/Timestamp.sol +4 -7
  516. package/contracts/type/UFixed.sol +38 -126
  517. package/contracts/type/Version.sol +54 -5
  518. package/contracts/upgradeability/IVersionable.sol +3 -0
  519. package/contracts/upgradeability/ProxyManager.sol +93 -45
  520. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  521. package/contracts/upgradeability/Versionable.sol +8 -5
  522. package/package.json +5 -4
  523. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  524. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  525. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  529. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  531. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  532. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  533. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  535. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  536. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  539. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  540. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  541. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  542. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  543. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  544. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  545. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  546. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  547. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  548. package/contracts/instance/module/IAccess.sol +0 -46
  549. package/contracts/product/IProductService.sol +0 -33
  550. package/contracts/product/ProductService.sol +0 -99
  551. package/contracts/product/ProductServiceManager.sol +0 -39
  552. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  553. package/contracts/shared/IKeyValueStore.sol +0 -54
  554. package/contracts/shared/InitializableCustom.sol +0 -177
  555. package/contracts/shared/KeyValueStore.sol +0 -131
  556. package/contracts/staking/StakeManagerLib.sol +0 -231
  557. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,164 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "StakingLifecycle",
4
- "sourceName": "contracts/staking/StakingLifecycle.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "stateMutability": "nonpayable",
9
- "type": "constructor"
10
- },
11
- {
12
- "inputs": [
13
- {
14
- "internalType": "ObjectType",
15
- "name": "objectType",
16
- "type": "uint8"
17
- },
18
- {
19
- "internalType": "StateId",
20
- "name": "fromStateId",
21
- "type": "uint8"
22
- },
23
- {
24
- "internalType": "StateId",
25
- "name": "toStateId",
26
- "type": "uint8"
27
- }
28
- ],
29
- "name": "ErrorInvalidStateTransition",
30
- "type": "error"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "internalType": "ObjectType",
36
- "name": "objectType",
37
- "type": "uint8"
38
- }
39
- ],
40
- "name": "ErrorNoLifecycle",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "ObjectType",
47
- "name": "objectType",
48
- "type": "uint8"
49
- },
50
- {
51
- "internalType": "StateId",
52
- "name": "fromId",
53
- "type": "uint8"
54
- },
55
- {
56
- "internalType": "StateId",
57
- "name": "toId",
58
- "type": "uint8"
59
- }
60
- ],
61
- "name": "checkTransition",
62
- "outputs": [],
63
- "stateMutability": "view",
64
- "type": "function"
65
- },
66
- {
67
- "inputs": [
68
- {
69
- "internalType": "ObjectType",
70
- "name": "objectType",
71
- "type": "uint8"
72
- }
73
- ],
74
- "name": "getInitialState",
75
- "outputs": [
76
- {
77
- "internalType": "StateId",
78
- "name": "",
79
- "type": "uint8"
80
- }
81
- ],
82
- "stateMutability": "view",
83
- "type": "function"
84
- },
85
- {
86
- "inputs": [
87
- {
88
- "internalType": "ObjectType",
89
- "name": "objectType",
90
- "type": "uint8"
91
- }
92
- ],
93
- "name": "hasLifecycle",
94
- "outputs": [
95
- {
96
- "internalType": "bool",
97
- "name": "",
98
- "type": "bool"
99
- }
100
- ],
101
- "stateMutability": "view",
102
- "type": "function"
103
- },
104
- {
105
- "inputs": [
106
- {
107
- "internalType": "ObjectType",
108
- "name": "objectType",
109
- "type": "uint8"
110
- },
111
- {
112
- "internalType": "StateId",
113
- "name": "fromId",
114
- "type": "uint8"
115
- },
116
- {
117
- "internalType": "StateId",
118
- "name": "toId",
119
- "type": "uint8"
120
- }
121
- ],
122
- "name": "isValidTransition",
123
- "outputs": [
124
- {
125
- "internalType": "bool",
126
- "name": "",
127
- "type": "bool"
128
- }
129
- ],
130
- "stateMutability": "view",
131
- "type": "function"
132
- }
133
- ],
134
- "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b6089565b6024601f5b60016036565b602c600b601e565b60346020601e565b565b60ff8281165f90815260208190526040902054161560545760546075565b60ff9182165f908152602081905260409020805460ff191691909216179055565b634e487b7160e01b5f52600160045260245ffd5b61036b806100965f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80630d3581811461004e578063a89896751461008a578063bf1db3f91461009f578063e9e96c70146100c2575b5f80fd5b61007361005c3660046102ac565b60ff9081165f908152602081905260409020541690565b60405160ff90911681526020015b60405180910390f35b61009d6100983660046102ce565b6100ff565b005b6100b26100ad3660046102ac565b61020f565b6040519015158152602001610081565b6100b26100d03660046102ce565b60ff9283165f908152600160209081526040808320948616835293815283822092851682529190915220541690565b60ff8381165f908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015610161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101859190610316565b156101ad576040516321b9f44760e01b815260ff841660048201526024015b60405180910390fd5b60ff8084165f9081526001602090815260408083208685168452825280832085851684529091529020541661020a57604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016101a4565b505050565b60ff8181165f9081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015610271573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102959190610316565b92915050565b60ff811681146102a9575f80fd5b50565b5f602082840312156102bc575f80fd5b81356102c78161029b565b9392505050565b5f805f606084860312156102e0575f80fd5b83356102eb8161029b565b925060208401356102fb8161029b565b9150604084013561030b8161029b565b809150509250925092565b5f60208284031215610326575f80fd5b815180151581146102c7575f80fdfea26469706673582212208ea3a2c8a12844eef95bf26505165e6093de2d42defb41b84415c58525ecbcb764736f6c634300081a0033",
135
- "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c80630d3581811461004e578063a89896751461008a578063bf1db3f91461009f578063e9e96c70146100c2575b5f80fd5b61007361005c3660046102ac565b60ff9081165f908152602081905260409020541690565b60405160ff90911681526020015b60405180910390f35b61009d6100983660046102ce565b6100ff565b005b6100b26100ad3660046102ac565b61020f565b6040519015158152602001610081565b6100b26100d03660046102ce565b60ff9283165f908152600160209081526040808320948616835293815283822092851682529190915220541690565b60ff8381165f908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015610161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101859190610316565b156101ad576040516321b9f44760e01b815260ff841660048201526024015b60405180910390fd5b60ff8084165f9081526001602090815260408083208685168452825280832085851684529091529020541661020a57604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016101a4565b505050565b60ff8181165f9081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015610271573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102959190610316565b92915050565b60ff811681146102a9575f80fd5b50565b5f602082840312156102bc575f80fd5b81356102c78161029b565b9392505050565b5f805f606084860312156102e0575f80fd5b83356102eb8161029b565b925060208401356102fb8161029b565b9150604084013561030b8161029b565b809150509250925092565b5f60208284031215610326575f80fd5b815180151581146102c7575f80fdfea26469706673582212208ea3a2c8a12844eef95bf26505165e6093de2d42defb41b84415c58525ecbcb764736f6c634300081a0033",
136
- "linkReferences": {
137
- "contracts/type/StateId.sol": {
138
- "StateIdLib": [
139
- {
140
- "length": 20,
141
- "start": 447
142
- },
143
- {
144
- "length": 20,
145
- "start": 719
146
- }
147
- ]
148
- }
149
- },
150
- "deployedLinkReferences": {
151
- "contracts/type/StateId.sol": {
152
- "StateIdLib": [
153
- {
154
- "length": 20,
155
- "start": 297
156
- },
157
- {
158
- "length": 20,
159
- "start": 569
160
- }
161
- ]
162
- }
163
- }
164
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a5d64b58f2ce370700cec8a3cc399eee.json"
4
- }
@@ -1,16 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "MathLib",
4
- "sourceName": "contracts/type/UFixed.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "name": "MathLigMulDivOverflow",
9
- "type": "error"
10
- }
11
- ],
12
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220629048970b23464bc18bc1ab0a62b29b959e39ba69dbe3ba01a199f7c6ff738a64736f6c634300081a0033",
13
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220629048970b23464bc18bc1ab0a62b29b959e39ba69dbe3ba01a199f7c6ff738a64736f6c634300081a0033",
14
- "linkReferences": {},
15
- "deployedLinkReferences": {}
16
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IAccess} from "./IAccess.sol";
5
- import {IAuthorization} from "./IAuthorization.sol";
6
- import {ObjectType} from "../type/ObjectType.sol";
7
- import {RoleId} from "../type/RoleId.sol";
8
- import {Str} from "../type/String.sol";
9
-
10
- interface IModuleAuthorization is
11
- IAccess,
12
- IAuthorization
13
- {
14
-
15
- /// @dev Returns the list of service targets.
16
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
17
-
18
- /// @dev Returns the service target for the specified domain.
19
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
20
- }
21
-
@@ -1,78 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Authorization} from "./Authorization.sol";
5
- import {IAccess} from "./IAccess.sol";
6
- import {IModuleAuthorization} from "./IModuleAuthorization.sol";
7
- import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
8
- import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
9
- import {SelectorLib} from "../type/Selector.sol";
10
- import {Str, StrLib} from "../type/String.sol";
11
- import {TimestampLib} from "../type/Timestamp.sol";
12
- import {VersionPart} from "../type/Version.sol";
13
-
14
- contract ModuleAuthorization is
15
- Authorization,
16
- IModuleAuthorization
17
- {
18
-
19
- ObjectType[] internal _serviceDomains;
20
- mapping(ObjectType domain => Str target) internal _serviceTarget;
21
-
22
- constructor(string memory moduleName)
23
- Authorization(moduleName)
24
- { }
25
-
26
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
27
- return _serviceDomains;
28
- }
29
-
30
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
31
- return _serviceTarget[serviceDomain];
32
- }
33
-
34
- /// @dev Add a GIF role for the provided role id and name.
35
- function _addGifRole(RoleId roleId, string memory name) internal returns (RoleInfo memory info) {
36
- _addRole(
37
- roleId,
38
- _toRoleInfo(
39
- ADMIN_ROLE(),
40
- RoleType.Gif,
41
- type(uint32).max,
42
- name));
43
- }
44
-
45
- /// @dev Add the service target role for the specified service domain
46
- function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
47
- // add service domain
48
- _serviceDomains.push(serviceDomain);
49
-
50
- // get versioned target name
51
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
52
- ObjectTypeLib.toName(serviceDomain),
53
- "Service",
54
- getRelease().toInt());
55
-
56
- _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
57
-
58
- RoleId serviceRoleId = getServiceRole(serviceDomain);
59
- string memory serviceRoleName = ObjectTypeLib.toVersionedName(
60
- ObjectTypeLib.toName(serviceDomain),
61
- "ServiceRole",
62
- getRelease().toInt());
63
-
64
- _addTargetWithRole(
65
- serviceTargetName,
66
- serviceRoleId,
67
- serviceRoleName);
68
- }
69
-
70
- /// @dev role id for targets registry, staking and instance
71
- function _getTargetRoleId(ObjectType targetDomain)
72
- internal
73
- returns (RoleId targetRoleId)
74
- {
75
- return RoleIdLib.roleForType(targetDomain);
76
- }
77
- }
78
-
@@ -1,46 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
5
-
6
- import {NftId} from "../../type/NftId.sol";
7
- import {RoleId} from "../../type/RoleId.sol";
8
- import {Timestamp} from "../../type/Timestamp.sol";
9
-
10
- interface IAccess {
11
-
12
- enum Type {
13
- NotInitialized,
14
- Core,
15
- Gif,
16
- Custom
17
- }
18
-
19
- struct RoleInfo {
20
- ShortString name;
21
- Type rtype;
22
- //bool isLocked;
23
- RoleId admin;
24
- Timestamp createdAt;
25
- Timestamp updatedAt;
26
- }
27
-
28
- struct TargetInfo {
29
- ShortString name;
30
- Type ttype;
31
- bool isLocked;
32
- Timestamp createdAt;
33
- Timestamp updatedAt;
34
- }
35
-
36
- error ErrorIAccessRoleIdTooBig(RoleId roleId);
37
- error ErrorIAccessRoleIdTooSmall(RoleId roleId);
38
- error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
39
-
40
- error ErrorIAccessTargetAddressZero();
41
- error ErrorIAccessTargetTypeInvalid(address target, Type ttype);
42
- error ErrorIAccessTargetLocked(address target);
43
- error ErrorIAccessTargetNotRegistered(address target);
44
- error ErrorIAccessTargetAuthorityInvalid(address target, address targetAuthority);
45
- error ErrorIAccessTargetInstanceMismatch(address target, NftId targetParentNftId, NftId instanceNftId);
46
- }
@@ -1,33 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
- import {IService} from "../shared/IService.sol";
6
-
7
- import {NftId} from "../type/NftId.sol";
8
- import {ReferralId} from "../type/Referral.sol";
9
- import {RiskId} from "../type/RiskId.sol";
10
- import {StateId} from "../type/StateId.sol";
11
- import {Timestamp} from "../type/Timestamp.sol";
12
- import {UFixed} from "../type/UFixed.sol";
13
- import {Fee} from "../type/Fee.sol";
14
-
15
- interface IProductService is IService {
16
-
17
- function createRisk(
18
- RiskId riskId,
19
- bytes memory data
20
- ) external;
21
-
22
-
23
- function updateRisk(
24
- RiskId riskId,
25
- bytes memory data
26
- ) external;
27
-
28
-
29
- function updateRiskState(
30
- RiskId riskId,
31
- StateId newState
32
- ) external;
33
- }
@@ -1,99 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IInstance} from "../instance/IInstance.sol";
5
- import {IInstanceService} from "../instance/IInstanceService.sol";
6
- import {IPoolService} from "../pool/PoolService.sol";
7
- import {IProductService} from "./IProductService.sol";
8
- import {IRegistryService} from "../registry/IRegistryService.sol";
9
- import {IRisk} from "../instance/module/IRisk.sol";
10
-
11
- import {InstanceReader} from "../instance/InstanceReader.sol";
12
- import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
13
- import {KEEP_STATE} from "../type/StateId.sol";
14
- import {NftId} from "../type/NftId.sol";
15
- import {RiskId} from "../type/RiskId.sol";
16
- import {StateId} from "../type/StateId.sol";
17
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
18
-
19
- contract ProductService is
20
- ComponentVerifyingService,
21
- IProductService
22
- {
23
- IInstanceService private _instanceService;
24
- IPoolService internal _poolService;
25
- IRegistryService private _registryService;
26
-
27
- event LogProductServiceSender(address sender);
28
-
29
- function _initialize(
30
- address owner,
31
- bytes memory data
32
- )
33
- internal
34
- initializer
35
- virtual override
36
- {
37
- (
38
- address registryAddress,,
39
- //address managerAddress
40
- address authority
41
- ) = abi.decode(data, (address, address, address));
42
-
43
- initializeService(registryAddress, authority, owner);
44
-
45
- _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
46
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
47
- _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
48
-
49
- registerInterface(type(IProductService).interfaceId);
50
- }
51
-
52
-
53
- function createRisk(
54
- RiskId riskId,
55
- bytes memory data
56
- )
57
- external
58
- override
59
- {
60
- (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
61
- IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
62
-
63
- instance.getInstanceStore().createRisk(
64
- riskId,
65
- riskInfo
66
- );
67
- }
68
-
69
-
70
- function updateRisk(
71
- RiskId riskId,
72
- bytes memory data
73
- )
74
- external
75
- {
76
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
77
- InstanceReader instanceReader = instance.getInstanceReader();
78
-
79
- IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
80
- riskInfo.data = data;
81
- instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
82
- }
83
-
84
-
85
- function updateRiskState(
86
- RiskId riskId,
87
- StateId state
88
- )
89
- external
90
- {
91
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
92
- instance.getInstanceStore().updateRiskState(riskId, state);
93
- }
94
-
95
-
96
- function _getDomain() internal pure override returns(ObjectType) {
97
- return PRODUCT();
98
- }
99
- }
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../upgradeability/IVersionable.sol";
5
- import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
- import {ProductService} from "./ProductService.sol";
7
-
8
- contract ProductServiceManager is ProxyManager {
9
-
10
- ProductService private _productService;
11
-
12
- /// @dev initializes proxy manager with product service implementation
13
- constructor(
14
- address authority,
15
- address registryAddress,
16
- bytes32 salt
17
- )
18
- ProxyManager(registryAddress)
19
- {
20
- ProductService svc = new ProductService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
23
- address(svc),
24
- data,
25
- salt);
26
-
27
- _productService = ProductService(address(versionable));
28
- }
29
-
30
- //--- view functions ----------------------------------------------------//
31
- function getProductService()
32
- external
33
- view
34
- returns (ProductService productService)
35
- {
36
- return _productService;
37
- }
38
-
39
- }
@@ -1,117 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IInstance} from "../instance/IInstance.sol";
5
- import {InstanceReader} from "../instance/InstanceReader.sol";
6
- import {IRegistry} from "../registry/IRegistry.sol";
7
- import {NftId} from "../type/NftId.sol";
8
- import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
9
- import {Service} from "../shared/Service.sol";
10
-
11
-
12
- abstract contract ComponentVerifyingService is
13
- Service
14
- {
15
-
16
- error ErrorComponentVerifyingServiceComponentTypeInvalid(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
17
- error ErrorComponentVerifyingServiceComponentIsLocked(NftId componentNftId);
18
-
19
- /// @dev based on the sender address returns the corresponding components nft id, info and instance.
20
- /// the function reverts iff:
21
- /// - there is no such component
22
- /// - the component has the wrong object type
23
- /// - the component is locked
24
- function _getAndVerifyActiveComponent(
25
- ObjectType expectedType // assume always of `component` type
26
- )
27
- internal
28
- view
29
- returns(
30
- NftId componentNftId,
31
- IRegistry.ObjectInfo memory componentInfo,
32
- IInstance instance
33
- )
34
- {
35
- componentNftId = getRegistry().getNftId(msg.sender);
36
- (componentInfo, instance) = _getAndVerifyComponentInfo(
37
- componentNftId,
38
- expectedType,
39
- true); // only active
40
- }
41
-
42
-
43
- /// @dev returns the component info and instance contract reference given a component nft id
44
- /// the function reverts iff:
45
- /// - there is no such component
46
- /// - the component has the wrong object type
47
- function _getAndVerifyComponentInfo(
48
- NftId componentNftId,
49
- ObjectType expectedType, // assume always of `component` type
50
- bool onlyActive
51
- )
52
- internal
53
- virtual
54
- view
55
- returns(
56
- IRegistry.ObjectInfo memory info,
57
- IInstance instance
58
- )
59
- {
60
- IRegistry registry = getRegistry();
61
- info = registry.getObjectInfo(componentNftId);
62
-
63
- // if not COMPONENT require exact match
64
- if(expectedType != COMPONENT()) {
65
- // ensure component is of expected type
66
- if(info.objectType != expectedType) {
67
- revert ErrorComponentVerifyingServiceComponentTypeInvalid(
68
- componentNftId,
69
- expectedType,
70
- info.objectType);
71
- }
72
- } else {
73
- if(!(info.objectType == PRODUCT()
74
- || info.objectType == POOL()
75
- || info.objectType == DISTRIBUTION()
76
- || info.objectType == ORACLE()
77
- ))
78
- {
79
- revert ErrorComponentVerifyingServiceComponentTypeInvalid(
80
- componentNftId,
81
- expectedType,
82
- info.objectType);
83
- }
84
- }
85
-
86
- instance = _getInstance(info.parentNftId);
87
-
88
- // ensure component is not locked
89
- if (onlyActive) {
90
- if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
91
- revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
92
- }
93
- }
94
- }
95
-
96
-
97
- /// @dev returns the linked product nft id for the specified component
98
- function _getProductNftId(
99
- InstanceReader instanceReader,
100
- NftId componentNftId
101
- )
102
- internal
103
- virtual
104
- view
105
- returns (NftId productNftId)
106
- {
107
- return instanceReader.getComponentInfo(componentNftId).productNftId;
108
- }
109
-
110
-
111
- /// @dev returns an IInstance contract reference for the specified instance nft id
112
- function _getInstance(NftId instanceNftId) internal view returns (IInstance) {
113
- return IInstance(
114
- getRegistry().getObjectInfo(
115
- instanceNftId).objectAddress);
116
- }
117
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../type/Blocknumber.sol";
5
- import {Key32, KeyId} from "../type/Key32.sol";
6
- import {NftId} from "../type/NftId.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
- import {StateId} from "../type/StateId.sol";
9
-
10
- import {ILifecycle} from "./ILifecycle.sol";
11
-
12
- interface IKeyValueStore is ILifecycle {
13
-
14
- error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
15
- error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
16
- error ErrorKeyValueStoreNoLifecycle(ObjectType objectType);
17
- error ErrorKeyValueStoreStateZero(Key32 key);
18
- error ErrorKeyValueStoreNotExisting(Key32 key);
19
-
20
- event LogInfoCreated(ObjectType objectType, KeyId keyId, StateId state, address createdBy, address txOrigin);
21
- event LogInfoUpdated(ObjectType objectType, KeyId keyId, StateId state, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
22
- event LogStateUpdated(ObjectType objectType, KeyId keyId, StateId stateOld, StateId stateNew, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
23
-
24
- struct Value {
25
- Metadata metadata;
26
- bytes data;
27
- }
28
-
29
- struct Metadata {
30
- ObjectType objectType;
31
- StateId state;
32
- // TODO updatedBy needs concept that says what value should go here
33
- // eg account outside gif objects that initiated the tx
34
- // implies the caller needs to be propagated through all calls up to key values store itself
35
- // to always have the instance address there doesn't seem to make sense
36
- // address updatedBy;
37
- Blocknumber updatedIn;
38
- Blocknumber createdIn;
39
- }
40
-
41
- // generic state changing functions
42
- // function create(Key32 key, bytes memory data) external;
43
- // function update(Key32 key, bytes memory data, StateId state) external;
44
- // function updateData(Key32 key, bytes memory data) external;
45
- // function updateState(Key32 key, StateId state) external;
46
-
47
- function exists(Key32 key) external view returns (bool);
48
- function get(Key32 key) external view returns (Value memory value);
49
- function getData(Key32 key) external view returns (bytes memory data);
50
- function getMetadata(Key32 key) external view returns (Metadata memory metadata);
51
- function getState(Key32 key) external view returns (StateId state);
52
-
53
- function toKey32(ObjectType objectType, KeyId id) external pure returns(Key32);
54
- }