@etherisc/gif-next 0.0.2-ff1bf36-818 → 0.0.2-ff795d8-141

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 (521) hide show
  1. package/README.md +82 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +658 -259
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -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 +507 -206
  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 +177 -441
  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 +96 -325
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -326
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +187 -125
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +90 -167
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +287 -101
  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 +1461 -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 +2018 -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 +1404 -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 +1152 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -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 +2405 -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 +505 -65
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +255 -57
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +510 -162
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1010 -334
  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 +1471 -466
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -231
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +897 -638
  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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +129 -317
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +104 -116
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +105 -269
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +145 -309
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +180 -369
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -134
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +90 -117
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +135 -158
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +318 -306
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +133 -308
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +538 -557
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +177 -111
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +206 -163
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +124 -98
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +267 -370
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +423 -242
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +245 -64
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +258 -209
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +366 -288
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +152 -122
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +242 -332
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -140
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +259 -362
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +169 -176
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +129 -95
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +342 -42
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +548 -103
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +763 -382
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +487 -253
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +81 -227
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +430 -623
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -131
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +394 -300
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +104 -116
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -268
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +197 -118
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  276. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/Staking.sol/Staking.json +300 -337
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +91 -50
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  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 +94 -38
  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 +26 -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/Timestamp.sol/TimestampLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  337. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -80
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +261 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +464 -266
  351. package/contracts/authorization/AccessAdminLib.sol +387 -0
  352. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  353. package/contracts/authorization/Authorization.sol +159 -202
  354. package/contracts/authorization/IAccess.sol +25 -6
  355. package/contracts/authorization/IAccessAdmin.sol +80 -79
  356. package/contracts/authorization/IAuthorization.sol +9 -36
  357. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  358. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  359. package/contracts/distribution/BasicDistribution.sol +20 -17
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  361. package/contracts/distribution/Distribution.sol +39 -89
  362. package/contracts/distribution/DistributionService.sol +235 -115
  363. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  364. package/contracts/distribution/IDistributionComponent.sol +4 -11
  365. package/contracts/distribution/IDistributionService.sol +40 -26
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +86 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +433 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +42 -38
  380. package/contracts/instance/IInstance.sol +96 -17
  381. package/contracts/instance/IInstanceService.sol +49 -31
  382. package/contracts/instance/Instance.sol +181 -69
  383. package/contracts/instance/InstanceAdmin.sol +279 -184
  384. package/contracts/instance/InstanceAuthorizationV3.sol +117 -58
  385. package/contracts/instance/InstanceReader.sol +365 -68
  386. package/contracts/instance/InstanceService.sol +271 -208
  387. package/contracts/instance/InstanceServiceManager.sol +6 -7
  388. package/contracts/instance/InstanceStore.sol +23 -2
  389. package/contracts/instance/RiskSet.sol +118 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +10 -2
  392. package/contracts/instance/base/ObjectSet.sol +31 -33
  393. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  394. package/contracts/instance/module/IBundle.sol +6 -5
  395. package/contracts/instance/module/IComponents.sol +29 -13
  396. package/contracts/instance/module/IDistribution.sol +21 -8
  397. package/contracts/instance/module/IPolicy.sol +49 -28
  398. package/contracts/instance/module/IRisk.sol +5 -0
  399. package/contracts/oracle/BasicOracle.sol +1 -4
  400. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  401. package/contracts/oracle/IOracle.sol +9 -4
  402. package/contracts/oracle/IOracleService.sol +2 -1
  403. package/contracts/oracle/Oracle.sol +7 -19
  404. package/contracts/oracle/OracleService.sol +117 -85
  405. package/contracts/oracle/OracleServiceManager.sol +6 -6
  406. package/contracts/pool/BasicPool.sol +32 -25
  407. package/contracts/pool/BasicPoolAuthorization.sol +33 -9
  408. package/contracts/pool/BundleService.sol +93 -134
  409. package/contracts/pool/BundleServiceManager.sol +6 -6
  410. package/contracts/pool/IBundleService.sol +15 -34
  411. package/contracts/pool/IPoolComponent.sol +19 -15
  412. package/contracts/pool/IPoolService.sol +73 -71
  413. package/contracts/pool/Pool.sol +139 -124
  414. package/contracts/pool/PoolLib.sol +353 -0
  415. package/contracts/pool/PoolService.sol +332 -286
  416. package/contracts/pool/PoolServiceManager.sol +4 -4
  417. package/contracts/product/ApplicationService.sol +54 -26
  418. package/contracts/product/ApplicationServiceManager.sol +4 -4
  419. package/contracts/product/BasicProduct.sol +10 -13
  420. package/contracts/product/BasicProductAuthorization.sol +30 -12
  421. package/contracts/product/ClaimService.sol +372 -150
  422. package/contracts/product/ClaimServiceManager.sol +4 -4
  423. package/contracts/product/IApplicationService.sol +8 -2
  424. package/contracts/product/IClaimService.sol +43 -8
  425. package/contracts/product/IPolicyService.sol +39 -28
  426. package/contracts/product/IPricingService.sol +11 -10
  427. package/contracts/product/IProductComponent.sol +27 -5
  428. package/contracts/product/IRiskService.sol +7 -7
  429. package/contracts/product/PolicyService.sol +365 -309
  430. package/contracts/product/PolicyServiceLib.sol +139 -0
  431. package/contracts/product/PolicyServiceManager.sol +4 -4
  432. package/contracts/product/PricingService.sol +64 -59
  433. package/contracts/product/PricingServiceManager.sol +4 -4
  434. package/contracts/product/Product.sol +142 -85
  435. package/contracts/product/RiskService.sol +91 -34
  436. package/contracts/product/RiskServiceManager.sol +4 -4
  437. package/contracts/registry/ChainNft.sol +72 -40
  438. package/contracts/registry/IRegistry.sol +64 -28
  439. package/contracts/registry/IRegistryService.sol +5 -12
  440. package/contracts/registry/IRelease.sol +29 -0
  441. package/contracts/registry/ITransferInterceptor.sol +1 -2
  442. package/contracts/registry/Registry.sol +357 -203
  443. package/contracts/registry/RegistryAdmin.sol +110 -296
  444. package/contracts/registry/RegistryAuthorization.sol +277 -0
  445. package/contracts/registry/RegistryService.sol +37 -48
  446. package/contracts/registry/RegistryServiceManager.sol +3 -3
  447. package/contracts/registry/ReleaseAdmin.sol +195 -0
  448. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  449. package/contracts/registry/ReleaseRegistry.sol +275 -240
  450. package/contracts/registry/ServiceAuthorizationV3.sol +200 -57
  451. package/contracts/registry/TokenRegistry.sol +12 -13
  452. package/contracts/shared/Component.sol +66 -124
  453. package/contracts/shared/ComponentService.sol +395 -375
  454. package/contracts/shared/ComponentServiceManager.sol +8 -5
  455. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  456. package/contracts/shared/ContractLib.sol +357 -0
  457. package/contracts/shared/IComponent.sol +5 -17
  458. package/contracts/shared/IComponentService.sol +42 -40
  459. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  460. package/contracts/shared/ILifecycle.sol +3 -1
  461. package/contracts/shared/INftOwnable.sol +2 -0
  462. package/contracts/shared/IPolicyHolder.sol +12 -22
  463. package/contracts/shared/IRegisterable.sol +23 -1
  464. package/contracts/shared/IService.sol +3 -5
  465. package/contracts/shared/InitializableERC165.sol +10 -2
  466. package/contracts/shared/InstanceLinkedComponent.sol +72 -50
  467. package/contracts/shared/KeyValueStore.sol +1 -1
  468. package/contracts/shared/Lifecycle.sol +15 -4
  469. package/contracts/shared/NftOwnable.sol +29 -9
  470. package/contracts/shared/PolicyHolder.sol +15 -52
  471. package/contracts/shared/Registerable.sol +52 -21
  472. package/contracts/shared/RegistryLinked.sol +9 -14
  473. package/contracts/shared/Service.sol +20 -35
  474. package/contracts/shared/TokenHandler.sol +275 -72
  475. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  476. package/contracts/staking/IStaking.sol +25 -13
  477. package/contracts/staking/IStakingService.sol +19 -4
  478. package/contracts/staking/Staking.sol +101 -52
  479. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +96 -21
  480. package/contracts/staking/StakingManager.sol +8 -6
  481. package/contracts/staking/StakingReader.sol +18 -21
  482. package/contracts/staking/StakingService.sol +85 -25
  483. package/contracts/staking/StakingServiceManager.sol +6 -5
  484. package/contracts/staking/StakingStore.sol +2 -1
  485. package/contracts/staking/TargetManagerLib.sol +8 -4
  486. package/contracts/type/Amount.sol +15 -0
  487. package/contracts/type/ClaimId.sol +6 -1
  488. package/contracts/type/Fee.sol +8 -8
  489. package/contracts/type/Key32.sol +2 -2
  490. package/contracts/type/Key32Set.sol +62 -0
  491. package/contracts/type/NftId.sol +7 -0
  492. package/contracts/type/ObjectType.sol +72 -36
  493. package/contracts/type/PayoutId.sol +10 -10
  494. package/contracts/type/RiskId.sol +38 -6
  495. package/contracts/type/RoleId.sol +61 -55
  496. package/contracts/type/Seconds.sol +8 -0
  497. package/contracts/type/Selector.sol +5 -0
  498. package/contracts/type/StateId.sol +15 -1
  499. package/contracts/type/Timestamp.sol +0 -5
  500. package/contracts/type/UFixed.sol +37 -126
  501. package/contracts/type/Version.sol +54 -5
  502. package/contracts/upgradeability/ProxyManager.sol +79 -43
  503. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  504. package/contracts/upgradeability/Versionable.sol +6 -3
  505. package/package.json +5 -4
  506. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  507. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  508. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  509. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  510. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  512. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  513. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  514. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  515. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
  516. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  517. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  518. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  519. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  520. package/contracts/instance/module/IAccess.sol +0 -46
  521. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -5,8 +5,16 @@ import {TokenHandler} from "./TokenHandler.sol";
5
5
 
6
6
  library TokenHandlerDeployerLib {
7
7
 
8
- function deployTokenHandler(address token, address authority) public returns (TokenHandler) {
9
- return new TokenHandler(address(token), authority);
8
+ function deployTokenHandler(
9
+ address registry,
10
+ address component,
11
+ address token,
12
+ address authority
13
+ )
14
+ public
15
+ returns (TokenHandler)
16
+ {
17
+ return new TokenHandler(registry, component, token, authority);
10
18
  }
11
19
 
12
20
  }
@@ -1,6 +1,8 @@
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 {Amount} from "../type/Amount.sol";
5
7
  import {IComponent} from "../shared/IComponent.sol";
6
8
  import {IVersionable} from "../upgradeability/IVersionable.sol";
@@ -22,6 +24,7 @@ interface IStaking is
22
24
  // target parameters
23
25
  event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
24
26
  event LogStakingRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
27
+ event LogStakingMaxStakedAmountSet(NftId targetNftId, Amount maxStakedAmount);
25
28
 
26
29
  // modifiers
27
30
  error ErrorStakingNotStake(NftId stakeNftId);
@@ -30,6 +33,9 @@ interface IStaking is
30
33
  error ErrorStakingNotStakingOwner();
31
34
  error ErrorStakingNotNftOwner(NftId nftId);
32
35
 
36
+ // initializeTokenHandler
37
+ error ErrorStakingNotRegistry(address registry);
38
+
33
39
  // staking rate
34
40
  error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
35
41
 
@@ -42,27 +48,37 @@ interface IStaking is
42
48
  error ErrorStakingTargetNftIdZero();
43
49
  error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
44
50
  error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
45
- error ErrorStakingLockingPeriodZero(NftId targetNftId);
51
+ error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
46
52
  error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
53
+ error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
47
54
  error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
48
55
  error ErrorStakingTargetNotFound(NftId targetNftId);
49
56
  error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
57
+ error ErrorStakingTargetMaxStakedAmountExceeded(NftId targetNftId, Amount maxStakedAmount, Amount stakedAmount);
50
58
 
51
- error ErrorStakingTargetNotActive(NftId targetNftId);
52
59
  error ErrorStakingStakeAmountZero(NftId targetNftId);
53
60
 
54
61
  // info for individual stake
55
62
  struct StakeInfo {
63
+ // slot 0
56
64
  Timestamp lockedUntil;
57
65
  }
58
66
 
59
67
  struct TargetInfo {
68
+ // Slot 0
69
+ UFixed rewardRate;
70
+ Amount maxStakedAmount;
71
+ // Slot 1
60
72
  ObjectType objectType;
61
- uint256 chainId;
62
73
  Seconds lockingPeriod;
63
- UFixed rewardRate;
74
+ // Slot 2
75
+ uint256 chainId;
64
76
  }
65
77
 
78
+ function initializeTokenHandler() external;
79
+
80
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external;
81
+
66
82
  // staking rate management
67
83
 
68
84
  /// @dev sets the rate that converts 1 token of total value locked into the
@@ -89,6 +105,10 @@ interface IStaking is
89
105
  /// permissioned: only the staking service may call this function
90
106
  function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
91
107
 
108
+ /// @dev set the maximum staked amount for the specified target.
109
+ /// permissioned: only the staking service may call this function
110
+ function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount) external;
111
+
92
112
  /// @dev (re)fills the staking reward reserves for the specified target
93
113
  /// unpermissioned: anybody may fill up staking reward reserves
94
114
  function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
@@ -126,7 +146,7 @@ interface IStaking is
126
146
  /// @dev restakes the dips to a new target.
127
147
  /// the sum of the staked dips and the accumulated rewards will be restaked.
128
148
  /// permissioned: only staking service may call this function.
129
- function restake(NftId stakeNftId, NftId newTargetNftId) external returns (NftId newStakeNftId);
149
+ function restake(NftId stakeNftId, NftId newStakeNftId) external returns (Amount newStakeBalance);
130
150
 
131
151
  /// @dev retuns the specified amount of dips to the holder of the specified stake nft.
132
152
  /// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
@@ -152,14 +172,6 @@ interface IStaking is
152
172
  Amount rewardsClaimedAmount
153
173
  );
154
174
 
155
- //--- helper functions --------------------------------------------------//
156
-
157
- /// @dev transfers the specified amount of dips from the from address to the staking wallet.
158
- function collectDipAmount(address from, Amount dipAmount) external;
159
-
160
- /// @dev transfers the specified amount of dips from the staking wallet to the to addess.
161
- function transferDipAmount(address to, Amount dipAmount) external;
162
-
163
175
  //--- view and pure functions -------------------------------------------//
164
176
 
165
177
  function getStakingStore() external view returns (StakingStore stakingStore);
@@ -7,9 +7,7 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
8
  import {IStaking} from "./IStaking.sol";
9
9
  import {NftId} from "../type/NftId.sol";
10
- import {ObjectType} from "../type/ObjectType.sol";
11
10
  import {Seconds} from "../type/Seconds.sol";
12
- import {Timestamp} from "../type/Timestamp.sol";
13
11
  import {TokenHandler} from "../shared/TokenHandler.sol";
14
12
  import {UFixed} from "../type/UFixed.sol";
15
13
 
@@ -28,16 +26,18 @@ interface IStakingService is IService
28
26
  event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
29
27
  event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
30
28
  event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
29
+ event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
31
30
 
32
31
  event LogStakingServiceRewardsUpdated(NftId stakeNftId);
33
32
  event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
34
33
 
35
34
  // modifiers
36
- error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
35
+ error ErrorStakingServiceNotStakingOwner(address account);
37
36
  error ErrorStakingServiceNotStaking(address stakingAddress);
38
37
  error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
39
38
 
40
39
  // create
40
+ error ErrorStakingServiceTargetUnknown(NftId targetNftId);
41
41
  error ErrorStakingServiceZeroTargetNftId();
42
42
  error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
43
43
  error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
@@ -51,6 +51,13 @@ interface IStakingService is IService
51
51
  // function setProtocolLockingPeriod(Seconds lockingPeriod) external;
52
52
  // TODO also make sure that protocol rewards can be refilled and withdrawn
53
53
 
54
+ /// @dev Approves the staking token handler.
55
+ /// Reverts if the staking token handler wallet is not the token handler itself.
56
+ function approveTokenHandler(
57
+ IERC20Metadata token,
58
+ Amount amount
59
+ ) external;
60
+
54
61
  /// @dev creates/registers an on-chain instance staking target.
55
62
  /// function granted to instance service
56
63
  function createInstanceTarget(
@@ -67,6 +74,10 @@ interface IStakingService is IService
67
74
  /// Permissioned: Only owner of the specified target.
68
75
  function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
69
76
 
77
+ /// @dev Set the instance max staked amount to the specified value.
78
+ /// Permissioned: Only owner of the specified target.
79
+ function setInstanceMaxStakedAmount(NftId instanceNftId, Amount maxStakingAmount) external;
80
+
70
81
  /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
71
82
  /// unpermissioned: anybody may fill up staking reward reserves
72
83
  function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
@@ -111,7 +122,8 @@ interface IStakingService is IService
111
122
  )
112
123
  external
113
124
  returns (
114
- NftId newStakeNftId
125
+ NftId newStakeNftId,
126
+ Amount newStakeBalance
115
127
  );
116
128
 
117
129
 
@@ -148,13 +160,16 @@ interface IStakingService is IService
148
160
 
149
161
  function getDipToken()
150
162
  external
163
+ view
151
164
  returns (IERC20Metadata dip);
152
165
 
153
166
  function getTokenHandler()
154
167
  external
168
+ view
155
169
  returns (TokenHandler tokenHandler);
156
170
 
157
171
  function getStaking()
158
172
  external
173
+ view
159
174
  returns (IStaking staking);
160
175
  }
@@ -1,18 +1,22 @@
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";
11
13
  import {IComponent} from "../shared/IComponent.sol";
14
+ import {IComponentService} from "../shared/IComponentService.sol";
12
15
  import {NftId} from "../type/NftId.sol";
13
- import {ObjectType, STAKING} from "../type/ObjectType.sol";
16
+ import {ObjectType, STAKE, STAKING} from "../type/ObjectType.sol";
14
17
  import {Seconds} from "../type/Seconds.sol";
15
- import {StakeManagerLib} from "./StakeManagerLib.sol";
18
+ import {Registerable} from "../shared/Registerable.sol";
19
+ import {StakingLib} from "./StakingLib.sol";
16
20
  import {StakingReader} from "./StakingReader.sol";
17
21
  import {StakingStore} from "./StakingStore.sol";
18
22
  import {TargetManagerLib} from "./TargetManagerLib.sol";
@@ -21,7 +25,7 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
21
25
  import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
22
26
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
23
27
  import {UFixed} from "../type/UFixed.sol";
24
- import {Version, VersionLib} from "../type/Version.sol";
28
+ import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
25
29
  import {Versionable} from "../upgradeability/Versionable.sol";
26
30
 
27
31
  contract Staking is
@@ -30,13 +34,11 @@ contract Staking is
30
34
  IStaking
31
35
  {
32
36
  string public constant CONTRACT_NAME = "Staking";
33
- uint8 private constant GIF_MAJOR_VERSION = 3;
34
37
 
35
38
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
36
39
  bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
37
40
 
38
41
  struct StakingStorage {
39
- IRegistryService _registryService;
40
42
  TokenRegistry _tokenRegistry;
41
43
  TokenHandler _tokenHandler;
42
44
  StakingStore _store;
@@ -60,6 +62,32 @@ contract Staking is
60
62
  _;
61
63
  }
62
64
 
65
+ function initializeTokenHandler()
66
+ external
67
+ {
68
+ if (msg.sender != address(getRegistry())) {
69
+ revert ErrorStakingNotRegistry(msg.sender);
70
+ }
71
+
72
+ StakingStorage storage $ = _getStakingStorage();
73
+ address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
74
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
75
+ address(getRegistry()),
76
+ address(this),
77
+ dipToken,
78
+ getRegistry().getAuthority());
79
+ }
80
+
81
+
82
+ function approveTokenHandler(IERC20Metadata token, Amount amount)
83
+ public
84
+ restricted()
85
+ onlyOwner()
86
+ {
87
+ _approveTokenHandler(token, amount);
88
+ }
89
+
90
+
63
91
  // set/update staking reader
64
92
  function setStakingReader(StakingReader stakingReader)
65
93
  external
@@ -119,7 +147,8 @@ contract Staking is
119
147
  objectType: expectedObjectType,
120
148
  chainId: chainId,
121
149
  lockingPeriod: initialLockingPeriod,
122
- rewardRate: initialRewardRate}));
150
+ rewardRate: initialRewardRate,
151
+ maxStakedAmount: AmountLib.max()}));
123
152
  }
124
153
 
125
154
 
@@ -167,6 +196,21 @@ contract Staking is
167
196
  emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
168
197
  }
169
198
 
199
+ function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount)
200
+ external
201
+ virtual
202
+ restricted()
203
+ onlyTarget(targetNftId)
204
+ {
205
+ IStaking.TargetInfo memory targetInfo = getStakingReader().getTargetInfo(targetNftId);
206
+
207
+ targetInfo.maxStakedAmount = maxStakedAmount;
208
+
209
+ _getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
210
+
211
+ emit LogStakingMaxStakedAmountSet(targetNftId, maxStakedAmount);
212
+ }
213
+
170
214
 
171
215
  function refillRewardReserves(NftId targetNftId, Amount dipAmount)
172
216
  external
@@ -248,7 +292,7 @@ contract Staking is
248
292
  restricted() // only staking service
249
293
  {
250
294
  StakingStorage storage $ = _getStakingStorage();
251
- Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
295
+ Timestamp lockedUntil = StakingLib.checkCreateParameters(
252
296
  $._reader,
253
297
  targetNftId,
254
298
  stakeAmount);
@@ -278,7 +322,7 @@ contract Staking is
278
322
  returns (Amount stakeBalance)
279
323
  {
280
324
  StakingStorage storage $ = _getStakingStorage();
281
- stakeBalance = StakeManagerLib.stake(
325
+ stakeBalance = StakingLib.stake(
282
326
  getRegistry(),
283
327
  $._reader,
284
328
  $._store,
@@ -289,21 +333,26 @@ contract Staking is
289
333
 
290
334
  function restake(
291
335
  NftId stakeNftId,
292
- NftId newTargetNftId
336
+ NftId newStakeNftId
293
337
  )
294
338
  external
295
339
  virtual
296
340
  restricted() // only staking service
297
341
  onlyStake(stakeNftId)
298
- returns (NftId newStakeNftId)
342
+ returns (Amount newStakeBalance)
299
343
  {
344
+ _checkNftType(stakeNftId, STAKE());
345
+ _checkNftType(newStakeNftId, STAKE());
346
+
300
347
  // TODO add check that allows additional staking amount
301
348
  StakingStorage storage $ = _getStakingStorage();
302
-
303
- // TODO implement
349
+ newStakeBalance = StakingLib.restake(
350
+ $._reader,
351
+ $._store,
352
+ stakeNftId,
353
+ newStakeNftId);
304
354
  }
305
355
 
306
-
307
356
  function updateRewards(NftId stakeNftId)
308
357
  external
309
358
  virtual
@@ -350,9 +399,10 @@ contract Staking is
350
399
  Amount rewardsClaimedAmount
351
400
  )
352
401
  {
353
- // TODO add check that stake locking is in the past
354
402
  StakingStorage storage $ = _getStakingStorage();
355
-
403
+
404
+ StakingLib.checkUnstakeParameters($._reader, stakeNftId);
405
+
356
406
  // update rewards since last update
357
407
  NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
358
408
 
@@ -371,25 +421,6 @@ contract Staking is
371
421
  }
372
422
 
373
423
 
374
-
375
- //--- other functions ---------------------------------------------------//
376
-
377
- function collectDipAmount(address from, Amount dipAmount)
378
- external
379
- restricted() // only staking service
380
- {
381
- getTokenHandler().collectTokens(from, getWallet(), dipAmount);
382
- }
383
-
384
-
385
- function transferDipAmount(address to, Amount dipAmount)
386
- external
387
- restricted() // only staking service
388
- {
389
- getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
390
- }
391
-
392
-
393
424
  //--- view functions ----------------------------------------------------//
394
425
 
395
426
  function getStakingReader() public view returns (StakingReader reader) {
@@ -408,14 +439,24 @@ contract Staking is
408
439
  return _getStakingStorage()._tokenHandler;
409
440
  }
410
441
 
411
- // from Versionable
442
+ // from IRegisterable
443
+ function getRelease()
444
+ public
445
+ pure
446
+ virtual override (IRelease, Registerable)
447
+ returns(VersionPart)
448
+ {
449
+ return VersionPartLib.toVersionPart(3);
450
+ }
451
+
452
+ // from IVersionable
412
453
  function getVersion()
413
454
  public
414
455
  pure
415
- virtual override (IVersionable, Versionable)
456
+ virtual override (Component, IVersionable, Versionable)
416
457
  returns(Version)
417
458
  {
418
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
459
+ return VersionLib.toVersion(3,0,0);
419
460
  }
420
461
 
421
462
  //--- internal functions ------------------------------------------------//
@@ -432,7 +473,7 @@ contract Staking is
432
473
  UFixed rewardRate;
433
474
 
434
475
  (targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
435
- (Amount rewardIncrement, ) = StakeManagerLib.calculateRewardIncrease(
476
+ (Amount rewardIncrement, ) = StakingLib.calculateRewardIncrease(
436
477
  reader,
437
478
  stakeNftId,
438
479
  rewardRate);
@@ -444,13 +485,23 @@ contract Staking is
444
485
  }
445
486
 
446
487
 
488
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
489
+ internal
490
+ virtual override
491
+ {
492
+ IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
493
+ token,
494
+ amount);
495
+ }
496
+
497
+
447
498
  function _initialize(
448
499
  address owner,
449
500
  bytes memory data
450
501
  )
451
502
  internal
452
503
  virtual override
453
- initializer
504
+ initializer()
454
505
  {
455
506
  (
456
507
  address registryAddress,
@@ -465,27 +516,25 @@ contract Staking is
465
516
  TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
466
517
  address dipTokenAddress = tokenRegistry.getDipTokenAddress();
467
518
 
468
- initializeComponent(
519
+ // wiring to external contracts
520
+ StakingStorage storage $ = _getStakingStorage();
521
+ $._protocolNftId = registry.getProtocolNftId();
522
+ $._store = StakingStore(stakingStoreAddress);
523
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
524
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
525
+
526
+ _initializeComponent(
469
527
  authority,
470
528
  registryAddress,
471
- registry.getNftId(),
529
+ registry.getNftId(), // parent nft id
472
530
  CONTRACT_NAME,
473
- dipTokenAddress,
474
531
  STAKING(),
475
532
  false, // is interceptor
476
533
  stakingOwner,
477
534
  "", // registry data
478
535
  ""); // component data
479
536
 
480
- // wiring to external contracts
481
- StakingStorage storage $ = _getStakingStorage();
482
- $._protocolNftId = getRegistry().getProtocolNftId();
483
- $._store = StakingStore(stakingStoreAddress);
484
- $._reader = StakingStore(stakingStoreAddress).getStakingReader();
485
- $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
486
- $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
487
-
488
- registerInterface(type(IStaking).interfaceId);
537
+ _registerInterface(type(IStaking).interfaceId);
489
538
  }
490
539
 
491
540