@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-ac4bee9-682

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 (408) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +139 -157
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -96
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +152 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +104 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +92 -81
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  41. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +151 -132
  45. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +133 -127
  47. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +249 -188
  49. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +530 -229
  51. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +31 -86
  57. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  58. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -40
  59. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  61. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +113 -135
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +91 -133
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +72 -40
  69. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +172 -111
  71. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  73. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  76. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  78. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  80. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  86. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +121 -139
  89. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  90. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
  91. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +87 -76
  94. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  96. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +97 -91
  98. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +102 -47
  100. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +72 -36
  102. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +97 -119
  104. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  106. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +205 -103
  108. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +108 -60
  110. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +72 -15
  112. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  113. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +87 -115
  114. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +213 -195
  116. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/Pool.sol/Pool.json +97 -130
  118. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +294 -255
  120. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +83 -47
  122. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +82 -32
  124. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +69 -33
  126. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  127. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +142 -92
  128. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
  130. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  131. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +175 -82
  132. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +102 -58
  134. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
  136. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -0
  138. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  139. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -1
  140. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
  142. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  143. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +128 -73
  144. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
  146. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -61
  148. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +87 -47
  150. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  151. package/artifacts/contracts/product/PricingService.sol/PricingService.json +165 -107
  152. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +85 -45
  154. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  155. package/artifacts/contracts/product/Product.sol/Product.json +138 -88
  156. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -26
  158. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +66 -30
  160. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  162. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +72 -15
  164. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  166. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  168. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -51
  170. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +206 -165
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +161 -61
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -29
  176. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  178. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
  180. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  182. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  183. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  184. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  185. package/artifacts/contracts/shared/Component.sol/Component.json +76 -66
  186. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +425 -155
  188. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +103 -63
  190. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  191. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +21 -2
  194. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -51
  196. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +388 -19
  198. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +87 -76
  200. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  202. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  204. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  206. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  209. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  212. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  213. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  214. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +97 -91
  215. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  216. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  217. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  219. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  220. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  221. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  223. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  225. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
  227. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  229. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Service.sol/Service.json +42 -0
  231. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  235. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  236. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  238. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +84 -87
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  240. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  243. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/Staking.sol/Staking.json +154 -166
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +81 -51
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +82 -53
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +69 -33
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  258. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  265. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  267. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  273. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  275. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  277. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  279. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  281. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  283. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  285. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  287. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  299. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
  301. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  302. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +65 -61
  304. package/contracts/authorization/Authorization.sol +106 -38
  305. package/contracts/authorization/IAccess.sol +1 -0
  306. package/contracts/authorization/IAccessAdmin.sol +4 -2
  307. package/contracts/authorization/IAuthorization.sol +13 -7
  308. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  309. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  310. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  311. package/contracts/distribution/BasicDistribution.sol +2 -1
  312. package/contracts/distribution/Distribution.sol +6 -16
  313. package/contracts/distribution/DistributionService.sol +55 -36
  314. package/contracts/distribution/IDistributionComponent.sol +1 -1
  315. package/contracts/examples/fire/DamageLevel.sol +59 -0
  316. package/contracts/examples/fire/FirePool.sol +86 -0
  317. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  318. package/contracts/examples/fire/FireProduct.sol +431 -0
  319. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  320. package/contracts/examples/fire/FireUSD.sol +26 -0
  321. package/contracts/examples/unpermissioned/SimpleDistribution.sol +12 -4
  322. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  323. package/contracts/examples/unpermissioned/SimplePool.sol +38 -6
  324. package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
  325. package/contracts/instance/IInstance.sol +4 -1
  326. package/contracts/instance/IInstanceService.sol +2 -23
  327. package/contracts/instance/Instance.sol +20 -17
  328. package/contracts/instance/InstanceAdmin.sol +17 -28
  329. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  330. package/contracts/instance/InstanceReader.sol +10 -34
  331. package/contracts/instance/InstanceService.sol +29 -80
  332. package/contracts/instance/module/IComponents.sol +7 -5
  333. package/contracts/instance/module/IPolicy.sol +2 -1
  334. package/contracts/oracle/BasicOracle.sol +0 -1
  335. package/contracts/oracle/IOracleService.sol +2 -1
  336. package/contracts/oracle/Oracle.sol +4 -15
  337. package/contracts/oracle/OracleService.sol +47 -36
  338. package/contracts/pool/BasicPool.sol +33 -24
  339. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  340. package/contracts/pool/BundleService.sol +88 -41
  341. package/contracts/pool/IBundleService.sol +11 -5
  342. package/contracts/pool/IPoolComponent.sol +1 -7
  343. package/contracts/pool/IPoolService.sol +25 -24
  344. package/contracts/pool/Pool.sol +118 -126
  345. package/contracts/pool/PoolService.sol +203 -131
  346. package/contracts/product/ApplicationService.sol +9 -1
  347. package/contracts/product/BasicProduct.sol +8 -12
  348. package/contracts/product/BasicProductAuthorization.sol +0 -1
  349. package/contracts/product/ClaimService.sol +99 -58
  350. package/contracts/product/IClaimService.sol +2 -1
  351. package/contracts/product/IPolicyService.sol +6 -1
  352. package/contracts/product/IPricingService.sol +9 -9
  353. package/contracts/product/IProductComponent.sol +6 -0
  354. package/contracts/product/PolicyService.sol +76 -27
  355. package/contracts/product/PricingService.sol +8 -8
  356. package/contracts/product/Product.sol +56 -56
  357. package/contracts/registry/ChainNft.sol +6 -9
  358. package/contracts/registry/IRegistry.sol +6 -3
  359. package/contracts/registry/IRegistryService.sol +6 -4
  360. package/contracts/registry/ITransferInterceptor.sol +1 -2
  361. package/contracts/registry/Registry.sol +22 -4
  362. package/contracts/registry/RegistryAdmin.sol +29 -31
  363. package/contracts/registry/RegistryService.sol +37 -55
  364. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  365. package/contracts/registry/ReleaseRegistry.sol +202 -208
  366. package/contracts/registry/ServiceAuthorizationV3.sol +24 -20
  367. package/contracts/shared/Component.sol +58 -97
  368. package/contracts/shared/ComponentService.sol +285 -147
  369. package/contracts/shared/ComponentVerifyingService.sol +27 -15
  370. package/contracts/shared/ContractLib.sol +17 -1
  371. package/contracts/shared/IComponent.sol +10 -13
  372. package/contracts/shared/IComponentService.sol +38 -16
  373. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  374. package/contracts/shared/ILifecycle.sol +3 -1
  375. package/contracts/shared/INftOwnable.sol +2 -0
  376. package/contracts/shared/IRegisterable.sol +11 -0
  377. package/contracts/shared/InstanceLinkedComponent.sol +66 -32
  378. package/contracts/shared/KeyValueStore.sol +1 -1
  379. package/contracts/shared/Lifecycle.sol +15 -4
  380. package/contracts/shared/NftOwnable.sol +23 -3
  381. package/contracts/shared/Registerable.sol +15 -7
  382. package/contracts/shared/RegistryLinked.sol +6 -12
  383. package/contracts/shared/Service.sol +4 -7
  384. package/contracts/shared/TokenHandler.sol +324 -66
  385. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  386. package/contracts/staking/IStaking.sol +9 -4
  387. package/contracts/staking/IStakingService.sol +0 -3
  388. package/contracts/staking/Staking.sol +31 -24
  389. package/contracts/staking/StakingReader.sol +12 -5
  390. package/contracts/staking/StakingService.sol +69 -23
  391. package/contracts/type/Amount.sol +15 -0
  392. package/contracts/type/ClaimId.sol +6 -1
  393. package/contracts/type/NftId.sol +1 -0
  394. package/contracts/type/ObjectType.sol +1 -0
  395. package/contracts/type/RiskId.sol +16 -2
  396. package/contracts/type/RoleId.sol +0 -12
  397. package/contracts/type/StateId.sol +14 -1
  398. package/contracts/upgradeability/ProxyManager.sol +2 -1
  399. package/package.json +4 -3
  400. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  401. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  402. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  403. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  404. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  405. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  406. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  407. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  408. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -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 {IRegistry} from "../registry/IRegistry.sol";
5
7
  import {IRegistryService} from "../registry/IRegistryService.sol";
6
8
  import {IStaking} from "./IStaking.sol";
@@ -9,8 +11,9 @@ import {IVersionable} from "../upgradeability/IVersionable.sol";
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, COMPONENT, STAKING} from "../type/ObjectType.sol";
14
17
  import {Seconds} from "../type/Seconds.sol";
15
18
  import {StakeManagerLib} from "./StakeManagerLib.sol";
16
19
  import {StakingReader} from "./StakingReader.sol";
@@ -30,7 +33,6 @@ contract Staking is
30
33
  IStaking
31
34
  {
32
35
  string public constant CONTRACT_NAME = "Staking";
33
- uint8 private constant GIF_MAJOR_VERSION = 3;
34
36
 
35
37
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
36
38
  bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
@@ -60,6 +62,21 @@ 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
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
74
+ address(getRegistry()),
75
+ address(this),
76
+ address(getToken()),
77
+ getRegistry().getAuthority());
78
+ }
79
+
63
80
  // set/update staking reader
64
81
  function setStakingReader(StakingReader stakingReader)
65
82
  external
@@ -372,25 +389,6 @@ contract Staking is
372
389
  }
373
390
 
374
391
 
375
-
376
- //--- other functions ---------------------------------------------------//
377
-
378
- function collectDipAmount(address from, Amount dipAmount)
379
- external
380
- restricted() // only staking service
381
- {
382
- getTokenHandler().collectTokens(from, getWallet(), dipAmount);
383
- }
384
-
385
-
386
- function transferDipAmount(address to, Amount dipAmount)
387
- external
388
- restricted() // only staking service
389
- {
390
- getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
391
- }
392
-
393
-
394
392
  //--- view functions ----------------------------------------------------//
395
393
 
396
394
  function getStakingReader() public view returns (StakingReader reader) {
@@ -416,7 +414,7 @@ contract Staking is
416
414
  virtual override (IVersionable, Versionable)
417
415
  returns(Version)
418
416
  {
419
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
417
+ return VersionLib.toVersion(GIF_RELEASE,0,0);
420
418
  }
421
419
 
422
420
  //--- internal functions ------------------------------------------------//
@@ -445,6 +443,16 @@ contract Staking is
445
443
  }
446
444
 
447
445
 
446
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
447
+ internal
448
+ virtual override
449
+ {
450
+ IComponentService(_getServiceAddress(COMPONENT())).approveStakingTokenHandler(
451
+ token,
452
+ amount);
453
+ }
454
+
455
+
448
456
  function _initialize(
449
457
  address owner,
450
458
  bytes memory data
@@ -469,7 +477,7 @@ contract Staking is
469
477
  _initializeComponent(
470
478
  authority,
471
479
  registryAddress,
472
- registry.getNftId(),
480
+ registry.getNftId(), // parent nft id
473
481
  CONTRACT_NAME,
474
482
  dipTokenAddress,
475
483
  STAKING(),
@@ -484,7 +492,6 @@ contract Staking is
484
492
  $._store = StakingStore(stakingStoreAddress);
485
493
  $._reader = StakingStore(stakingStoreAddress).getStakingReader();
486
494
  $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
487
- $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
488
495
 
489
496
  _registerInterface(type(IStaking).interfaceId);
490
497
  }
@@ -1,13 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
4
6
  import {IRegistry} from "../registry/IRegistry.sol";
5
7
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
6
8
  import {IStaking} from "../staking/IStaking.sol";
7
9
 
8
10
  import {Amount} from "../type/Amount.sol";
9
11
  import {Blocknumber} from "../type/Blocknumber.sol";
10
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
11
12
  import {NftId} from "../type/NftId.sol";
12
13
  import {STAKE, TARGET} from "../type/ObjectType.sol";
13
14
  import {StakingStore} from "./StakingStore.sol";
@@ -16,16 +17,18 @@ import {UFixed} from "../type/UFixed.sol";
16
17
 
17
18
  contract StakingReader is
18
19
  IRegistryLinked,
19
- InitializableCustom
20
+ Initializable
20
21
  {
21
22
 
22
- error ErrorStakingReaderDependenciesAlreadySet();
23
+ error ErrorStakingReaderUnauthorizedCaler();
23
24
 
25
+ address private _initializeOwner;
24
26
  IRegistry private _registry;
25
27
  IStaking private _staking;
26
28
  StakingStore private _store;
27
29
 
28
- constructor(IRegistry registry) InitializableCustom() {
30
+ constructor(IRegistry registry) {
31
+ _initializeOwner = msg.sender;
29
32
  _registry = registry;
30
33
  }
31
34
 
@@ -34,8 +37,12 @@ contract StakingReader is
34
37
  address stakingStoreAddress
35
38
  )
36
39
  external
37
- initializer
40
+ initializer()
38
41
  {
42
+ if (msg.sender != _initializeOwner) {
43
+ revert ErrorStakingReaderUnauthorizedCaler();
44
+ }
45
+
39
46
  _staking = IStaking(stakingAddress);
40
47
  _store = StakingStore(stakingStoreAddress);
41
48
  }
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {ChainNft} from "../registry/ChainNft.sol";
8
- import {IPoolService} from "../pool/IPoolService.sol";
9
7
  import {IRegisterable} from "../shared/IRegisterable.sol";
10
8
  import {IRegistry} from "../registry/IRegistry.sol";
11
9
  import {RegistryService} from "../registry/RegistryService.sol";
12
10
  import {IStaking} from "./IStaking.sol";
13
11
  import {IStakingService} from "./IStakingService.sol";
14
12
  import {NftId, NftIdLib} from "../type/NftId.sol";
15
- import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
13
+ import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
16
14
  import {Seconds} from "../type/Seconds.sol";
17
15
  import {Service} from "../shared/Service.sol";
18
- import {StakeManagerLib} from "./StakeManagerLib.sol";
19
- import {StakingReader} from "./StakingReader.sol";
20
- import {TargetManagerLib} from "./TargetManagerLib.sol";
21
- import {Timestamp} from "../type/Timestamp.sol";
22
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
23
17
  import {UFixed} from "../type/UFixed.sol";
24
18
 
@@ -38,14 +32,6 @@ contract StakingService is
38
32
  TokenHandler _tokenHandler;
39
33
  }
40
34
 
41
- modifier onlyNftOwner(NftId nftId) {
42
- if(msg.sender != getRegistry().ownerOf(nftId)) {
43
- revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
44
- }
45
- _;
46
- }
47
-
48
-
49
35
  function createInstanceTarget(
50
36
  NftId targetNftId,
51
37
  Seconds initialLockingPeriod,
@@ -72,6 +58,7 @@ contract StakingService is
72
58
  virtual
73
59
  restricted()
74
60
  {
61
+ _checkNftType(instanceNftId, INSTANCE());
75
62
  _getStakingServiceStorage()._staking.setLockingPeriod(
76
63
  instanceNftId,
77
64
  lockingPeriod);
@@ -83,6 +70,7 @@ contract StakingService is
83
70
  virtual
84
71
  restricted()
85
72
  {
73
+ _checkNftType(instanceNftId, INSTANCE());
86
74
  _getStakingServiceStorage()._staking.setRewardRate(
87
75
  instanceNftId,
88
76
  rewardRate);
@@ -95,6 +83,7 @@ contract StakingService is
95
83
  restricted()
96
84
  returns (Amount newBalance)
97
85
  {
86
+ _checkNftType(instanceNftId, INSTANCE());
98
87
  return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
88
  }
100
89
 
@@ -116,6 +105,7 @@ contract StakingService is
116
105
  restricted()
117
106
  returns (Amount newBalance)
118
107
  {
108
+ _checkNftType(instanceNftId, INSTANCE());
119
109
  // update reward reserve book keeping
120
110
  StakingServiceStorage storage $ = _getStakingServiceStorage();
121
111
  newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
@@ -123,7 +113,8 @@ contract StakingService is
123
113
  // transfer withdrawal amount to target owner
124
114
  address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
115
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
126
- $._staking.transferDipAmount(
116
+ _distributeToken(
117
+ $._staking.getTokenHandler(),
127
118
  instanceOwner,
128
119
  dipAmount);
129
120
  }
@@ -171,9 +162,44 @@ contract StakingService is
171
162
  emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
172
163
 
173
164
  // collect staked dip by staking
174
- $._staking.collectDipAmount(
175
- stakeOwner,
165
+ _collectToken(
166
+ $._staking.getTokenHandler(),
167
+ stakeOwner,
176
168
  dipAmount);
169
+
170
+ // TODO cleanup
171
+ // TokenHandler tokenHandler = $._staking.getTokenHandler();
172
+ // tokenHandler.collectTokens(
173
+ // stakeOwner,
174
+ // tokenHandler.getWallet(),
175
+ // dipAmount);
176
+ }
177
+
178
+ function _collectToken(
179
+ TokenHandler tokenHandler,
180
+ address from,
181
+ Amount amount
182
+ )
183
+ internal
184
+ virtual
185
+ {
186
+ tokenHandler.collectTokens(
187
+ from,
188
+ amount);
189
+ }
190
+
191
+ function _distributeToken(
192
+ TokenHandler tokenHandler,
193
+ address to,
194
+ Amount amount
195
+ )
196
+ internal
197
+ virtual
198
+ {
199
+ tokenHandler.distributeTokens(
200
+ tokenHandler.getWallet(),
201
+ to,
202
+ amount);
177
203
  }
178
204
 
179
205
 
@@ -186,6 +212,8 @@ contract StakingService is
186
212
  restricted()
187
213
  onlyNftOwner(stakeNftId)
188
214
  {
215
+ _checkNftType(stakeNftId, STAKE());
216
+
189
217
  StakingServiceStorage storage $ = _getStakingServiceStorage();
190
218
  address stakeOwner = msg.sender;
191
219
 
@@ -197,7 +225,8 @@ contract StakingService is
197
225
  // collect staked dip by staking
198
226
  if (dipAmount.gtz()) {
199
227
  emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
200
- $._staking.collectDipAmount(
228
+ _collectToken(
229
+ $._staking.getTokenHandler(),
201
230
  stakeOwner,
202
231
  dipAmount);
203
232
  }
@@ -216,6 +245,8 @@ contract StakingService is
216
245
  NftId newStakeNftId
217
246
  )
218
247
  {
248
+ _checkNftType(stakeNftId, STAKE());
249
+
219
250
  StakingServiceStorage storage $ = _getStakingServiceStorage();
220
251
  // TODO implement
221
252
  }
@@ -228,6 +259,8 @@ contract StakingService is
228
259
  virtual
229
260
  restricted()
230
261
  {
262
+ _checkNftType(stakeNftId, STAKE());
263
+
231
264
  StakingServiceStorage storage $ = _getStakingServiceStorage();
232
265
  $._staking.updateRewards(stakeNftId);
233
266
 
@@ -241,12 +274,15 @@ contract StakingService is
241
274
  restricted()
242
275
  onlyNftOwner(stakeNftId)
243
276
  {
277
+ _checkNftType(stakeNftId, STAKE());
278
+
244
279
  StakingServiceStorage storage $ = _getStakingServiceStorage();
245
280
  address stakeOwner = msg.sender;
246
281
 
247
282
  Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
248
283
  emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
249
- $._staking.transferDipAmount(
284
+ _distributeToken(
285
+ $._staking.getTokenHandler(),
250
286
  stakeOwner,
251
287
  rewardsClaimedAmount);
252
288
  }
@@ -258,6 +294,8 @@ contract StakingService is
258
294
  restricted()
259
295
  onlyNftOwner(stakeNftId)
260
296
  {
297
+ _checkNftType(stakeNftId, STAKE());
298
+
261
299
  StakingServiceStorage storage $ = _getStakingServiceStorage();
262
300
  address stakeOwner = msg.sender;
263
301
 
@@ -268,9 +306,16 @@ contract StakingService is
268
306
 
269
307
  Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
308
  emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
271
- $._staking.transferDipAmount(
272
- stakeOwner,
309
+
310
+ $._staking.getTokenHandler().pushToken(
311
+ stakeOwner,
273
312
  totalAmount);
313
+
314
+ // TODO cleanup
315
+ // _distributeToken(
316
+ // $._staking.getTokenHandler(),
317
+ // stakeOwner,
318
+ // totalAmount);
274
319
  }
275
320
 
276
321
 
@@ -388,7 +433,8 @@ contract StakingService is
388
433
  emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
389
434
 
390
435
  // collect reward dip from provider
391
- $._staking.collectDipAmount(
436
+ _collectToken(
437
+ $._staking.getTokenHandler(),
392
438
  rewardProvider,
393
439
  dipAmount);
394
440
  }
@@ -11,7 +11,9 @@ using {
11
11
  eqAmount as ==,
12
12
  nqAmount as !=,
13
13
  ltAmount as <,
14
+ ltAmount as <=,
14
15
  gtAmount as >,
16
+ gteAmount as >=,
15
17
  AmountLib.add,
16
18
  AmountLib.eq,
17
19
  AmountLib.eqz,
@@ -43,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
43
45
  return AmountLib.lt(a, b);
44
46
  }
45
47
 
48
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lte(a, b);
50
+ }
51
+
46
52
  function gtAmount(Amount a, Amount b) pure returns (bool) {
47
53
  return AmountLib.gt(a, b);
48
54
  }
49
55
 
56
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gte(a, b);
58
+ }
59
+
50
60
  library AmountLib {
51
61
 
52
62
  error ErrorAmountLibValueTooBig(uint256 amount);
@@ -84,6 +94,11 @@ library AmountLib {
84
94
  return Amount.unwrap(a1) < Amount.unwrap(a2);
85
95
  }
86
96
 
97
+ /// @dev return true if amount a1 is less or equal than a2
98
+ function lte(Amount a1, Amount a2) public pure returns (bool) {
99
+ return Amount.unwrap(a1) <= Amount.unwrap(a2);
100
+ }
101
+
87
102
  /// @dev return true if amount a1 is greater than a2
88
103
  function gt(Amount a1, Amount a2) public pure returns (bool) {
89
104
  return Amount.unwrap(a1) > Amount.unwrap(a2);
@@ -12,6 +12,7 @@ import {NftId} from "./NftId.sol";
12
12
  using {
13
13
  eqClaimId as ==,
14
14
  neClaimId as !=,
15
+ ClaimIdLib.eq,
15
16
  ClaimIdLib.eqz,
16
17
  ClaimIdLib.gtz,
17
18
  ClaimIdLib.toInt,
@@ -21,7 +22,7 @@ using {
21
22
 
22
23
  // pure free functions for operators
23
24
  function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
24
- return ClaimId.unwrap(a) == ClaimId.unwrap(b);
25
+ return ClaimIdLib.eq(a, b);
25
26
  }
26
27
 
27
28
  function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
@@ -68,6 +69,10 @@ library ClaimIdLib {
68
69
  return ClaimId.unwrap(a) > 0;
69
70
  }
70
71
 
72
+ function eq(ClaimId a, ClaimId b) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
74
+ }
75
+
71
76
  /// @dev Returns true if the value is zero (== 0).
72
77
  function eqz(ClaimId a) public pure returns (bool) {
73
78
  return ClaimId.unwrap(a) == 0;
@@ -14,6 +14,7 @@ using {
14
14
  NftIdLib.toInt,
15
15
  NftIdLib.gtz,
16
16
  NftIdLib.eqz,
17
+ NftIdLib.eq,
17
18
  NftIdLib.toKeyId,
18
19
  NftIdLib.toKey32
19
20
  } for NftId global;
@@ -9,6 +9,7 @@ using {
9
9
  neObjectType as !=,
10
10
  ObjectTypeLib.toInt,
11
11
  ObjectTypeLib.eqz,
12
+ ObjectTypeLib.eq,
12
13
  ObjectTypeLib.gtz
13
14
  } for ObjectType global;
14
15
 
@@ -10,7 +10,9 @@ type RiskId is bytes8;
10
10
  using {
11
11
  eqRiskId as ==,
12
12
  neRiskId as !=,
13
- RiskIdLib.toKey32
13
+ RiskIdLib.toKey32,
14
+ RiskIdLib.eq,
15
+ RiskIdLib.eqz
14
16
  } for RiskId global;
15
17
 
16
18
  // general pure free functions
@@ -26,7 +28,11 @@ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
26
28
  }
27
29
 
28
30
  library RiskIdLib {
29
- // @dev Converts a role string into a role id.
31
+ function zero() public pure returns (RiskId) {
32
+ return RiskId.wrap(bytes8(0));
33
+ }
34
+
35
+ // @dev Converts a string into a risk id.
30
36
  function toRiskId(string memory risk) public pure returns (RiskId) {
31
37
  return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
32
38
  }
@@ -40,4 +46,12 @@ library RiskIdLib {
40
46
  function toKeyId(RiskId id) public pure returns (KeyId keyId) {
41
47
  return KeyId.wrap(bytes31(RiskId.unwrap(id)));
42
48
  }
49
+
50
+ function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
51
+ return eqRiskId(a, b);
52
+ }
53
+
54
+ function eqz(RiskId a) public pure returns (bool isZero) {
55
+ return eqRiskId(a, zero());
56
+ }
43
57
  }
@@ -54,18 +54,6 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2)
54
54
  /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
55
  function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
56
56
 
57
- /// @dev instance specific role to register/own a product component
58
- function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11); }
59
-
60
- /// @dev instance specific role to register/own an oracle component
61
- function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(12); }
62
-
63
- /// @dev instance specific role to register/own a distribution component
64
- function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(13); }
65
-
66
- /// @dev instance specific role to register/own a pool component
67
- function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14); }
68
-
69
57
  //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
70
58
  // created and assigned during initial deployment for registry and staking
71
59
  // granting for instances and components in instance service
@@ -28,10 +28,18 @@ function DEPLOYING() pure returns (StateId) {
28
28
  return toStateId(3);
29
29
  }
30
30
 
31
- function ACTIVE() pure returns (StateId) {
31
+ function DEPLOYED() pure returns (StateId) {
32
32
  return toStateId(4);
33
33
  }
34
34
 
35
+ function ACTIVE() pure returns (StateId) {
36
+ return toStateId(5);
37
+ }
38
+
39
+ function SKIPPED() pure returns (StateId) {
40
+ return toStateId(6);
41
+ }
42
+
35
43
  function APPLIED() pure returns (StateId) {
36
44
  return toStateId(10);
37
45
  }
@@ -114,6 +122,11 @@ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
114
122
 
115
123
  // library functions that operate on user defined type
116
124
  library StateIdLib {
125
+
126
+ function zero() public pure returns (StateId) {
127
+ return StateId.wrap(0);
128
+ }
129
+
117
130
  /// @dev Converts the NftId to a uint256.
118
131
  function toInt(StateId stateId) public pure returns (uint96) {
119
132
  return uint96(StateId.unwrap(stateId));
@@ -192,7 +192,8 @@ contract ProxyManager is
192
192
  revert ErrorProxyManagerAlreadyDeployed();
193
193
  }
194
194
 
195
- _initializeNftOwnable(msg.sender, registry);
195
+ address initialOwner = msg.sender;
196
+ _initializeNftOwnable(registry, initialOwner);
196
197
 
197
198
  currentProxyOwner = getOwner(); // used by implementation
198
199
  initialProxyAdminOwner = address(this); // used by proxy
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-abde86b-349",
3
+ "version": "0.0.2-ac4bee9-682",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -32,8 +32,8 @@
32
32
  "@nomicfoundation/hardhat-foundry": "^1.1.1",
33
33
  "@nomicfoundation/hardhat-toolbox": "^5.0.0",
34
34
  "@nomicfoundation/hardhat-verify": "^2.0.1",
35
- "@typescript-eslint/eslint-plugin": "^7.1.0",
36
- "@typescript-eslint/parser": "^7.1.0",
35
+ "@typescript-eslint/eslint-plugin": "^8.1.0",
36
+ "@typescript-eslint/parser": "^8.1.0",
37
37
  "antlr4ng-cli": "^2.0.0",
38
38
  "dotenv": "^16.3.1",
39
39
  "eslint": "^8.50.0",
@@ -49,6 +49,7 @@
49
49
  "abi-coder": "^5.0.0",
50
50
  "antlr4ng": "^3.0.4",
51
51
  "ethers": "^6.7.1",
52
+ "ethers-decode-error": "^2.1.3",
52
53
  "solidity-docgen": "^0.6.0-beta.36",
53
54
  "winston": "^3.10.0"
54
55
  }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/611214afb9dd0633def7529ada90c109.json"
4
- }