@etherisc/gif-next 0.0.2-f1e0c66-773 → 0.0.2-f1e6957-384

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 (559) hide show
  1. package/README.md +137 -333
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
  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 +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 +485 -26
  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 +588 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -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 +475 -41
  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 +227 -131
  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 +844 -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 +844 -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 +844 -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 +844 -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 +844 -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 +587 -64
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +405 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +625 -182
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1645 -849
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1842
  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/mock/Dip.sol/Dip.json +2 -2
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -365
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -143
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -333
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -448
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +502 -364
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +212 -112
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +340 -112
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -246
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -426
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +266 -435
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +405 -102
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +511 -303
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  183. package/artifacts/contracts/product/Product.sol/Product.json +258 -427
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +495 -253
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -128
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -143
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -332
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  278. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +134 -79
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +401 -313
  360. package/contracts/authorization/AccessAdminLib.sol +678 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  362. package/contracts/authorization/Authorization.sol +179 -207
  363. package/contracts/authorization/IAccess.sol +29 -11
  364. package/contracts/authorization/IAccessAdmin.sol +89 -83
  365. package/contracts/authorization/IAuthorization.sol +9 -37
  366. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  367. package/contracts/authorization/ServiceAuthorization.sol +235 -25
  368. package/contracts/distribution/BasicDistribution.sol +21 -19
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  370. package/contracts/distribution/Distribution.sol +46 -96
  371. package/contracts/distribution/DistributionService.sol +243 -132
  372. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  373. package/contracts/distribution/IDistributionComponent.sol +4 -11
  374. package/contracts/distribution/IDistributionService.sol +47 -29
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BaseStore.sol +93 -0
  389. package/contracts/instance/BundleSet.sol +42 -38
  390. package/contracts/instance/IBaseStore.sol +37 -0
  391. package/contracts/instance/IInstance.sol +113 -43
  392. package/contracts/instance/IInstanceService.sol +61 -34
  393. package/contracts/instance/Instance.sol +201 -104
  394. package/contracts/instance/InstanceAdmin.sol +218 -177
  395. package/contracts/instance/InstanceAuthorizationV3.sol +154 -83
  396. package/contracts/instance/InstanceReader.sol +456 -255
  397. package/contracts/instance/InstanceService.sol +333 -262
  398. package/contracts/instance/InstanceServiceManager.sol +6 -7
  399. package/contracts/instance/InstanceStore.sol +153 -107
  400. package/contracts/instance/ProductStore.sol +290 -0
  401. package/contracts/instance/RiskSet.sol +126 -0
  402. package/contracts/instance/TargetNames.sol +10 -0
  403. package/contracts/instance/base/BalanceStore.sol +4 -6
  404. package/contracts/instance/base/ObjectCounter.sol +1 -2
  405. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  406. package/contracts/instance/base/ObjectSet.sol +31 -33
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +6 -5
  409. package/contracts/instance/module/IComponents.sol +29 -20
  410. package/contracts/instance/module/IDistribution.sol +21 -8
  411. package/contracts/instance/module/IPolicy.sol +50 -29
  412. package/contracts/instance/module/IRisk.sol +5 -0
  413. package/contracts/mock/Dip.sol +1 -1
  414. package/contracts/oracle/BasicOracle.sol +3 -7
  415. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  416. package/contracts/oracle/IOracle.sol +9 -4
  417. package/contracts/oracle/IOracleService.sol +2 -1
  418. package/contracts/oracle/Oracle.sol +11 -25
  419. package/contracts/oracle/OracleService.sol +119 -87
  420. package/contracts/oracle/OracleServiceManager.sol +6 -6
  421. package/contracts/pool/BasicPool.sol +40 -43
  422. package/contracts/pool/BasicPoolAuthorization.sol +39 -13
  423. package/contracts/pool/BundleService.sol +200 -155
  424. package/contracts/pool/BundleServiceManager.sol +6 -6
  425. package/contracts/pool/IBundleService.sol +42 -46
  426. package/contracts/pool/IPoolComponent.sol +19 -15
  427. package/contracts/pool/IPoolService.sol +97 -77
  428. package/contracts/pool/Pool.sol +145 -142
  429. package/contracts/pool/PoolLib.sol +341 -0
  430. package/contracts/pool/PoolService.sol +413 -233
  431. package/contracts/pool/PoolServiceManager.sol +4 -4
  432. package/contracts/product/ApplicationService.sol +144 -47
  433. package/contracts/product/ApplicationServiceManager.sol +4 -4
  434. package/contracts/product/BasicProduct.sol +11 -15
  435. package/contracts/product/BasicProductAuthorization.sol +32 -12
  436. package/contracts/product/ClaimService.sol +394 -185
  437. package/contracts/product/ClaimServiceManager.sol +4 -4
  438. package/contracts/product/IApplicationService.sol +29 -3
  439. package/contracts/product/IClaimService.sol +48 -11
  440. package/contracts/product/IPolicyService.sol +61 -39
  441. package/contracts/product/IPricingService.sol +11 -10
  442. package/contracts/product/IProductComponent.sol +27 -5
  443. package/contracts/product/IRiskService.sol +48 -0
  444. package/contracts/product/PolicyService.sol +434 -288
  445. package/contracts/product/PolicyServiceLib.sol +139 -0
  446. package/contracts/product/PolicyServiceManager.sol +4 -4
  447. package/contracts/product/PricingService.sol +90 -84
  448. package/contracts/product/PricingServiceManager.sol +4 -4
  449. package/contracts/product/Product.sol +198 -108
  450. package/contracts/product/RiskService.sol +189 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +72 -40
  453. package/contracts/registry/IRegistry.sol +70 -32
  454. package/contracts/registry/IRegistryService.sol +5 -12
  455. package/contracts/registry/IRelease.sol +29 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -2
  457. package/contracts/registry/Registry.sol +367 -207
  458. package/contracts/registry/RegistryAdmin.sol +99 -291
  459. package/contracts/registry/RegistryAuthorization.sol +337 -0
  460. package/contracts/registry/RegistryService.sol +38 -49
  461. package/contracts/registry/RegistryServiceManager.sol +3 -3
  462. package/contracts/registry/ReleaseAdmin.sol +199 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  464. package/contracts/registry/ReleaseRegistry.sol +279 -239
  465. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  466. package/contracts/registry/TokenRegistry.sol +61 -59
  467. package/contracts/shared/Component.sol +72 -142
  468. package/contracts/shared/ComponentService.sol +428 -388
  469. package/contracts/shared/ComponentServiceManager.sol +8 -5
  470. package/contracts/shared/ContractLib.sol +312 -0
  471. package/contracts/shared/IComponent.sol +6 -18
  472. package/contracts/shared/IComponentService.sol +43 -40
  473. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  474. package/contracts/shared/ILifecycle.sol +3 -1
  475. package/contracts/shared/INftOwnable.sol +4 -0
  476. package/contracts/shared/IPolicyHolder.sol +12 -22
  477. package/contracts/shared/IRegisterable.sol +22 -1
  478. package/contracts/shared/IService.sol +3 -5
  479. package/contracts/shared/InitializableERC165.sol +10 -2
  480. package/contracts/shared/InstanceLinkedComponent.sol +74 -54
  481. package/contracts/shared/Lifecycle.sol +15 -4
  482. package/contracts/shared/NftOwnable.sol +31 -9
  483. package/contracts/shared/PolicyHolder.sol +18 -54
  484. package/contracts/shared/Registerable.sol +52 -21
  485. package/contracts/shared/RegistryLinked.sol +9 -14
  486. package/contracts/shared/Service.sol +20 -35
  487. package/contracts/shared/TokenHandler.sol +310 -26
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +270 -71
  490. package/contracts/staking/IStakingService.sol +45 -78
  491. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  492. package/contracts/staking/Staking.sol +526 -245
  493. package/contracts/staking/StakingLib.sol +195 -0
  494. package/contracts/staking/StakingManager.sol +12 -9
  495. package/contracts/staking/StakingReader.sol +70 -82
  496. package/contracts/staking/StakingService.sol +62 -152
  497. package/contracts/staking/StakingServiceManager.sol +7 -5
  498. package/contracts/staking/StakingStore.sol +1093 -330
  499. package/contracts/staking/TargetHandler.sol +132 -0
  500. package/contracts/staking/TargetManagerLib.sol +73 -46
  501. package/contracts/type/Amount.sol +19 -0
  502. package/contracts/type/Blocknumber.sol +24 -23
  503. package/contracts/type/ChainId.sol +101 -0
  504. package/contracts/type/ClaimId.sol +6 -1
  505. package/contracts/type/Fee.sol +8 -8
  506. package/contracts/type/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/type/NftId.sol +7 -0
  509. package/contracts/type/ObjectType.sol +73 -37
  510. package/contracts/type/PayoutId.sol +10 -10
  511. package/contracts/type/RiskId.sol +38 -6
  512. package/contracts/type/RoleId.sol +61 -55
  513. package/contracts/type/Seconds.sol +40 -1
  514. package/contracts/type/Selector.sol +5 -0
  515. package/contracts/type/StateId.sol +15 -1
  516. package/contracts/type/String.sol +12 -0
  517. package/contracts/type/Timestamp.sol +14 -7
  518. package/contracts/type/UFixed.sol +38 -126
  519. package/contracts/type/Version.sol +54 -5
  520. package/contracts/upgradeability/IVersionable.sol +3 -0
  521. package/contracts/upgradeability/ProxyManager.sol +94 -46
  522. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  523. package/contracts/upgradeability/Versionable.sol +8 -5
  524. package/package.json +5 -4
  525. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  527. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  528. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  529. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  531. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  532. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  533. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  535. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  537. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  538. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  540. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  541. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  543. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  544. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  546. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  547. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  548. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  549. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  550. package/contracts/instance/module/IAccess.sol +0 -46
  551. package/contracts/product/IProductService.sol +0 -33
  552. package/contracts/product/ProductService.sol +0 -99
  553. package/contracts/product/ProductServiceManager.sol +0 -39
  554. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  555. package/contracts/shared/IKeyValueStore.sol +0 -54
  556. package/contracts/shared/InitializableCustom.sol +0 -177
  557. package/contracts/shared/KeyValueStore.sol +0 -131
  558. package/contracts/staking/StakeManagerLib.sol +0 -231
  559. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,195 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IStaking} from "./IStaking.sol";
6
+ import {IStakingService} from "./IStakingService.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
11
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
12
+ import {StakingReader} from "./StakingReader.sol";
13
+ import {STAKING} from "../type/ObjectType.sol";
14
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
15
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+
19
+ library StakingLib {
20
+
21
+ function checkCreateParameters(
22
+ StakingReader stakingReader,
23
+ NftId targetNftId,
24
+ Amount dipAmount
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Timestamp lockedUntil
30
+ )
31
+ {
32
+ return _checkCreateParameters(stakingReader, targetNftId, dipAmount);
33
+ }
34
+
35
+
36
+ function _checkCreateParameters(
37
+ StakingReader stakingReader,
38
+ NftId targetNftId,
39
+ Amount dipAmount
40
+ )
41
+ internal view
42
+ returns (
43
+ Timestamp lockedUntil
44
+ )
45
+ {
46
+ Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
47
+ checkDipAmount(stakingReader, targetNftId, dipAmount);
48
+
49
+ Timestamp currentTime = TimestampLib.current();
50
+ lockedUntil = currentTime.addSeconds(lockingPeriod);
51
+ }
52
+
53
+
54
+ function checkStakeParameters(
55
+ StakingReader stakingReader,
56
+ NftId stakeNftId
57
+ )
58
+ public
59
+ view
60
+ returns (
61
+ UFixed rewardRate,
62
+ Seconds lockingPeriod
63
+ )
64
+ {
65
+ NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
66
+
67
+ // target nft id must be registered
68
+ if (!stakingReader.isTarget(targetNftId)) {
69
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
70
+ }
71
+
72
+ IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
73
+ rewardRate = info.rewardRate;
74
+ lockingPeriod = info.lockingPeriod;
75
+ }
76
+
77
+
78
+ function checkUnstakeParameters(
79
+ StakingReader stakingReader,
80
+ NftId stakeNftId
81
+ )
82
+ public
83
+ view
84
+ returns (
85
+ Seconds lockingPeriod
86
+ )
87
+ {
88
+ IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
89
+
90
+ if (stakeInfo.lockedUntil > TimestampLib.current()) {
91
+ revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
92
+ }
93
+ }
94
+
95
+
96
+ function checkTarget(
97
+ StakingReader stakingReader,
98
+ NftId targetNftId
99
+ )
100
+ public
101
+ view
102
+ returns (Seconds lockingPeriod)
103
+ {
104
+ // target nft id must be registered
105
+ if (!stakingReader.isTarget(targetNftId)) {
106
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
107
+ }
108
+
109
+ lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
110
+ }
111
+
112
+
113
+ function checkAndGetStakingService(
114
+ IRegistry registry,
115
+ VersionPart release
116
+ )
117
+ public
118
+ view
119
+ returns (IStakingService stakingService)
120
+ {
121
+ if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
122
+ revert IStaking.ErrorStakingReleaseNotActive(release);
123
+ }
124
+
125
+ address stakingServiceAddress = registry.getServiceAddress(STAKING(), release);
126
+ if (stakingServiceAddress == address(0)) {
127
+ revert IStaking.ErrorStakingServiceNotFound(release);
128
+ }
129
+
130
+ return IStakingService(stakingServiceAddress);
131
+ }
132
+
133
+
134
+ function checkDipAmount(
135
+ StakingReader stakingReader,
136
+ NftId targetNftId,
137
+ Amount dipAmount
138
+ )
139
+ public
140
+ view
141
+ {
142
+ // check stake amount > 0
143
+ if (dipAmount.eqz()) {
144
+ revert IStaking.ErrorStakingStakeAmountZero(targetNftId);
145
+ }
146
+
147
+ Amount stakeLimitAmount = stakingReader.getTargetMaxStakedAmount(targetNftId);
148
+ if (dipAmount > stakeLimitAmount) {
149
+ revert IStaking.ErrorStakingTargetMaxStakedAmountExceeded(targetNftId, stakeLimitAmount, dipAmount);
150
+ }
151
+ }
152
+
153
+ function calculateRewardIncrease(
154
+ StakingReader stakingReader,
155
+ NftId stakeNftId,
156
+ UFixed rewardRate
157
+ )
158
+ public
159
+ view
160
+ returns (
161
+ Amount rewardIncreaseAmount
162
+ )
163
+ {
164
+ IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
165
+
166
+ Seconds duration = SecondsLib.toSeconds(
167
+ block.timestamp - stakeInfo.lastUpdateAt.toInt());
168
+
169
+ rewardIncreaseAmount = calculateRewardAmount(
170
+ rewardRate,
171
+ duration,
172
+ stakeInfo.stakedAmount);
173
+ }
174
+
175
+ function calculateRewardAmount(
176
+ UFixed rewardRate,
177
+ Seconds duration,
178
+ Amount stakeAmount
179
+ )
180
+ public
181
+ pure
182
+ returns(
183
+ Amount rewardAmount
184
+ )
185
+ {
186
+ UFixed rewardRateFraction = getYearFraction(duration) * rewardRate;
187
+ rewardAmount = stakeAmount.multiplyWith(rewardRateFraction);
188
+ }
189
+
190
+
191
+ function getYearFraction(Seconds duration) public pure returns (UFixed yearFraction) {
192
+ return UFixedLib.toUFixed(duration.toInt()) / UFixedLib.toUFixed(SecondsLib.oneYear().toInt());
193
+ }
194
+
195
+ }
@@ -16,24 +16,27 @@ contract StakingManager is
16
16
  /// @dev initializes proxy manager with service implementation
17
17
  constructor(
18
18
  address registry,
19
- address tokenRegistry,
19
+ address targetHandler,
20
20
  address stakingStore,
21
- address initialOwner
21
+ address tokenRegistry,
22
+ address initialOwner,
23
+ bytes32 salt
22
24
  )
23
- ProxyManager(registry)
24
25
  {
25
26
  Staking stakingImplementation = new Staking();
26
27
 
27
28
  _initialImplementation = address(stakingImplementation);
28
29
  _initializationData = abi.encode(
29
30
  registry,
30
- tokenRegistry,
31
+ targetHandler,
31
32
  stakingStore,
32
- initialOwner);
33
-
34
- IVersionable versionable = deploy(
35
- _initialImplementation,
36
- _initializationData);
33
+ tokenRegistry);
34
+
35
+ IVersionable versionable = initialize(
36
+ registry,
37
+ _initialImplementation,
38
+ _initializationData,
39
+ salt);
37
40
 
38
41
  _staking = Staking(address(versionable));
39
42
  }
@@ -1,31 +1,38 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
4
6
  import {IRegistry} from "../registry/IRegistry.sol";
5
7
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
6
8
  import {IStaking} from "../staking/IStaking.sol";
7
9
 
8
- import {Amount} from "../type/Amount.sol";
10
+ import {Amount, AmountLib} from "../type/Amount.sol";
9
11
  import {Blocknumber} from "../type/Blocknumber.sol";
10
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
12
+ import {ChainId} from "../type/ChainId.sol";
11
13
  import {NftId} from "../type/NftId.sol";
12
- import {STAKE, TARGET} from "../type/ObjectType.sol";
14
+ import {ObjectType} from "../type/ObjectType.sol";
15
+ import {Seconds} from "../type/Seconds.sol";
13
16
  import {StakingStore} from "./StakingStore.sol";
17
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
14
18
  import {Timestamp} from "../type/Timestamp.sol";
15
19
  import {UFixed} from "../type/UFixed.sol";
16
20
 
21
+
17
22
  contract StakingReader is
18
23
  IRegistryLinked,
19
- InitializableCustom
24
+ Initializable
20
25
  {
21
26
 
22
- error ErrorStakingReaderDependenciesAlreadySet();
27
+ error ErrorStakingReaderUnauthorizedCaler();
23
28
 
29
+ address private _initializeOwner;
24
30
  IRegistry private _registry;
25
31
  IStaking private _staking;
26
32
  StakingStore private _store;
27
33
 
28
- constructor(IRegistry registry) InitializableCustom() {
34
+ constructor(IRegistry registry) {
35
+ _initializeOwner = msg.sender;
29
36
  _registry = registry;
30
37
  }
31
38
 
@@ -34,8 +41,12 @@ contract StakingReader is
34
41
  address stakingStoreAddress
35
42
  )
36
43
  external
37
- initializer
44
+ initializer()
38
45
  {
46
+ if (msg.sender != _initializeOwner) {
47
+ revert ErrorStakingReaderUnauthorizedCaler();
48
+ }
49
+
39
50
  _staking = IStaking(stakingAddress);
40
51
  _store = StakingStore(stakingStoreAddress);
41
52
  }
@@ -50,134 +61,111 @@ contract StakingReader is
50
61
  return _staking;
51
62
  }
52
63
 
53
- function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
54
- return _store.getStakingRate(chainId, token);
64
+ function getProtocolNftId() external view returns (NftId protocolNftId) {
65
+ return _registry.getProtocolNftId();
55
66
  }
56
67
 
57
68
 
58
69
  function isTarget(NftId targetNftId) external view returns (bool) {
59
- return _store.getTargetNftIdSet().exists(targetNftId);
70
+ return _store.getTargetSet().exists(targetNftId);
60
71
  }
61
72
 
62
73
 
63
74
  function targets() external view returns (uint256) {
64
- return _store.getTargetNftIdSet().nftIds();
75
+ return _store.getTargetSet().nftIds();
65
76
  }
66
77
 
67
78
 
68
79
  function getTargetNftId(uint256 idx) external view returns (NftId) {
69
- return _store.getTargetNftIdSet().getNftId(idx);
80
+ return _store.getTargetSet().getNftId(idx);
70
81
  }
71
82
 
72
83
 
73
- function isActive(NftId targetNftId) external view returns (bool) {
74
- return _store.getTargetNftIdSet().isActive(targetNftId);
84
+ function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
85
+ return _registry.getParentNftId(stakeNftId);
75
86
  }
76
87
 
77
88
 
78
- function activeTargets() external view returns (uint256) {
79
- return _store.getTargetNftIdSet().activeNftIds();
89
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
90
+ return _store.getStakeInfo(stakeNftId);
80
91
  }
81
92
 
82
93
 
83
- function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
84
- return _store.getTargetNftIdSet().getActiveNftId(idx);
94
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
95
+ return _store.getTargetInfo(targetNftId);
85
96
  }
86
97
 
87
98
 
88
- function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
89
- return _registry.getObjectInfo(stakeNftId).parentNftId;
99
+ function getLimitInfo(NftId targetNftId) public view returns (IStaking.LimitInfo memory info) {
100
+ return _store.getLimitInfo(targetNftId);
90
101
  }
91
102
 
92
103
 
93
- function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
94
- bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
95
- if (data.length > 0) {
96
- return abi.decode(data, (IStaking.TargetInfo));
97
- }
104
+ function getTvlInfo(NftId targetNftId, address token) public view returns (IStaking.TvlInfo memory info) {
105
+ return _store.getTvlInfo(targetNftId, token);
98
106
  }
99
107
 
100
108
 
101
- function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
102
- bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
103
- if (data.length > 0) {
104
- return abi.decode(data, (IStaking.StakeInfo));
105
- }
109
+ function getTokenInfo(ChainId chainId, address token) public view returns (IStaking.TokenInfo memory info) {
110
+ return _store.getTokenInfo(chainId, token);
106
111
  }
107
112
 
108
113
 
109
- /// @dev get the reward rate that applies to the specified stake nft id.
110
- function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
111
- targetNftId = getTargetNftId(stakeNftId);
112
- rewardRate = getTargetInfo(targetNftId).rewardRate;
114
+ function isSupportedTargetType(ObjectType targetType) public view returns (bool) {
115
+ return _store.getSupportInfo(targetType).isSupported;
113
116
  }
114
117
 
115
118
 
116
- /// @dev get the reward rate for the specified target nft id.
117
- function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
118
- return getTargetInfo(targetNftId).rewardRate;
119
+ function getSupportInfo(ObjectType targetType) public view returns (IStaking.SupportInfo memory info) {
120
+ return _store.getSupportInfo(targetType);
119
121
  }
120
122
 
121
- /// @dev returns the current reward reserve balance for the specified target.
122
- function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
123
- return _store.getReserveBalance(targetNftId);
123
+
124
+ /// @dev Get the locking period that applies to the specified stake NFT ID.
125
+ function getTargetLockingPeriod(NftId stakeNftId) external view returns (NftId targetNftId, Seconds lockingPeriod) {
126
+ targetNftId = getTargetNftId(stakeNftId);
127
+ lockingPeriod = getTargetInfo(targetNftId).lockingPeriod;
124
128
  }
125
129
 
126
- function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
127
- return _store.getStakeBalance(nftId);
130
+
131
+ /// @dev Get the reward rate that applies to the specified stake NFT ID.
132
+ function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
133
+ targetNftId = getTargetNftId(stakeNftId);
134
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
128
135
  }
129
136
 
130
- function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
131
- return _store.getRewardBalance(nftId);
137
+
138
+ /// @dev Get the max staked amount allowed for the specified target NFT ID.
139
+ function getTargetMaxStakedAmount(NftId targetNftId) external view returns (Amount maxStakedAmount) {
140
+ return getTargetInfo(targetNftId).limitAmount;
132
141
  }
133
142
 
134
- function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
135
- return _store.getBalanceUpdatedAt(nftId);
143
+
144
+ /// @dev Get the reward rate for the specified target NFT ID.
145
+ function getLockingPeriod(NftId targetNftId) external view returns (Seconds lockingPeriod) {
146
+ return getTargetInfo(targetNftId).lockingPeriod;
136
147
  }
137
148
 
138
- function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
139
- return _store.getBalanceUpdatedIn(nftId);
149
+
150
+ /// @dev Get the reward rate for the specified target NFT ID.
151
+ function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
152
+ return getTargetInfo(targetNftId).rewardRate;
140
153
  }
141
154
 
142
- function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
143
- return _store.getTotalValueLocked(nftId, token);
155
+ /// @dev returns the current reward reserve balance for the specified target.
156
+ function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
157
+ return getTargetInfo(targetNftId).reserveAmount;
144
158
  }
145
159
 
146
- function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
147
- return _store.getRequiredStakeBalance(nftId);
160
+ function getTotalValueLocked(NftId targetNftId, address token) external view returns (Amount totalValueLocked) {
161
+ return _store.getTvlInfo(targetNftId, token).tvlAmount;
148
162
  }
149
163
 
150
- function getTargetBalances(NftId stakeNftId)
151
- public
152
- view
153
- returns (
154
- Amount balanceAmount,
155
- Amount stakeAmount,
156
- Amount rewardAmount,
157
- Blocknumber lastUpdatedIn
158
- )
159
- {
160
- (
161
- balanceAmount,
162
- stakeAmount,
163
- rewardAmount,
164
- lastUpdatedIn
165
- ) = _store.getTargetBalances(stakeNftId);
164
+ function getRequiredStakeBalance(NftId targetNftId) external view returns (Amount requiredStakedAmount) {
165
+ return _store.getRequiredStakeBalance(targetNftId, true);
166
166
  }
167
167
 
168
- function getStakeBalances(NftId stakeNftId)
169
- external
170
- view
171
- returns (
172
- Amount stakeAmount,
173
- Amount rewardAmount,
174
- Timestamp lastUpdatedAt
175
- )
176
- {
177
- (
178
- stakeAmount,
179
- rewardAmount,
180
- lastUpdatedAt
181
- ) = _store.getStakeBalances(stakeNftId);
168
+ function getRequiredStakeBalance(NftId targetNftId, bool includeTargetTypeRequirements) external view returns (Amount requiredStakedAmount) {
169
+ return _store.getRequiredStakeBalance(targetNftId, includeTargetTypeRequirements);
182
170
  }
183
171
  }