@etherisc/gif-next 0.0.2-683d8b2-607 → 0.0.2-684bde0-724

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 (555) hide show
  1. package/README.md +100 -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 +212 -473
  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 +139 -381
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +772 -316
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +241 -117
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -187
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +579 -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 +1480 -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 +2045 -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 +1423 -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 +1171 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -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 +2471 -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/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +560 -66
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +319 -57
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +568 -166
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1685 -774
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +332 -227
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +142 -104
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -728
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -350
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +129 -129
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -318
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +194 -421
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +568 -248
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +219 -103
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +374 -36
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -212
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -392
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +229 -105
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +158 -98
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +287 -427
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +472 -235
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +348 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -222
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +196 -163
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +195 -107
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +279 -419
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +21 -2
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +364 -42
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +471 -112
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +749 -455
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +491 -242
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +590 -542
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +189 -119
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -129
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -318
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +341 -133
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
  275. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/Staking.sol/Staking.json +468 -419
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +180 -99
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -171
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +209 -149
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +117 -78
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  348. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  350. package/contracts/accounting/AccountingService.sol +274 -0
  351. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  352. package/contracts/accounting/IAccountingService.sol +47 -0
  353. package/contracts/authorization/AccessAdmin.sol +456 -266
  354. package/contracts/authorization/AccessAdminLib.sol +396 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  356. package/contracts/authorization/Authorization.sol +159 -208
  357. package/contracts/authorization/IAccess.sol +25 -6
  358. package/contracts/authorization/IAccessAdmin.sol +87 -79
  359. package/contracts/authorization/IAuthorization.sol +9 -36
  360. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  361. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  362. package/contracts/distribution/BasicDistribution.sol +20 -28
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
  364. package/contracts/distribution/Distribution.sol +46 -82
  365. package/contracts/distribution/DistributionService.sol +276 -116
  366. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  367. package/contracts/distribution/IDistributionComponent.sol +11 -14
  368. package/contracts/distribution/IDistributionService.sol +56 -26
  369. package/contracts/examples/fire/DamageLevel.sol +59 -0
  370. package/contracts/examples/fire/FirePool.sol +86 -0
  371. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  372. package/contracts/examples/fire/FireProduct.sol +433 -0
  373. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  374. package/contracts/examples/fire/FireUSD.sol +26 -0
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  376. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  379. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  381. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  382. package/contracts/instance/BundleSet.sol +42 -38
  383. package/contracts/instance/IInstance.sol +101 -42
  384. package/contracts/instance/IInstanceService.sol +52 -31
  385. package/contracts/instance/Instance.sol +189 -97
  386. package/contracts/instance/InstanceAdmin.sol +275 -158
  387. package/contracts/instance/InstanceAuthorizationV3.sol +120 -56
  388. package/contracts/instance/InstanceReader.sol +478 -251
  389. package/contracts/instance/InstanceService.sol +298 -229
  390. package/contracts/instance/InstanceServiceManager.sol +6 -7
  391. package/contracts/instance/InstanceStore.sol +24 -2
  392. package/contracts/instance/RiskSet.sol +118 -0
  393. package/contracts/instance/base/BalanceStore.sol +3 -5
  394. package/contracts/instance/base/ObjectCounter.sol +1 -2
  395. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  396. package/contracts/instance/base/ObjectSet.sol +31 -33
  397. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  398. package/contracts/instance/module/IBundle.sol +6 -5
  399. package/contracts/instance/module/IComponents.sol +30 -20
  400. package/contracts/instance/module/IDistribution.sol +21 -9
  401. package/contracts/instance/module/IPolicy.sol +50 -29
  402. package/contracts/instance/module/IRisk.sol +5 -0
  403. package/contracts/mock/Dip.sol +1 -1
  404. package/contracts/oracle/BasicOracle.sol +1 -4
  405. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  406. package/contracts/oracle/IOracle.sol +9 -4
  407. package/contracts/oracle/IOracleComponent.sol +2 -1
  408. package/contracts/oracle/IOracleService.sol +2 -1
  409. package/contracts/oracle/Oracle.sol +21 -24
  410. package/contracts/oracle/OracleService.sol +117 -85
  411. package/contracts/oracle/OracleServiceManager.sol +6 -6
  412. package/contracts/pool/BasicPool.sol +37 -28
  413. package/contracts/pool/BasicPoolAuthorization.sol +42 -9
  414. package/contracts/pool/BundleService.sol +213 -91
  415. package/contracts/pool/BundleServiceManager.sol +6 -6
  416. package/contracts/pool/IBundleService.sol +40 -25
  417. package/contracts/pool/IPoolComponent.sol +20 -10
  418. package/contracts/pool/IPoolService.sol +97 -77
  419. package/contracts/pool/Pool.sol +145 -113
  420. package/contracts/pool/PoolLib.sol +359 -0
  421. package/contracts/pool/PoolService.sol +413 -235
  422. package/contracts/pool/PoolServiceManager.sol +4 -4
  423. package/contracts/product/ApplicationService.sol +143 -46
  424. package/contracts/product/ApplicationServiceManager.sol +4 -4
  425. package/contracts/product/BasicProduct.sol +12 -45
  426. package/contracts/product/BasicProductAuthorization.sol +33 -10
  427. package/contracts/product/ClaimService.sol +384 -159
  428. package/contracts/product/ClaimServiceManager.sol +4 -4
  429. package/contracts/product/IApplicationService.sol +29 -3
  430. package/contracts/product/IClaimService.sol +44 -8
  431. package/contracts/product/IPolicyService.sol +61 -37
  432. package/contracts/product/IPricingService.sol +11 -10
  433. package/contracts/product/IProductComponent.sol +28 -5
  434. package/contracts/product/IRiskService.sol +37 -0
  435. package/contracts/product/PolicyService.sol +443 -273
  436. package/contracts/product/PolicyServiceLib.sol +139 -0
  437. package/contracts/product/PolicyServiceManager.sol +4 -4
  438. package/contracts/product/PricingService.sol +90 -84
  439. package/contracts/product/PricingServiceManager.sol +4 -4
  440. package/contracts/product/Product.sol +175 -95
  441. package/contracts/product/RiskService.sol +163 -0
  442. package/contracts/product/RiskServiceManager.sol +39 -0
  443. package/contracts/registry/ChainNft.sol +49 -31
  444. package/contracts/registry/IRegistry.sol +69 -27
  445. package/contracts/registry/IRegistryService.sol +5 -12
  446. package/contracts/registry/IRelease.sol +29 -0
  447. package/contracts/registry/ITransferInterceptor.sol +1 -2
  448. package/contracts/registry/Registry.sol +348 -177
  449. package/contracts/registry/RegistryAdmin.sol +100 -357
  450. package/contracts/registry/RegistryAuthorization.sol +284 -0
  451. package/contracts/registry/RegistryService.sol +38 -49
  452. package/contracts/registry/RegistryServiceManager.sol +3 -3
  453. package/contracts/registry/ReleaseAdmin.sol +195 -0
  454. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  455. package/contracts/registry/ReleaseRegistry.sol +262 -275
  456. package/contracts/registry/ServiceAuthorizationV3.sol +202 -57
  457. package/contracts/registry/TokenRegistry.sol +12 -13
  458. package/contracts/shared/Component.sol +65 -136
  459. package/contracts/shared/ComponentService.sol +441 -343
  460. package/contracts/shared/ComponentServiceManager.sol +8 -5
  461. package/contracts/shared/ContractLib.sol +311 -0
  462. package/contracts/shared/IComponent.sol +6 -18
  463. package/contracts/shared/IComponentService.sol +50 -41
  464. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  465. package/contracts/shared/ILifecycle.sol +3 -1
  466. package/contracts/shared/INftOwnable.sol +4 -0
  467. package/contracts/shared/IPolicyHolder.sol +12 -22
  468. package/contracts/shared/IRegisterable.sol +22 -1
  469. package/contracts/shared/IService.sol +3 -5
  470. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  471. package/contracts/shared/InstanceLinkedComponent.sol +82 -39
  472. package/contracts/shared/KeyValueStore.sol +1 -1
  473. package/contracts/shared/Lifecycle.sol +15 -4
  474. package/contracts/shared/NftOwnable.sol +33 -11
  475. package/contracts/shared/PolicyHolder.sol +20 -59
  476. package/contracts/shared/Registerable.sol +52 -21
  477. package/contracts/shared/RegistryLinked.sol +9 -14
  478. package/contracts/shared/Service.sol +20 -35
  479. package/contracts/shared/TokenHandler.sol +310 -26
  480. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  481. package/contracts/staking/IStaking.sol +48 -20
  482. package/contracts/staking/IStakingService.sol +21 -11
  483. package/contracts/staking/Staking.sol +203 -108
  484. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  485. package/contracts/staking/StakingManager.sol +8 -6
  486. package/contracts/staking/StakingReader.sol +40 -24
  487. package/contracts/staking/StakingService.sol +96 -39
  488. package/contracts/staking/StakingServiceManager.sol +6 -5
  489. package/contracts/staking/StakingStore.sol +3 -2
  490. package/contracts/staking/TargetManagerLib.sol +8 -4
  491. package/contracts/type/Amount.sol +27 -5
  492. package/contracts/type/Blocknumber.sol +7 -1
  493. package/contracts/type/ClaimId.sol +6 -1
  494. package/contracts/type/Fee.sol +8 -8
  495. package/contracts/type/Key32.sol +2 -2
  496. package/contracts/type/Key32Set.sol +62 -0
  497. package/contracts/type/NftId.sol +7 -0
  498. package/contracts/type/ObjectType.sol +73 -37
  499. package/contracts/type/PayoutId.sol +10 -10
  500. package/contracts/type/Referral.sol +1 -0
  501. package/contracts/type/RiskId.sol +38 -6
  502. package/contracts/type/RoleId.sol +61 -55
  503. package/contracts/type/Seconds.sol +25 -1
  504. package/contracts/type/Selector.sol +5 -0
  505. package/contracts/type/StateId.sol +15 -1
  506. package/contracts/type/String.sol +12 -0
  507. package/contracts/type/Timestamp.sol +10 -5
  508. package/contracts/type/UFixed.sol +56 -126
  509. package/contracts/type/Version.sol +54 -5
  510. package/contracts/upgradeability/IVersionable.sol +3 -0
  511. package/contracts/upgradeability/ProxyManager.sol +93 -45
  512. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  513. package/contracts/upgradeability/Versionable.sol +8 -5
  514. package/package.json +5 -4
  515. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  516. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  517. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  518. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  519. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  521. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  522. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  523. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  524. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  525. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  526. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  527. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +0 -4
  528. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +0 -1487
  529. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +0 -4
  530. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +0 -1876
  531. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +0 -4
  532. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +0 -974
  533. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  534. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  535. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  536. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  537. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  538. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.dbg.json +0 -4
  539. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +0 -34
  540. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  541. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  542. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  543. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  544. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  545. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  546. package/contracts/instance/module/IAccess.sol +0 -46
  547. package/contracts/product/IProductService.sol +0 -33
  548. package/contracts/product/ProductService.sol +0 -99
  549. package/contracts/product/ProductServiceManager.sol +0 -39
  550. package/contracts/registry/GlobalRegistry.sol +0 -89
  551. package/contracts/registry/GlobalRegistryAdmin.sol +0 -38
  552. package/contracts/registry/IGlobalRegistry.sol +0 -17
  553. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  554. package/contracts/shared/InitializableCustom.sol +0 -177
  555. package/contracts/shared/MainnetContract.sol +0 -15
@@ -1,25 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
4
6
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IRegistryService} from "../registry/IRegistryService.sol";
7
+ import {IRelease} from "../registry/IRelease.sol";
6
8
  import {IStaking} from "./IStaking.sol";
7
9
  import {IVersionable} from "../upgradeability/IVersionable.sol";
8
10
 
9
11
  import {Amount, AmountLib} from "../type/Amount.sol";
10
12
  import {Component} from "../shared/Component.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IComponentService} from "../shared/IComponentService.sol";
11
15
  import {NftId} from "../type/NftId.sol";
12
- import {ObjectType, STAKING} from "../type/ObjectType.sol";
16
+ import {ObjectType, STAKE, STAKING} from "../type/ObjectType.sol";
13
17
  import {Seconds} from "../type/Seconds.sol";
14
- import {StakeManagerLib} from "./StakeManagerLib.sol";
18
+ import {Registerable} from "../shared/Registerable.sol";
19
+ import {StakingLib} from "./StakingLib.sol";
15
20
  import {StakingReader} from "./StakingReader.sol";
16
21
  import {StakingStore} from "./StakingStore.sol";
17
22
  import {TargetManagerLib} from "./TargetManagerLib.sol";
18
23
  import {Timestamp} from "../type/Timestamp.sol";
19
24
  import {TokenHandler} from "../shared/TokenHandler.sol";
25
+ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
20
26
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
21
27
  import {UFixed} from "../type/UFixed.sol";
22
- import {Version, VersionLib} from "../type/Version.sol";
28
+ import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
23
29
  import {Versionable} from "../upgradeability/Versionable.sol";
24
30
 
25
31
  contract Staking is
@@ -28,14 +34,13 @@ contract Staking is
28
34
  IStaking
29
35
  {
30
36
  string public constant CONTRACT_NAME = "Staking";
31
- uint8 private constant GIF_MAJOR_VERSION = 3;
32
37
 
33
38
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
34
39
  bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
35
40
 
36
41
  struct StakingStorage {
37
- IRegistryService _registryService;
38
42
  TokenRegistry _tokenRegistry;
43
+ TokenHandler _tokenHandler;
39
44
  StakingStore _store;
40
45
  StakingReader _reader;
41
46
  NftId _protocolNftId;
@@ -57,24 +62,60 @@ contract Staking is
57
62
  _;
58
63
  }
59
64
 
60
- // set/update staking reader
61
- function setStakingReader(StakingReader stakingReader)
65
+ //--- contract intitialization -------------------------------------------
66
+
67
+ function initializeTokenHandler()
62
68
  external
63
69
  virtual
64
- onlyOwner()
65
70
  {
66
- if(stakingReader.getStaking() != IStaking(this)) {
67
- revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
71
+ if (msg.sender != address(getRegistry())) {
72
+ revert ErrorStakingNotRegistry(msg.sender);
68
73
  }
69
74
 
70
- _getStakingStorage()._reader = stakingReader;
75
+ StakingStorage storage $ = _getStakingStorage();
76
+ address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
77
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
78
+ address(getRegistry()),
79
+ address(this),
80
+ dipToken,
81
+ getRegistry().getAuthority());
71
82
  }
72
83
 
84
+ //--- staking owner functions -------------------------------------------//
73
85
 
74
- // rate management
86
+ // TODO also make sure that protocol rewards can be refilled and withdrawn
87
+
88
+ /// @inheritdoc IStaking
89
+ function setProtocolRewardRate(UFixed rewardRate)
90
+ external
91
+ virtual
92
+ restricted()
93
+ onlyOwner()
94
+ {
95
+ NftId protocolNftId = getRegistry().getProtocolNftId();
96
+ UFixed oldRewardRate = _updateRewardRate(protocolNftId, rewardRate);
97
+ emit LogStakingProtocolRewardRateSet(protocolNftId, oldRewardRate, rewardRate);
98
+ }
99
+
100
+
101
+ /// @inheritdoc IStaking
102
+ function setProtocolLockingPeriod(Seconds lockingPeriod)
103
+ external
104
+ virtual
105
+ restricted()
106
+ onlyOwner()
107
+ {
108
+ NftId protocolNftId = getRegistry().getProtocolNftId();
109
+ Seconds oldLockingPeriod = _updateLockingPeriod(protocolNftId, lockingPeriod);
110
+ emit LogStakingProtocolLockingPeriodSet(protocolNftId, oldLockingPeriod, lockingPeriod);
111
+ }
112
+
113
+
114
+ /// @inheritdoc IStaking
75
115
  function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
76
116
  external
77
117
  virtual
118
+ restricted()
78
119
  onlyOwner()
79
120
  {
80
121
  StakingStorage storage $ = _getStakingStorage();
@@ -89,7 +130,31 @@ contract Staking is
89
130
  emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
90
131
  }
91
132
 
92
- // target management
133
+
134
+ /// @inheritdoc IStaking
135
+ function setStakingReader(StakingReader stakingReader)
136
+ external
137
+ virtual
138
+ onlyOwner()
139
+ {
140
+ if(stakingReader.getStaking() != IStaking(this)) {
141
+ revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
142
+ }
143
+
144
+ _getStakingStorage()._reader = stakingReader;
145
+ }
146
+
147
+
148
+ /// @inheritdoc IStaking
149
+ function approveTokenHandler(IERC20Metadata token, Amount amount)
150
+ public
151
+ restricted()
152
+ onlyOwner()
153
+ {
154
+ _approveTokenHandler(token, amount);
155
+ }
156
+
157
+ //--- target management -------------------------------------------------//
93
158
 
94
159
  function registerTarget(
95
160
  NftId targetNftId,
@@ -116,7 +181,21 @@ contract Staking is
116
181
  objectType: expectedObjectType,
117
182
  chainId: chainId,
118
183
  lockingPeriod: initialLockingPeriod,
119
- rewardRate: initialRewardRate}));
184
+ rewardRate: initialRewardRate,
185
+ maxStakedAmount: AmountLib.max()}));
186
+
187
+ emit LogStakingTargetRegistered(targetNftId, expectedObjectType, initialLockingPeriod, initialRewardRate, AmountLib.max());
188
+ }
189
+
190
+
191
+ function setRewardRate(NftId targetNftId, UFixed rewardRate)
192
+ external
193
+ virtual
194
+ restricted()
195
+ onlyTarget(targetNftId)
196
+ {
197
+ UFixed oldRewardRate = _updateRewardRate(targetNftId, rewardRate);
198
+ emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
120
199
  }
121
200
 
122
201
 
@@ -129,39 +208,24 @@ contract Staking is
129
208
  restricted()
130
209
  onlyTarget(targetNftId)
131
210
  {
132
- (
133
- Seconds oldLockingPeriod,
134
- TargetInfo memory targetInfo
135
- ) = TargetManagerLib.updateLockingPeriod(
136
- this,
137
- targetNftId,
138
- lockingPeriod);
139
-
140
- _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
141
-
211
+ Seconds oldLockingPeriod = _updateLockingPeriod(targetNftId, lockingPeriod);
142
212
  emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
143
213
  }
144
214
 
145
- // TODO add function to set protocol reward rate: onlyOwner
146
- // get protocol nft id (from where)
147
215
 
148
- function setRewardRate(NftId targetNftId, UFixed rewardRate)
216
+ function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount)
149
217
  external
150
218
  virtual
151
219
  restricted()
152
220
  onlyTarget(targetNftId)
153
221
  {
154
- (
155
- UFixed oldRewardRate,
156
- TargetInfo memory targetInfo
157
- ) = TargetManagerLib.updateRewardRate(
158
- this,
159
- targetNftId,
160
- rewardRate);
222
+ IStaking.TargetInfo memory targetInfo = getStakingReader().getTargetInfo(targetNftId);
223
+
224
+ targetInfo.maxStakedAmount = maxStakedAmount;
161
225
 
162
226
  _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
163
227
 
164
- emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
228
+ emit LogStakingMaxStakedAmountSet(targetNftId, maxStakedAmount);
165
229
  }
166
230
 
167
231
 
@@ -196,7 +260,7 @@ contract Staking is
196
260
  returns (Amount newBalance)
197
261
  {
198
262
  StakingStorage storage $ = _getStakingStorage();
199
- uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
263
+ uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
200
264
  UFixed stakingRate = $._reader.getStakingRate(chainId, token);
201
265
  newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
202
266
  }
@@ -209,7 +273,7 @@ contract Staking is
209
273
  returns (Amount newBalance)
210
274
  {
211
275
  StakingStorage storage $ = _getStakingStorage();
212
- uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
276
+ uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
213
277
  UFixed stakingRate = $._reader.getStakingRate(chainId, token);
214
278
  newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
215
279
  }
@@ -245,7 +309,7 @@ contract Staking is
245
309
  restricted() // only staking service
246
310
  {
247
311
  StakingStorage storage $ = _getStakingStorage();
248
- Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
312
+ Timestamp lockedUntil = StakingLib.checkCreateParameters(
249
313
  $._reader,
250
314
  targetNftId,
251
315
  stakeAmount);
@@ -275,7 +339,7 @@ contract Staking is
275
339
  returns (Amount stakeBalance)
276
340
  {
277
341
  StakingStorage storage $ = _getStakingStorage();
278
- stakeBalance = StakeManagerLib.stake(
342
+ stakeBalance = StakingLib.stake(
279
343
  getRegistry(),
280
344
  $._reader,
281
345
  $._store,
@@ -286,20 +350,25 @@ contract Staking is
286
350
 
287
351
  function restake(
288
352
  NftId stakeNftId,
289
- NftId newTargetNftId
353
+ NftId newStakeNftId
290
354
  )
291
355
  external
292
356
  virtual
293
357
  restricted() // only staking service
294
358
  onlyStake(stakeNftId)
295
- returns (NftId newStakeNftId)
359
+ returns (Amount newStakeBalance)
296
360
  {
361
+ _checkNftType(stakeNftId, STAKE());
362
+ _checkNftType(newStakeNftId, STAKE());
363
+
297
364
  // TODO add check that allows additional staking amount
298
365
  StakingStorage storage $ = _getStakingStorage();
299
-
300
- // TODO implement
301
- }
302
-
366
+ newStakeBalance = StakingLib.restake(
367
+ $._reader,
368
+ $._store,
369
+ stakeNftId,
370
+ newStakeNftId);
371
+ }
303
372
 
304
373
  function updateRewards(NftId stakeNftId)
305
374
  external
@@ -347,9 +416,10 @@ contract Staking is
347
416
  Amount rewardsClaimedAmount
348
417
  )
349
418
  {
350
- // TODO add check that stake locking is in the past
351
419
  StakingStorage storage $ = _getStakingStorage();
352
-
420
+
421
+ StakingLib.checkUnstakeParameters($._reader, stakeNftId);
422
+
353
423
  // update rewards since last update
354
424
  NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
355
425
 
@@ -368,70 +438,83 @@ contract Staking is
368
438
  }
369
439
 
370
440
 
371
-
372
- //--- other functions ---------------------------------------------------//
373
-
374
- function collectDipAmount(address from, Amount dipAmount)
375
- external
376
- restricted() // only staking service
377
- {
378
- TokenHandler tokenHandler = getTokenHandler();
379
- address stakingWallet = getWallet();
380
-
381
- StakeManagerLib.checkDipBalanceAndAllowance(
382
- getToken(),
383
- from,
384
- address(tokenHandler),
385
- dipAmount);
386
-
387
- tokenHandler.transfer(from, stakingWallet, dipAmount);
388
- }
389
-
390
-
391
- function transferDipAmount(address to, Amount dipAmount)
392
- external
393
- restricted() // only staking service
394
- {
395
- TokenHandler tokenHandler = getTokenHandler();
396
- address stakingWallet = getWallet();
397
-
398
- StakeManagerLib.checkDipBalanceAndAllowance(
399
- getToken(),
400
- stakingWallet,
401
- address(tokenHandler),
402
- dipAmount);
403
-
404
- tokenHandler.transfer(stakingWallet, to, dipAmount);
405
- }
406
-
407
-
408
441
  //--- view functions ----------------------------------------------------//
409
442
 
410
- function getStakingReader() public view returns (StakingReader reader) {
443
+ function getStakingReader() public virtual view returns (StakingReader reader) {
411
444
  return _getStakingStorage()._reader;
412
445
  }
413
446
 
414
- function getStakingStore() external view returns (StakingStore stakingStore) {
447
+ function getStakingStore() external virtual view returns (StakingStore stakingStore) {
415
448
  return _getStakingStorage()._store;
416
449
  }
417
450
 
418
- function getTokenRegistryAddress() external view returns (address tokenRegistry) {
451
+ function getTokenRegistryAddress() external virtual view returns (address tokenRegistry) {
419
452
  return address(_getStakingStorage()._tokenRegistry);
420
453
  }
421
454
 
455
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
456
+ return _getStakingStorage()._tokenHandler;
457
+ }
458
+
459
+ // from IRegisterable
460
+ function getRelease()
461
+ public
462
+ pure
463
+ virtual override (IRelease, Registerable)
464
+ returns(VersionPart)
465
+ {
466
+ return VersionPartLib.toVersionPart(3);
467
+ }
422
468
 
423
- // from Versionable
469
+ // from IVersionable
424
470
  function getVersion()
425
471
  public
426
472
  pure
427
- virtual override (IVersionable, Versionable)
473
+ virtual override (Component, IVersionable, Versionable)
428
474
  returns(Version)
429
475
  {
430
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
476
+ return VersionLib.toVersion(3,0,0);
431
477
  }
432
478
 
433
479
  //--- internal functions ------------------------------------------------//
434
480
 
481
+ function _updateRewardRate(
482
+ NftId targetNftId,
483
+ UFixed rewardRate
484
+ )
485
+ internal
486
+ virtual
487
+ returns (UFixed oldRewardRate)
488
+ {
489
+
490
+ TargetInfo memory targetInfo;
491
+ (oldRewardRate, targetInfo) = TargetManagerLib.updateRewardRate(
492
+ this,
493
+ targetNftId,
494
+ rewardRate);
495
+
496
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
497
+ }
498
+
499
+
500
+ function _updateLockingPeriod(
501
+ NftId targetNftId,
502
+ Seconds lockingPeriod
503
+ )
504
+ internal
505
+ virtual
506
+ returns (Seconds oldLockingPeriod)
507
+ {
508
+ TargetInfo memory targetInfo;
509
+ (oldLockingPeriod, targetInfo) = TargetManagerLib.updateLockingPeriod(
510
+ this,
511
+ targetNftId,
512
+ lockingPeriod);
513
+
514
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
515
+ }
516
+
517
+
435
518
  function _updateRewards(
436
519
  StakingReader reader,
437
520
  StakingStore store,
@@ -444,7 +527,7 @@ contract Staking is
444
527
  UFixed rewardRate;
445
528
 
446
529
  (targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
447
- (Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
530
+ (Amount rewardIncrement, ) = StakingLib.calculateRewardIncrease(
448
531
  reader,
449
532
  stakeNftId,
450
533
  rewardRate);
@@ -456,13 +539,26 @@ contract Staking is
456
539
  }
457
540
 
458
541
 
542
+ function _approveTokenHandler(
543
+ IERC20Metadata token,
544
+ Amount amount)
545
+ internal
546
+ virtual override
547
+ {
548
+ IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
549
+ token,
550
+ amount);
551
+ }
552
+
553
+
554
+ /// @dev top level initializer (upgradable contract)
459
555
  function _initialize(
460
- address owner,
556
+ address,
461
557
  bytes memory data
462
558
  )
463
559
  internal
464
560
  virtual override
465
- initializer
561
+ initializer()
466
562
  {
467
563
  (
468
564
  address registryAddress,
@@ -474,31 +570,30 @@ contract Staking is
474
570
  // only admin(authority) and dip token address are set in registry at this point
475
571
  IRegistry registry = IRegistry(registryAddress);
476
572
  address authority = registry.getAuthority();
477
- TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
478
- address dipTokenAddress = tokenRegistry.getDipTokenAddress();
479
573
 
480
- initializeComponent(
574
+ // wiring to external contracts
575
+ StakingStorage storage $ = _getStakingStorage();
576
+ $._protocolNftId = registry.getProtocolNftId();
577
+ $._store = StakingStore(stakingStoreAddress);
578
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
579
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
580
+
581
+ _initializeComponent(
481
582
  authority,
482
583
  registryAddress,
483
- registry.getNftId(),
584
+ registry.getNftId(), // parent nft id
484
585
  CONTRACT_NAME,
485
- dipTokenAddress,
486
586
  STAKING(),
487
587
  false, // is interceptor
488
588
  stakingOwner,
489
589
  "", // registry data
490
590
  ""); // component data
491
591
 
492
- _createAndSetTokenHandler();
493
-
494
- // wiring to external contracts
495
- StakingStorage storage $ = _getStakingStorage();
496
- $._protocolNftId = getRegistry().getProtocolNftId();
497
- $._store = StakingStore(stakingStoreAddress);
498
- $._reader = StakingStore(stakingStoreAddress).getStakingReader();
499
- $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
592
+ // HINT: protocol target is created in the StakingStore constructor.
593
+ // This allows setting up the protocol target before the full
594
+ // staking authorization setup is in place.
500
595
 
501
- registerInterface(type(IStaking).interfaceId);
596
+ _registerInterface(type(IStaking).interfaceId);
502
597
  }
503
598
 
504
599