@etherisc/gif-next 0.0.2-8ce6c0b-352 → 0.0.2-8d69bcd-543

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 (515) hide show
  1. package/README.md +46 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -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 +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +166 -16
  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 +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +81 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +166 -376
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +144 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +245 -315
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -123
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +128 -76
  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 +1487 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +555 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +527 -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 +1495 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +527 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1211 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1663 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +555 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2416 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +527 -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 +158 -57
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +372 -136
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +120 -90
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +619 -492
  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 +116 -326
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +146 -29
  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 +102 -130
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +143 -387
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +172 -27
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -195
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -370
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +143 -26
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +486 -333
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +149 -99
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +508 -551
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -125
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +454 -210
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +589 -15
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +140 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +212 -360
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +125 -94
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  326. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  331. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  340. package/contracts/accounting/AccountingService.sol +262 -0
  341. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  342. package/contracts/accounting/IAccountingService.sol +45 -0
  343. package/contracts/authorization/AccessAdmin.sol +189 -124
  344. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  345. package/contracts/authorization/Authorization.sol +300 -202
  346. package/contracts/authorization/IAccess.sol +1 -0
  347. package/contracts/authorization/IAccessAdmin.sol +10 -6
  348. package/contracts/authorization/IAuthorization.sol +19 -7
  349. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  350. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  351. package/contracts/distribution/BasicDistribution.sol +12 -22
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +3 -11
  353. package/contracts/distribution/Distribution.sol +36 -50
  354. package/contracts/distribution/DistributionService.sol +122 -117
  355. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  356. package/contracts/distribution/IDistributionComponent.sol +2 -2
  357. package/contracts/distribution/IDistributionService.sol +16 -14
  358. package/contracts/examples/fire/DamageLevel.sol +59 -0
  359. package/contracts/examples/fire/FirePool.sol +90 -0
  360. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  361. package/contracts/examples/fire/FireProduct.sol +438 -0
  362. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  363. package/contracts/examples/fire/FireUSD.sol +26 -0
  364. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  365. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  367. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  368. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  369. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  370. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  371. package/contracts/instance/BundleSet.sol +42 -38
  372. package/contracts/instance/IInstance.sol +21 -37
  373. package/contracts/instance/IInstanceService.sol +9 -29
  374. package/contracts/instance/Instance.sol +59 -66
  375. package/contracts/instance/InstanceAdmin.sol +254 -84
  376. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  377. package/contracts/instance/InstanceReader.sol +218 -27
  378. package/contracts/instance/InstanceService.sol +125 -164
  379. package/contracts/instance/InstanceServiceManager.sol +6 -7
  380. package/contracts/instance/InstanceStore.sol +24 -2
  381. package/contracts/instance/RiskSet.sol +118 -0
  382. package/contracts/instance/base/ObjectCounter.sol +1 -2
  383. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  384. package/contracts/instance/base/ObjectSet.sol +31 -33
  385. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  386. package/contracts/instance/module/IBundle.sol +1 -1
  387. package/contracts/instance/module/IComponents.sol +14 -14
  388. package/contracts/instance/module/IDistribution.sol +0 -1
  389. package/contracts/instance/module/IPolicy.sol +26 -25
  390. package/contracts/instance/module/IRisk.sol +3 -0
  391. package/contracts/mock/Dip.sol +1 -1
  392. package/contracts/oracle/BasicOracle.sol +0 -1
  393. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  394. package/contracts/oracle/IOracleService.sol +2 -1
  395. package/contracts/oracle/Oracle.sol +9 -23
  396. package/contracts/oracle/OracleService.sol +113 -81
  397. package/contracts/oracle/OracleServiceManager.sol +6 -6
  398. package/contracts/pool/BasicPool.sol +38 -27
  399. package/contracts/pool/BasicPoolAuthorization.sol +15 -8
  400. package/contracts/pool/BundleService.sol +221 -80
  401. package/contracts/pool/BundleServiceManager.sol +6 -6
  402. package/contracts/pool/IBundleService.sol +33 -18
  403. package/contracts/pool/IPoolComponent.sol +21 -10
  404. package/contracts/pool/IPoolService.sol +53 -50
  405. package/contracts/pool/Pool.sol +150 -116
  406. package/contracts/pool/PoolService.sol +337 -160
  407. package/contracts/pool/PoolServiceManager.sol +4 -4
  408. package/contracts/product/ApplicationService.sol +72 -43
  409. package/contracts/product/ApplicationServiceManager.sol +4 -4
  410. package/contracts/product/BasicProduct.sol +13 -44
  411. package/contracts/product/BasicProductAuthorization.sol +3 -14
  412. package/contracts/product/ClaimService.sol +428 -136
  413. package/contracts/product/ClaimServiceManager.sol +4 -4
  414. package/contracts/product/IApplicationService.sol +6 -2
  415. package/contracts/product/IClaimService.sol +44 -7
  416. package/contracts/product/IPolicyService.sol +46 -34
  417. package/contracts/product/IPricingService.sol +10 -10
  418. package/contracts/product/IProductComponent.sol +27 -5
  419. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  420. package/contracts/product/PolicyService.sol +501 -258
  421. package/contracts/product/PolicyServiceManager.sol +4 -4
  422. package/contracts/product/PricingService.sol +66 -62
  423. package/contracts/product/PricingServiceManager.sol +4 -4
  424. package/contracts/product/Product.sol +160 -89
  425. package/contracts/product/RiskService.sol +145 -0
  426. package/contracts/product/RiskServiceManager.sol +39 -0
  427. package/contracts/registry/ChainNft.sol +72 -40
  428. package/contracts/registry/IRegistry.sol +60 -28
  429. package/contracts/registry/IRegistryService.sol +5 -12
  430. package/contracts/registry/IRelease.sol +26 -0
  431. package/contracts/registry/ITransferInterceptor.sol +1 -2
  432. package/contracts/registry/Registry.sol +357 -203
  433. package/contracts/registry/RegistryAdmin.sol +161 -182
  434. package/contracts/registry/RegistryService.sol +37 -48
  435. package/contracts/registry/RegistryServiceManager.sol +3 -3
  436. package/contracts/registry/ReleaseAdmin.sol +245 -0
  437. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  438. package/contracts/registry/ReleaseRegistry.sol +258 -234
  439. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  440. package/contracts/registry/TokenRegistry.sol +6 -8
  441. package/contracts/shared/Component.sol +82 -121
  442. package/contracts/shared/ComponentService.sol +419 -349
  443. package/contracts/shared/ComponentServiceManager.sol +8 -5
  444. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  445. package/contracts/shared/ContractLib.sol +253 -0
  446. package/contracts/shared/IComponent.sol +8 -17
  447. package/contracts/shared/IComponentService.sol +43 -39
  448. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  449. package/contracts/shared/ILifecycle.sol +3 -1
  450. package/contracts/shared/INftOwnable.sol +2 -0
  451. package/contracts/shared/IPolicyHolder.sol +12 -22
  452. package/contracts/shared/IRegisterable.sol +23 -1
  453. package/contracts/shared/IService.sol +3 -5
  454. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  455. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  456. package/contracts/shared/KeyValueStore.sol +1 -1
  457. package/contracts/shared/Lifecycle.sol +15 -4
  458. package/contracts/shared/NftOwnable.sol +31 -11
  459. package/contracts/shared/PolicyHolder.sol +17 -57
  460. package/contracts/shared/Registerable.sol +55 -21
  461. package/contracts/shared/RegistryLinked.sol +9 -14
  462. package/contracts/shared/Service.sol +15 -32
  463. package/contracts/shared/TokenHandler.sol +281 -27
  464. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  465. package/contracts/staking/IStaking.sol +7 -9
  466. package/contracts/staking/IStakingService.sol +0 -3
  467. package/contracts/staking/StakeManagerLib.sol +19 -26
  468. package/contracts/staking/Staking.sol +71 -59
  469. package/contracts/staking/StakingManager.sol +8 -6
  470. package/contracts/staking/StakingReader.sol +13 -6
  471. package/contracts/staking/StakingService.sol +37 -40
  472. package/contracts/staking/StakingServiceManager.sol +6 -5
  473. package/contracts/staking/TargetManagerLib.sol +7 -3
  474. package/contracts/type/Amount.sol +27 -5
  475. package/contracts/type/Blocknumber.sol +7 -1
  476. package/contracts/type/ClaimId.sol +6 -1
  477. package/contracts/type/Key32.sol +2 -2
  478. package/contracts/type/Key32Set.sol +62 -0
  479. package/contracts/type/NftId.sol +7 -0
  480. package/contracts/type/ObjectType.sol +52 -20
  481. package/contracts/type/PayoutId.sol +10 -10
  482. package/contracts/type/Referral.sol +1 -0
  483. package/contracts/type/RiskId.sol +35 -4
  484. package/contracts/type/RoleId.sol +23 -15
  485. package/contracts/type/Seconds.sol +21 -1
  486. package/contracts/type/StateId.sol +15 -1
  487. package/contracts/type/Timestamp.sol +10 -5
  488. package/contracts/type/UFixed.sol +35 -122
  489. package/contracts/type/Version.sol +15 -5
  490. package/contracts/upgradeability/ProxyManager.sol +68 -34
  491. package/contracts/upgradeability/Versionable.sol +2 -2
  492. package/package.json +4 -3
  493. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  494. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  495. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  496. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  497. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  499. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  501. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  503. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  504. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  505. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  506. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  508. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  509. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  510. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  511. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  512. package/contracts/instance/module/IAccess.sol +0 -46
  513. package/contracts/product/ProductService.sol +0 -99
  514. package/contracts/product/ProductServiceManager.sol +0 -39
  515. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,16 +1,22 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
6
 
7
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
+ import {ContractLib} from "../shared/ContractLib.sol";
6
9
  import {NftId, NftIdLib} from "../type/NftId.sol";
7
10
  import {NftOwnable} from "../shared/NftOwnable.sol";
8
11
  import {ObjectType} from "../type/ObjectType.sol";
12
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
9
13
 
10
14
  import {IRegistry} from "../registry/IRegistry.sol";
11
15
  import {IRegisterable} from "./IRegisterable.sol";
16
+ import {IRelease} from "../registry/IRelease.sol";
12
17
 
13
- contract Registerable is
18
+ abstract contract Registerable is
19
+ AccessManagedUpgradeable,
14
20
  NftOwnable,
15
21
  IRegisterable
16
22
  {
@@ -20,50 +26,71 @@ contract Registerable is
20
26
  struct RegisterableStorage {
21
27
  NftId _parentNftId;
22
28
  ObjectType _objectType;
29
+ VersionPart _release;
23
30
  bool _isInterceptor;
24
31
  bytes _data;
25
32
  }
26
33
 
27
- function initializeRegisterable(
28
- address registryAddress,
34
+ modifier onlyActive() {
35
+ if (!isActive()) {
36
+ revert ErrorRegisterableNotActive();
37
+ }
38
+ _;
39
+ }
40
+
41
+ function __Registerable_init(
42
+ address authority,
43
+ address registry,
29
44
  NftId parentNftId,
30
45
  ObjectType objectType,
31
46
  bool isInterceptor,
32
47
  address initialOwner,
33
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
48
+ bytes memory data // writeonly data that will saved in the object info record of the registry
34
49
  )
35
- public
50
+ internal
36
51
  virtual
37
- onlyInitializing
52
+ onlyInitializing()
38
53
  {
39
- initializeNftOwnable(
40
- initialOwner,
41
- registryAddress);
42
-
43
- RegisterableStorage storage $;
44
- assembly {
45
- $.slot := REGISTERABLE_LOCATION_V1
54
+ if (!ContractLib.isAuthority(authority)) {
55
+ revert ErrorAuthorityInvalid(authority);
46
56
  }
47
57
 
58
+ __AccessManaged_init(authority);
59
+ __NftOwnable_init(registry, initialOwner);
60
+
61
+ RegisterableStorage storage $ = _getRegisterableStorage();
48
62
  $._parentNftId = parentNftId;
49
63
  $._objectType = objectType;
64
+ $._release = AccessManagerCloneable(authority).getRelease();
50
65
  $._isInterceptor = isInterceptor;
51
- $._data = registryData;
66
+ $._data = data;
67
+
68
+ _registerInterface(type(IAccessManaged).interfaceId);
69
+ }
70
+
71
+
72
+ /// @inheritdoc IRegisterable
73
+ function isActive() public virtual view returns (bool active) {
74
+ return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
75
+ }
76
+
77
+
78
+ /// @inheritdoc IRelease
79
+ function getRelease() public virtual view returns (VersionPart release) {
80
+ RegisterableStorage storage $ = _getRegisterableStorage();
81
+ return $._release;
52
82
  }
53
83
 
54
84
 
85
+ /// @inheritdoc IRegisterable
55
86
  function getInitialInfo()
56
87
  public
57
88
  view
58
89
  virtual
59
90
  returns (IRegistry.ObjectInfo memory info)
60
91
  {
61
- RegisterableStorage storage $;
62
- assembly {
63
- $.slot := REGISTERABLE_LOCATION_V1
64
- }
65
-
66
- info = IRegistry.ObjectInfo(
92
+ RegisterableStorage storage $ = _getRegisterableStorage();
93
+ return IRegistry.ObjectInfo(
67
94
  NftIdLib.zero(),
68
95
  $._parentNftId,
69
96
  $._objectType,
@@ -72,4 +99,11 @@ contract Registerable is
72
99
  getOwner(),
73
100
  $._data);
74
101
  }
102
+
103
+
104
+ function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
105
+ assembly {
106
+ $.slot := REGISTERABLE_LOCATION_V1
107
+ }
108
+ }
75
109
  }
@@ -2,6 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {ContractLib} from "../shared/ContractLib.sol";
5
7
  import {IRegistry} from "../registry/IRegistry.sol";
6
8
  import {IRegistryLinked} from "./IRegistryLinked.sol";
7
9
 
@@ -10,30 +12,23 @@ contract RegistryLinked is
10
12
  IRegistryLinked
11
13
  {
12
14
 
15
+ // priorize simplicity and size over using standard upgradeability structs
13
16
  IRegistry private _registry;
14
17
 
15
18
  /// @dev initialization for upgradable contracts
16
19
  // used in _initializeRegisterable
17
- function initializeRegistryLinked(
18
- address registryAddress
20
+ function __RegistryLinked_init(
21
+ address registry
19
22
  )
20
- public
23
+ internal
21
24
  virtual
22
25
  onlyInitializing()
23
26
  {
24
- if (registryAddress.code.length == 0) {
25
- revert ErrorNotRegistry(registryAddress);
27
+ if (!ContractLib.isRegistry(registry)) {
28
+ revert ErrorNotRegistry(registry);
26
29
  }
27
30
 
28
- _registry = IRegistry(registryAddress);
29
-
30
- try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
31
- if (!isRegistry) {
32
- revert ErrorNotRegistry(registryAddress);
33
- }
34
- } catch {
35
- revert ErrorNotRegistry(registryAddress);
36
- }
31
+ _registry = IRegistry(registry);
37
32
  }
38
33
 
39
34
 
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
6
6
 
7
7
  import {IRegistry} from "../registry/IRegistry.sol";
8
8
  import {IService} from "./IService.sol";
@@ -18,23 +18,23 @@ import {Versionable} from "../upgradeability/Versionable.sol";
18
18
  abstract contract Service is
19
19
  Registerable,
20
20
  Versionable,
21
- AccessManagedUpgradeable,
21
+ ReentrancyGuardUpgradeable,
22
22
  IService
23
23
  {
24
24
 
25
- uint8 private constant GIF_MAJOR_VERSION = 3;
26
-
27
-
28
- function initializeService(
29
- address registry,
25
+ function __Service_init(
30
26
  address authority, // real authority for registry service adress(0) for other services
27
+ address registry,
31
28
  address initialOwner
32
29
  )
33
- public
30
+ internal
34
31
  virtual
35
32
  onlyInitializing()
36
33
  {
37
- initializeRegisterable(
34
+ __ReentrancyGuard_init();
35
+
36
+ __Registerable_init(
37
+ authority,
38
38
  registry,
39
39
  IRegistry(registry).getNftId(),
40
40
  SERVICE(),
@@ -42,41 +42,24 @@ abstract contract Service is
42
42
  initialOwner,
43
43
  ""); // data
44
44
 
45
- // externally provided authority
46
- if(authority != address(0)) {
47
- __AccessManaged_init(authority);
48
- } else {
49
- address registryServiceAddress = _getServiceAddress(REGISTRY());
50
-
51
- // copy authority from already registered registry services
52
- __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
53
- }
54
-
55
- registerInterface(type(IAccessManaged).interfaceId);
56
- registerInterface(type(IService).interfaceId);
45
+ _registerInterface(type(IService).interfaceId);
57
46
  }
58
47
 
59
48
  function getDomain() external virtual pure returns(ObjectType serviceDomain) {
60
49
  return _getDomain();
61
50
  }
62
51
 
63
- function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
64
- return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
52
+ function getVersion() public pure virtual override (IVersionable, Versionable) returns(Version) {
53
+ return VersionLib.toVersion(3, 0, 0);
65
54
  }
66
55
 
67
- // from Versionable
68
- function getVersion()
69
- public
70
- pure
71
- virtual override (IVersionable, Versionable)
72
- returns(Version)
73
- {
74
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
56
+ function getRoleId() external virtual view returns(RoleId serviceRoleId) {
57
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
75
58
  }
76
59
 
77
60
  function _getDomain() internal virtual pure returns (ObjectType);
78
61
 
79
62
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
80
- return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
63
+ return getRegistry().getServiceAddress(domain, getRelease());
81
64
  }
82
65
  }
@@ -1,58 +1,312 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
4
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
6
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
7
 
7
- import {Amount} from "../type/Amount.sol";
8
+ import {Amount, AmountLib} from "../type/Amount.sol";
9
+ import {ContractLib} from "../shared/ContractLib.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {SERVICE} from "../type/ObjectType.sol";
13
+
14
+
15
+ contract TokenHandlerBase {
16
+
17
+ // _setWallet
18
+ event LogTokenHandlerWalletAddressChanged(NftId componentNftId, address oldWallet, address newWallet);
19
+ event LogTokenHandlerWalletTokensTransferred(NftId componentNftId, address oldWallet, address newWallet, Amount amount);
20
+
21
+ // _approveTokenHandler
22
+ event LogTokenHandlerTokenApproved(NftId nftId, address tokenHandler, address token, Amount amount, bool isMaxAmount);
23
+
24
+ // _transfer
25
+ event LogTokenHandlerTokenTransfer(address token, address from, address to, Amount amount);
26
+
27
+ // constructor
28
+ error ErrorTokenHandlerNotRegistry(address registry);
29
+ error ErrorTokenHandlerComponentNotRegistered(address component);
30
+ error ErrorTokenHandlerTokenAddressZero();
31
+
32
+ // _setWallet
33
+ error ErrorTokenHandlerNewWalletAddressZero();
34
+ error ErrorTokenHandlerAddressIsSameAsCurrent();
35
+
36
+ // _approveTokenHandler
37
+ error ErrorTokenHandlerNotWallet(NftId nftId, address tokenHandler, address wallet);
38
+
39
+ // _pullAndPullToken
40
+ error ErrorTokenHandlerWalletsNotDistinct(address from, address to1, address to2);
41
+ error ErrorTokenHandlerPushAmountsTooLarge(Amount pushAmount, Amount pullAmount);
42
+
43
+ // _checkPreconditions
44
+ error ErrorTokenHandlerBalanceTooLow(address token, address from, uint256 balance, uint256 expectedBalance);
45
+ error ErrorTokenHandlerAllowanceTooSmall(address token, address from, address spender, uint256 allowance, uint256 expectedAllowance);
46
+ error ErrorTokenHandlerAmountIsZero();
47
+
48
+ IRegistry public immutable REGISTRY;
49
+ IERC20Metadata public immutable TOKEN;
50
+ address public immutable COMPONENT;
51
+ NftId public immutable NFT_ID;
52
+
53
+ address internal _wallet;
54
+
55
+ constructor(
56
+ address registry,
57
+ address component,
58
+ address token
59
+ )
60
+ {
61
+ if (!ContractLib.isRegistry(registry)) {
62
+ revert ErrorTokenHandlerNotRegistry(registry);
63
+ }
64
+
65
+ if (token == address(0)) {
66
+ revert ErrorTokenHandlerTokenAddressZero();
67
+ }
68
+
69
+ REGISTRY = IRegistry(registry);
70
+ COMPONENT = component;
71
+ NFT_ID = REGISTRY.getNftIdForAddress(component);
72
+
73
+ if (NFT_ID.eqz()) {
74
+ revert ErrorTokenHandlerComponentNotRegistered(component);
75
+ }
76
+
77
+ TOKEN = IERC20Metadata(token);
78
+ }
79
+
80
+
81
+ /// @dev Returns the wallet linked to this TokenHandler.
82
+ function getWallet()
83
+ public
84
+ view
85
+ returns (address wallet)
86
+ {
87
+ if (_wallet == address(0)) {
88
+ return address(this);
89
+ }
90
+
91
+ return _wallet;
92
+ }
93
+
94
+
95
+ /// @dev Approves token handler to spend up to the specified amount of tokens.
96
+ /// Sets spending limit to type(uint256).max for AmountLib.max().
97
+ /// Reverts if wallet is not token handler itself.
98
+ /// Sets approvel using SareERC20.forceApprove internally.
99
+ function _approve(
100
+ IERC20Metadata token,
101
+ Amount amount
102
+ )
103
+ internal
104
+ {
105
+ // check that wallet is token handler contract itself
106
+ if(_wallet != address(0)) {
107
+ revert ErrorTokenHandlerNotWallet(NFT_ID, address(this), _wallet);
108
+ }
109
+
110
+ // update spending limit for AmountLib.max() to type(uint256).max
111
+ uint256 amountInt = amount.toInt();
112
+ bool isMaxAmount = false;
113
+ if (amount == AmountLib.max()) {
114
+ amountInt = type(uint256).max;
115
+ isMaxAmount = true;
116
+ }
117
+
118
+ emit LogTokenHandlerTokenApproved(NFT_ID, address(this), address(token), amount, isMaxAmount);
119
+
120
+ // execute approval
121
+ SafeERC20.forceApprove(
122
+ token,
123
+ address(this),
124
+ amountInt);
125
+ }
126
+
127
+
128
+ function _setWallet(address newWallet)
129
+ internal
130
+ {
131
+ address oldWallet = _wallet;
132
+ if (newWallet == oldWallet) {
133
+ revert ErrorTokenHandlerAddressIsSameAsCurrent();
134
+ }
135
+
136
+ // effects
137
+ address oldWalletForBalance = getWallet();
138
+ _wallet = newWallet;
139
+
140
+ emit LogTokenHandlerWalletAddressChanged(NFT_ID, oldWallet, newWallet);
141
+
142
+ // interactions
143
+ Amount balanceAmount = AmountLib.toAmount(
144
+ TOKEN.balanceOf(oldWalletForBalance));
145
+
146
+ if (balanceAmount.gtz()) {
147
+ // move tokens from old to new wallet
148
+ emit LogTokenHandlerWalletTokensTransferred(NFT_ID, oldWallet, newWallet, balanceAmount);
149
+
150
+ if (oldWallet == address(0)) {
151
+ // transfer from the component requires an allowance
152
+ _transfer(address(this), newWallet, balanceAmount, true);
153
+ } else if (newWallet == address(0)) {
154
+ _transfer(oldWallet, address(this), balanceAmount, true);
155
+ } else {
156
+ _transfer(oldWallet, newWallet, balanceAmount, true);
157
+ }
158
+ }
159
+ }
160
+
161
+
162
+ function _pullToken(address from, Amount amount)
163
+ internal
164
+ {
165
+ _transfer(from, getWallet(), amount, true);
166
+ }
8
167
 
9
- /// @dev token specific transfer helper
10
- /// a default token contract is provided via contract constructor
11
- /// relies internally on oz SafeERC20.safeTransferFrom
12
- contract TokenHandler {
13
- IERC20Metadata private _token;
14
168
 
15
- constructor(address token) {
16
- _token = IERC20Metadata(token);
169
+ function _pushToken(address to, Amount amount)
170
+ internal
171
+ {
172
+ _transfer(getWallet(), to, amount, true);
17
173
  }
18
174
 
19
- /// @dev transfer amount default tokens
20
- function transfer(
175
+
176
+ function _transfer(
21
177
  address from,
22
178
  address to,
23
- Amount amount
179
+ Amount amount,
180
+ bool checkPreconditions
24
181
  )
25
- external
182
+ internal
26
183
  {
184
+ if (checkPreconditions) {
185
+ // check amount > 0, balance >= amount and allowance >= amount
186
+ _checkPreconditions(from, amount);
187
+ }
188
+
189
+ // transfer the tokens
190
+ emit LogTokenHandlerTokenTransfer(address(TOKEN), from, to, amount);
191
+
27
192
  SafeERC20.safeTransferFrom(
28
- _token,
193
+ TOKEN,
29
194
  from,
30
195
  to,
31
196
  amount.toInt());
32
197
  }
33
198
 
34
- /// @dev transfer amount of the specified token
35
- function safeTransferFrom(
36
- address token,
199
+
200
+ function _checkPreconditions(
37
201
  address from,
38
- address to,
202
+ Amount amount
203
+ )
204
+ internal
205
+ view
206
+ {
207
+ // amount must be greater than zero
208
+ if (amount.eqz()) {
209
+ revert ErrorTokenHandlerAmountIsZero();
210
+ }
211
+
212
+ // allowance must be >= amount
213
+ uint256 allowance = TOKEN.allowance(from, address(this));
214
+ if (allowance < amount.toInt()) {
215
+ revert ErrorTokenHandlerAllowanceTooSmall(address(TOKEN), from, address(this), allowance, amount.toInt());
216
+ }
217
+
218
+ // balance must be >= amount
219
+ uint256 balance = TOKEN.balanceOf(from);
220
+ if (balance < amount.toInt()) {
221
+ revert ErrorTokenHandlerBalanceTooLow(address(TOKEN), from, balance, amount.toInt());
222
+ }
223
+ }
224
+ }
225
+
226
+
227
+ /// @dev Token specific transfer helper
228
+ /// a default token contract is provided via contract constructor
229
+ /// relies internally on oz SafeERC20.safeTransferFrom
230
+ contract TokenHandler is
231
+ AccessManaged,
232
+ TokenHandlerBase
233
+ {
234
+
235
+ // onlyService
236
+ error ErrorTokenHandlerNotService(address service);
237
+
238
+ // TODO delete
239
+ error ErrorTokenHandlerRecipientWalletsMustBeDistinct(address to, address to2, address to3);
240
+
241
+ modifier onlyService() {
242
+ if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
243
+ revert ErrorTokenHandlerNotService(msg.sender);
244
+ }
245
+ _;
246
+ }
247
+
248
+ constructor(
249
+ address registry,
250
+ address component,
251
+ address token,
252
+ address authority
253
+ )
254
+ TokenHandlerBase(registry, component, token)
255
+ AccessManaged(authority)
256
+ { }
257
+
258
+ /// @dev sets the wallet address for the component.
259
+ /// if the current wallet has tokens, these will be transferred.
260
+ /// if the new wallet address is externally owned, an approval from the
261
+ /// owner of the external wallet to the tokenhandler of the component that
262
+ /// covers the current component balance must exist
263
+ function setWallet(address newWallet)
264
+ external
265
+ // restricted() // TODO re-activate
266
+ onlyService()
267
+ {
268
+ _setWallet(newWallet);
269
+ }
270
+
271
+
272
+ /// @dev Approves token handler to spend up to the specified amount of tokens.
273
+ /// Sets spending limit to type(uint256).max for AmountLib.max().
274
+ /// Reverts if component wallet is not component itself.
275
+ /// Sets approvel using SareERC20.forceApprove internally.
276
+ function approve(
277
+ IERC20Metadata token,
39
278
  Amount amount
40
279
  )
41
280
  external
281
+ // restricted() // TODO re-activate
282
+ onlyService()
42
283
  {
43
- SafeERC20.safeTransferFrom(
44
- IERC20Metadata(token),
45
- from,
46
- to,
47
- amount.toInt());
284
+ _approve(token, amount);
48
285
  }
49
286
 
50
- /// @dev returns the default token defined for this TokenHandler
51
- function getToken()
287
+ /// @dev Collect tokens from outside of GIF and transfer them to the wallet.
288
+ /// This method also checks balance and allowance and makes sure the amount is greater than zero.
289
+ function pullToken(
290
+ address from,
291
+ Amount amount
292
+ )
52
293
  external
53
- view
54
- returns (IERC20Metadata)
294
+ // restricted() // TODO re-activate
295
+ onlyService()
296
+ {
297
+ _pullToken(from, amount);
298
+ }
299
+
300
+
301
+ /// @dev Distribute tokens from a wallet within the scope of gif to some address.
302
+ function pushToken(
303
+ address to,
304
+ Amount amount
305
+ )
306
+ external
307
+ // restricted() // TODO re-activate
308
+ onlyService()
55
309
  {
56
- return _token;
310
+ _pushToken(to, amount);
57
311
  }
58
312
  }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TokenHandler} from "./TokenHandler.sol";
5
+
6
+ library TokenHandlerDeployerLib {
7
+
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);
18
+ }
19
+
20
+ }
@@ -30,6 +30,9 @@ interface IStaking is
30
30
  error ErrorStakingNotStakingOwner();
31
31
  error ErrorStakingNotNftOwner(NftId nftId);
32
32
 
33
+ // initializeTokenHandler
34
+ error ErrorStakingNotRegistry(address registry);
35
+
33
36
  // staking rate
34
37
  error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
35
38
 
@@ -42,8 +45,9 @@ interface IStaking is
42
45
  error ErrorStakingTargetNftIdZero();
43
46
  error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
44
47
  error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
45
- error ErrorStakingLockingPeriodZero(NftId targetNftId);
48
+ error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
46
49
  error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
50
+ error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
47
51
  error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
48
52
  error ErrorStakingTargetNotFound(NftId targetNftId);
49
53
  error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
@@ -63,6 +67,8 @@ interface IStaking is
63
67
  UFixed rewardRate;
64
68
  }
65
69
 
70
+ function initializeTokenHandler() external;
71
+
66
72
  // staking rate management
67
73
 
68
74
  /// @dev sets the rate that converts 1 token of total value locked into the
@@ -152,14 +158,6 @@ interface IStaking is
152
158
  Amount rewardsClaimedAmount
153
159
  );
154
160
 
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
161
  //--- view and pure functions -------------------------------------------//
164
162
 
165
163
  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
 
@@ -33,7 +31,6 @@ interface IStakingService is IService
33
31
  event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
34
32
 
35
33
  // modifiers
36
- error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
37
34
  error ErrorStakingServiceNotStaking(address stakingAddress);
38
35
  error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
39
36