@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607

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 (475) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +29 -254
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +230 -65
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +24 -164
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
  150. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  151. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
  152. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  153. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
  154. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  155. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  161. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  162. package/artifacts/contracts/registry/Registry.sol/Registry.json +182 -88
  163. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
  165. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  167. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
  169. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  171. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  173. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  175. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
  177. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  178. package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
  179. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
  181. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
  183. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  185. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  186. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  195. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +24 -64
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  210. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.dbg.json +4 -0
  211. package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -44
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +590 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +149 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  318. package/contracts/distribution/Distribution.sol +126 -104
  319. package/contracts/distribution/DistributionService.sol +15 -25
  320. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  321. package/contracts/distribution/IDistributionComponent.sol +17 -35
  322. package/contracts/distribution/IDistributionService.sol +5 -1
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  324. package/contracts/instance/IInstance.sol +20 -13
  325. package/contracts/instance/IInstanceService.sol +34 -23
  326. package/contracts/instance/Instance.sol +108 -89
  327. package/contracts/instance/InstanceAdmin.sol +202 -266
  328. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  329. package/contracts/instance/InstanceReader.sol +52 -12
  330. package/contracts/instance/InstanceService.sol +159 -78
  331. package/contracts/instance/InstanceServiceManager.sol +2 -6
  332. package/contracts/instance/InstanceStore.sol +38 -22
  333. package/contracts/instance/base/BalanceStore.sol +11 -6
  334. package/contracts/instance/base/Cloneable.sol +2 -25
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  338. package/contracts/oracle/BasicOracle.sol +48 -0
  339. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  340. package/contracts/oracle/IOracle.sol +36 -0
  341. package/contracts/oracle/IOracleComponent.sol +32 -0
  342. package/contracts/oracle/IOracleService.sol +65 -0
  343. package/contracts/oracle/Oracle.sol +157 -0
  344. package/contracts/oracle/OracleService.sol +278 -0
  345. package/contracts/oracle/OracleServiceManager.sol +39 -0
  346. package/contracts/pool/BasicPool.sol +164 -0
  347. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  348. package/contracts/pool/BundleService.sol +32 -44
  349. package/contracts/pool/BundleServiceManager.sol +2 -5
  350. package/contracts/pool/IPoolComponent.sol +0 -60
  351. package/contracts/pool/IPoolService.sol +3 -0
  352. package/contracts/pool/Pool.sol +143 -131
  353. package/contracts/pool/PoolService.sol +45 -33
  354. package/contracts/pool/PoolServiceManager.sol +2 -5
  355. package/contracts/product/ApplicationService.sol +17 -41
  356. package/contracts/product/ApplicationServiceManager.sol +2 -2
  357. package/contracts/product/BasicProduct.sol +82 -0
  358. package/contracts/product/BasicProductAuthorization.sol +40 -0
  359. package/contracts/product/ClaimService.sol +16 -37
  360. package/contracts/product/ClaimServiceManager.sol +2 -2
  361. package/contracts/product/IClaimService.sol +6 -0
  362. package/contracts/product/IProductComponent.sol +6 -9
  363. package/contracts/product/PolicyService.sol +8 -6
  364. package/contracts/product/PolicyServiceManager.sol +2 -5
  365. package/contracts/product/PricingService.sol +7 -8
  366. package/contracts/product/PricingServiceManager.sol +2 -5
  367. package/contracts/product/Product.sol +103 -88
  368. package/contracts/product/ProductService.sol +12 -37
  369. package/contracts/product/ProductServiceManager.sol +2 -5
  370. package/contracts/registry/ChainNft.sol +37 -22
  371. package/contracts/registry/GlobalRegistry.sol +89 -0
  372. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  373. package/contracts/registry/IGlobalRegistry.sol +17 -0
  374. package/contracts/registry/IRegistry.sol +25 -18
  375. package/contracts/registry/IRegistryService.sol +6 -6
  376. package/contracts/registry/Registry.sol +129 -150
  377. package/contracts/registry/RegistryAdmin.sol +358 -150
  378. package/contracts/registry/RegistryService.sol +9 -23
  379. package/contracts/registry/RegistryServiceManager.sol +2 -7
  380. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  381. package/contracts/registry/ReleaseRegistry.sol +533 -0
  382. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  383. package/contracts/registry/TokenRegistry.sol +9 -52
  384. package/contracts/shared/Component.sol +8 -13
  385. package/contracts/shared/ComponentService.sol +45 -60
  386. package/contracts/shared/ComponentServiceManager.sol +2 -2
  387. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  388. package/contracts/shared/IComponent.sol +3 -7
  389. package/contracts/shared/IComponentService.sol +11 -0
  390. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  391. package/contracts/shared/IKeyValueStore.sol +2 -1
  392. package/contracts/shared/ILifecycle.sol +1 -2
  393. package/contracts/shared/IService.sol +8 -1
  394. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  395. package/contracts/shared/KeyValueStore.sol +7 -6
  396. package/contracts/shared/Lifecycle.sol +16 -60
  397. package/contracts/shared/MainnetContract.sol +15 -0
  398. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  399. package/contracts/shared/Service.sol +27 -22
  400. package/contracts/staking/IStaking.sol +41 -26
  401. package/contracts/staking/IStakingService.sol +42 -44
  402. package/contracts/staking/StakeManagerLib.sol +101 -26
  403. package/contracts/staking/Staking.sol +139 -125
  404. package/contracts/staking/StakingLifecycle.sol +23 -0
  405. package/contracts/staking/StakingManager.sol +2 -6
  406. package/contracts/staking/StakingReader.sol +73 -36
  407. package/contracts/staking/StakingService.sol +121 -86
  408. package/contracts/staking/StakingServiceManager.sol +2 -3
  409. package/contracts/staking/StakingStore.sol +401 -127
  410. package/contracts/staking/TargetManagerLib.sol +28 -0
  411. package/contracts/type/Amount.sol +15 -1
  412. package/contracts/type/NftId.sol +8 -8
  413. package/contracts/type/ObjectType.sol +171 -69
  414. package/contracts/type/RequestId.sol +75 -0
  415. package/contracts/type/RoleId.sol +103 -72
  416. package/contracts/type/Seconds.sol +10 -0
  417. package/contracts/type/Selector.sol +102 -0
  418. package/contracts/type/StateId.sol +12 -0
  419. package/contracts/type/String.sol +53 -0
  420. package/contracts/type/Timestamp.sol +6 -2
  421. package/contracts/type/UFixed.sol +6 -0
  422. package/contracts/type/Version.sol +3 -1
  423. package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
  424. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  425. package/package.json +8 -5
  426. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  428. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  429. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  430. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  431. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  432. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  433. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  434. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  435. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  436. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  437. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  438. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  439. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  440. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  441. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  442. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  444. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  445. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  446. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  447. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  448. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  449. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  450. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  451. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  452. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  453. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  454. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  455. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  456. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  457. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  458. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  459. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  460. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  461. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  462. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  463. package/contracts/registry/ReleaseManager.sol +0 -596
  464. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  465. package/contracts/shared/AccessManagerCustom.sol +0 -736
  466. package/contracts/shared/AccessManagerExtended.sol +0 -470
  467. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  468. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  469. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  470. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  471. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  472. package/contracts/staking/IStakingManager.sol +0 -15
  473. package/contracts/staking/IStakingStore.sol +0 -130
  474. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  475. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -52,6 +52,8 @@ interface IComponentService is
52
52
  function unlock() external;
53
53
 
54
54
  //-------- product ------------------------------------------------------//
55
+
56
+ /// @dev registers the sending component as a product component
55
57
  function registerProduct() external;
56
58
 
57
59
  function setProductFees(
@@ -63,6 +65,8 @@ interface IComponentService is
63
65
  function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
64
66
 
65
67
  //-------- distribution -------------------------------------------------//
68
+
69
+ /// @dev registers the sending component as a distribution component
66
70
  function registerDistribution() external;
67
71
 
68
72
  function setDistributionFees(
@@ -73,7 +77,14 @@ interface IComponentService is
73
77
  function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
74
78
  function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
75
79
 
80
+ //-------- oracle -------------------------------------------------------//
81
+
82
+ /// @dev registers the sending component as an oracle component
83
+ function registerOracle() external;
84
+
76
85
  //-------- pool ---------------------------------------------------------//
86
+
87
+ /// @dev registers the sending component as a pool component
77
88
  function registerPool() external;
78
89
 
79
90
  function setPoolFees(
@@ -5,6 +5,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
6
 
7
7
  import {IComponent} from "../shared/IComponent.sol";
8
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
9
  import {IComponents} from "../instance/module/IComponents.sol";
9
10
  import {IInstance} from "../instance/IInstance.sol";
10
11
  import {IInstanceService} from "../instance/IInstanceService.sol";
@@ -43,4 +44,7 @@ interface IInstanceLinkedComponent is
43
44
  /// this is only relevant for pool and distribution components
44
45
  function getProductNftId() external view returns (NftId productNftId);
45
46
 
47
+ /// @dev returns the initial component authorization specification.
48
+ function getAuthorization() external view returns (IAuthorization authorization);
49
+
46
50
  }
@@ -13,6 +13,7 @@ interface IKeyValueStore is ILifecycle {
13
13
 
14
14
  error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
15
15
  error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
16
+ error ErrorKeyValueStoreNoLifecycle(ObjectType objectType);
16
17
  error ErrorKeyValueStoreStateZero(Key32 key);
17
18
  error ErrorKeyValueStoreNotExisting(Key32 key);
18
19
 
@@ -32,7 +33,7 @@ interface IKeyValueStore is ILifecycle {
32
33
  // eg account outside gif objects that initiated the tx
33
34
  // implies the caller needs to be propagated through all calls up to key values store itself
34
35
  // to always have the instance address there doesn't seem to make sense
35
- address updatedBy;
36
+ // address updatedBy;
36
37
  Blocknumber updatedIn;
37
38
  Blocknumber createdIn;
38
39
  }
@@ -1,13 +1,12 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../type/NftId.sol";
5
4
  import {ObjectType} from "../type/ObjectType.sol";
6
5
  import {StateId} from "../type/StateId.sol";
7
6
 
8
7
  interface ILifecycle {
9
8
 
10
- error ErrorNoLifecycle(NftId nftId, ObjectType objectType);
9
+ error ErrorNoLifecycle(ObjectType objectType);
11
10
  error ErrorInvalidStateTransition(
12
11
  ObjectType objectType,
13
12
  StateId fromStateId,
@@ -4,8 +4,9 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {IRegisterable} from "./IRegisterable.sol";
7
- import {IVersionable} from "./IVersionable.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
8
  import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
9
10
 
10
11
  interface IService is
11
12
  IRegisterable,
@@ -14,5 +15,11 @@ interface IService is
14
15
  {
15
16
  error ErrorServiceNotImplemented();
16
17
 
18
+ /// @dev returns the domain for this service.
19
+ /// In any GIF release only one service for any given domain may be deployed.
17
20
  function getDomain() external pure returns(ObjectType serviceDomain);
21
+
22
+ /// @dev returns the GIF release specific role id.
23
+ /// These role ids are used to authorize service to service communication.
24
+ function getRoleId() external pure returns(RoleId serviceRoleId);
18
25
  }
@@ -9,10 +9,10 @@ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
9
9
  import {Component} from "./Component.sol";
10
10
  import {IComponentService} from "./IComponentService.sol";
11
11
  import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
12
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
12
13
  import {IComponents} from "../instance/module/IComponents.sol";
13
14
  import {IInstanceService} from "../instance/IInstanceService.sol";
14
15
  import {IInstance} from "../instance/IInstance.sol";
15
- import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
16
  import {InstanceReader} from "../instance/InstanceReader.sol";
17
17
  import {IRegistry} from "../registry/IRegistry.sol";
18
18
  import {NftId} from "../type/NftId.sol";
@@ -35,6 +35,27 @@ abstract contract InstanceLinkedComponent is
35
35
  struct InstanceLinkedComponentStorage {
36
36
  IInstance _instance; // instance for this component
37
37
  InstanceReader _instanceReader; // instance reader for this component
38
+ IAuthorization _initialAuthorization;
39
+ }
40
+
41
+ function lock() external onlyOwner {
42
+ IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
43
+ }
44
+
45
+ function unlock() external onlyOwner {
46
+ IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
47
+ }
48
+
49
+ function getInstance() public view override returns (IInstance instance) {
50
+ return _getInstanceLinkedComponentStorage()._instance;
51
+ }
52
+
53
+ function getProductNftId() public view override returns (NftId productNftId) {
54
+ return getComponentInfo().productNftId;
55
+ }
56
+
57
+ function getAuthorization() external view returns (IAuthorization authorization) {
58
+ return _getInstanceLinkedComponentStorage()._initialAuthorization;
38
59
  }
39
60
 
40
61
  function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
@@ -43,18 +64,19 @@ abstract contract InstanceLinkedComponent is
43
64
  }
44
65
  }
45
66
 
46
- function initializeInstanceLinkedComponent(
67
+ function _initializeInstanceLinkedComponent(
47
68
  address registry,
48
69
  NftId instanceNftId,
49
70
  string memory name,
50
71
  address token,
51
72
  ObjectType componentType,
73
+ IAuthorization authorization,
52
74
  bool isInterceptor,
53
75
  address initialOwner,
54
76
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
55
77
  bytes memory componentData // data that will saved with the component info in the instance store
56
78
  )
57
- public
79
+ internal
58
80
  virtual
59
81
  onlyInitializing()
60
82
  {
@@ -82,6 +104,7 @@ abstract contract InstanceLinkedComponent is
82
104
 
83
105
  // set component state
84
106
  $._instanceReader = $._instance.getInstanceReader();
107
+ $._initialAuthorization = authorization;
85
108
 
86
109
  registerInterface(type(IAccessManaged).interfaceId);
87
110
  registerInterface(type(IInstanceLinkedComponent).interfaceId);
@@ -93,22 +116,6 @@ abstract contract InstanceLinkedComponent is
93
116
  IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
94
117
  }
95
118
 
96
- function lock() external onlyOwner {
97
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
98
- }
99
-
100
- function unlock() external onlyOwner {
101
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
102
- }
103
-
104
- function getInstance() public view override returns (IInstance instance) {
105
- return _getInstanceLinkedComponentStorage()._instance;
106
- }
107
-
108
- function getProductNftId() public view override returns (NftId productNftId) {
109
- return getComponentInfo().productNftId;
110
- }
111
-
112
119
 
113
120
  function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
114
121
  NftId componentNftId = getRegistry().getNftId(address(this));
@@ -11,7 +11,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
11
11
  import {Lifecycle} from "./Lifecycle.sol";
12
12
  import {IKeyValueStore} from "./IKeyValueStore.sol";
13
13
 
14
- contract KeyValueStore is
14
+ abstract contract KeyValueStore is
15
15
  Lifecycle,
16
16
  IKeyValueStore
17
17
  {
@@ -34,14 +34,16 @@ contract KeyValueStore is
34
34
  revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
35
35
  }
36
36
 
37
- address createdBy = msg.sender;
37
+ if(!hasLifecycle(objectType)) {
38
+ revert ErrorKeyValueStoreNoLifecycle(objectType);
39
+ }
40
+
38
41
  Blocknumber blocknumber = blockBlocknumber();
39
- StateId initialState = hasLifecycle(objectType) ? getInitialState(objectType) : ACTIVE();
42
+ StateId initialState = getInitialState(objectType);
40
43
 
41
44
  // set metadata
42
45
  metadata.objectType = objectType;
43
46
  metadata.state = initialState;
44
- metadata.updatedBy = createdBy;
45
47
  metadata.updatedIn = blocknumber;
46
48
  metadata.createdIn = blocknumber;
47
49
 
@@ -49,7 +51,7 @@ contract KeyValueStore is
49
51
  _value[key32].data = data;
50
52
 
51
53
  // solhint-disable-next-line avoid-tx-origin
52
- emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, createdBy, tx.origin);
54
+ emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
53
55
  }
54
56
 
55
57
 
@@ -100,7 +102,6 @@ contract KeyValueStore is
100
102
  }
101
103
 
102
104
  // update metadata
103
- metadata.updatedBy = msg.sender;
104
105
  metadata.updatedIn = blockBlocknumber();
105
106
  }
106
107
 
@@ -1,15 +1,11 @@
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
-
6
- import {NftId} from "../type/NftId.sol";
7
- import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
8
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID} from "../type/StateId.sol";
4
+ import {ObjectType} from "../type/ObjectType.sol";
5
+ import {StateId, zeroStateId} from "../type/StateId.sol";
9
6
  import {ILifecycle} from "./ILifecycle.sol";
10
7
 
11
- contract Lifecycle is
12
- Initializable,
8
+ abstract contract Lifecycle is
13
9
  ILifecycle
14
10
  {
15
11
  mapping(ObjectType objectType => StateId initialState)
@@ -18,15 +14,17 @@ contract Lifecycle is
18
14
  mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
19
15
  private _isValidTransition;
20
16
 
21
- function initializeLifecycle()
22
- public
23
- onlyInitializing
24
- {
25
- _setupBundleLifecycle();
26
- _setupComponentLifecycle();
27
- _setupPolicyLifecycle();
28
- _setupClaimAndPayoutLifecycle();
29
- _setupRiskLifecycle();
17
+ /// @dev child class must implement and CALL setup func at deployment/initializaton time
18
+ function _setupLifecycle() internal virtual;
19
+
20
+ function setInitialState(ObjectType ttype, StateId state) internal virtual {
21
+ assert(_initialState[ttype] == zeroStateId());
22
+ _initialState[ttype] = state;
23
+ }
24
+
25
+ function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
26
+ assert(_isValidTransition[ttype][oldState][newState] == false);
27
+ _isValidTransition[ttype][oldState][newState] = true;
30
28
  }
31
29
 
32
30
  function hasLifecycle(
@@ -58,9 +56,9 @@ contract Lifecycle is
58
56
  public
59
57
  view
60
58
  {
61
- // return if no life cycle support
59
+ // revert if no life cycle support
62
60
  if (_initialState[objectType].eqz()) {
63
- return;
61
+ revert ErrorNoLifecycle(objectType);
64
62
  }
65
63
 
66
64
  // enforce valid state transition
@@ -76,46 +74,4 @@ contract Lifecycle is
76
74
  ) public view returns (bool) {
77
75
  return _isValidTransition[objectType][fromId][toId];
78
76
  }
79
-
80
- function _setupComponentLifecycle() internal {
81
- _initialState[COMPONENT()] = ACTIVE();
82
- _isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
83
- _isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
84
- _isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
85
- }
86
-
87
- function _setupBundleLifecycle() internal {
88
- _initialState[BUNDLE()] = ACTIVE();
89
- _isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
90
- _isValidTransition[BUNDLE()][ACTIVE()][CLOSED()] = true;
91
- _isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
92
- _isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
93
- }
94
-
95
- function _setupPolicyLifecycle() internal {
96
- _initialState[POLICY()] = APPLIED();
97
- _isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
98
- _isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
99
- _isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
100
- _isValidTransition[POLICY()][APPLIED()][ACTIVE()] = true;
101
- _isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
102
- _isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
103
- }
104
-
105
- function _setupClaimAndPayoutLifecycle() internal {
106
- _initialState[CLAIM()] = SUBMITTED();
107
- _isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
108
- _isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
109
- _isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
110
-
111
- _initialState[PAYOUT()] = EXPECTED();
112
- _isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
113
- }
114
-
115
- function _setupRiskLifecycle() internal {
116
- _initialState[RISK()] = ACTIVE();
117
- _isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
118
- _isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
119
- _isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
120
- }
121
77
  }
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ contract MainnetContract
5
+ {
6
+ error ErrorDeploymentContractForMainnetOnly();
7
+
8
+ uint constant public MAINNET_CHAIN_ID = 1;
9
+
10
+ constructor() {
11
+ if(block.chainid != MAINNET_CHAIN_ID) {
12
+ revert ErrorDeploymentContractForMainnetOnly();
13
+ }
14
+ }
15
+ }
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {LibNftIdSet} from "../type/NftIdSet.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
6
 
7
- contract NftIdSetManager {
7
+ contract NftIdSet {
8
8
 
9
9
  error ErrorNftIdSetManagerNotOwner(address owner, address sender);
10
10
  error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
@@ -4,17 +4,14 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
6
 
7
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
10
-
11
- import {Versionable} from "./Versionable.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
12
8
  import {IService} from "./IService.sol";
13
- import {IVersionable} from "./IVersionable.sol";
14
- import {Versionable} from "./Versionable.sol";
9
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
10
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
15
11
  import {Registerable} from "./Registerable.sol";
16
-
17
- import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
13
+ import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
14
+ import {Versionable} from "../upgradeability/Versionable.sol";
18
15
 
19
16
 
20
17
  /// @dev service base contract
@@ -27,15 +24,6 @@ abstract contract Service is
27
24
 
28
25
  uint8 private constant GIF_MAJOR_VERSION = 3;
29
26
 
30
- // from Versionable
31
- function getVersion()
32
- public
33
- pure
34
- virtual override (IVersionable, Versionable)
35
- returns(Version)
36
- {
37
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
38
- }
39
27
 
40
28
  function initializeService(
41
29
  address registry,
@@ -58,9 +46,7 @@ abstract contract Service is
58
46
  if(authority != address(0)) {
59
47
  __AccessManaged_init(authority);
60
48
  } else {
61
- address registryServiceAddress = getRegistry().getServiceAddress(
62
- REGISTRY(),
63
- VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
49
+ address registryServiceAddress = _getServiceAddress(REGISTRY());
64
50
 
65
51
  // copy authority from already registered registry services
66
52
  __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
@@ -70,8 +56,27 @@ abstract contract Service is
70
56
  registerInterface(type(IService).interfaceId);
71
57
  }
72
58
 
59
+ function getDomain() external virtual pure returns(ObjectType serviceDomain) {
60
+ return _getDomain();
61
+ }
62
+
63
+ function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
64
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
65
+ }
66
+
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);
75
+ }
76
+
77
+ function _getDomain() internal virtual pure returns (ObjectType);
73
78
 
74
79
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
75
- return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
80
+ return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
76
81
  }
77
82
  }
@@ -3,9 +3,8 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {IComponent} from "../shared/IComponent.sol";
6
- import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
7
7
  import {NftId} from "../type/NftId.sol";
8
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
9
8
  import {ObjectType} from "../type/ObjectType.sol";
10
9
  import {Seconds} from "../type/Seconds.sol";
11
10
  import {StakingReader} from "./StakingReader.sol";
@@ -17,6 +16,8 @@ interface IStaking is
17
16
  IComponent,
18
17
  IVersionable
19
18
  {
19
+ // staking rate
20
+ event LogStakingStakingRateSet(uint256 chainId, address token, UFixed oldStakingRate, UFixed newStakingRate);
20
21
 
21
22
  // target parameters
22
23
  event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
@@ -29,6 +30,9 @@ interface IStaking is
29
30
  error ErrorStakingNotStakingOwner();
30
31
  error ErrorStakingNotNftOwner(NftId nftId);
31
32
 
33
+ // staking rate
34
+ error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
35
+
32
36
  // check dip balance and allowance
33
37
  error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
34
38
  error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
@@ -59,7 +63,10 @@ interface IStaking is
59
63
  UFixed rewardRate;
60
64
  }
61
65
 
62
- // rate management
66
+ // staking rate management
67
+
68
+ /// @dev sets the rate that converts 1 token of total value locked into the
69
+ /// the required staked dip amount to back up the locked token value
63
70
  function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
64
71
 
65
72
 
@@ -73,31 +80,53 @@ interface IStaking is
73
80
  UFixed initialRewardRate
74
81
  ) external;
75
82
 
83
+
76
84
  /// @dev set the stake locking period to the specified duration.
85
+ /// permissioned: only the staking service may call this function
77
86
  function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
78
87
 
88
+ /// @dev update the target specific reward rate.
89
+ /// permissioned: only the staking service may call this function
79
90
  function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
80
- function refillRewardReserves(NftId targetNftId, Amount dipAmount) external;
81
- function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external;
82
91
 
83
- function increaseTvl(NftId targetNftId, address token, Amount amount) external;
84
- function decreaseTvl(NftId targetNftId, address token, Amount amount) external;
92
+ /// @dev (re)fills the staking reward reserves for the specified target
93
+ /// unpermissioned: anybody may fill up staking reward reserves
94
+ function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
95
+
96
+ /// @dev defunds the staking reward reserves for the specified target
97
+ /// permissioned: only the staking service may call this function
98
+ function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
99
+
100
+
101
+ /// @dev increases the total value locked amount for the specified target by the provided token amount.
102
+ /// function is called when a new policy is collateralized.
103
+ /// function restricted to the pool service.
104
+ function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
105
+
106
+
107
+ /// @dev decreases the total value locked amount for the specified target by the provided token amount.
108
+ /// function is called when a new policy is closed or payouts are executed.
109
+ /// function restricted to the pool service.
110
+ function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
111
+
85
112
 
86
113
  function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
87
114
 
88
115
  // staking functions
89
116
 
90
- /// @dev register a new stake info object
117
+ /// @dev creat a new stake info object
91
118
  /// permissioned: only staking service may call this function.
92
- function registerStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
119
+ function createStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
93
120
 
94
- /// @dev increase the staked dip by dipAmount for the specified stake
95
- function stake(NftId stakeNftId, Amount dipAmount) external;
121
+ /// @dev increase the staked dip by dipAmount for the specified stake.
122
+ /// staking rewards are updated and added to the staked dips as well.
123
+ /// the function returns the new total amount of staked dips.
124
+ function stake(NftId stakeNftId, Amount dipAmount) external returns (Amount stakeBalance);
96
125
 
97
126
  /// @dev restakes the dips to a new target.
98
127
  /// the sum of the staked dips and the accumulated rewards will be restaked.
99
128
  /// permissioned: only staking service may call this function.
100
- function restake(NftId stakeNftId) external;
129
+ function restake(NftId stakeNftId, NftId newTargetNftId) external returns (NftId newStakeNftId);
101
130
 
102
131
  /// @dev retuns the specified amount of dips to the holder of the specified stake nft.
103
132
  /// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
@@ -135,18 +164,4 @@ interface IStaking is
135
164
 
136
165
  function getStakingStore() external view returns (StakingStore stakingStore);
137
166
  function getStakingReader() external view returns (StakingReader reader);
138
-
139
- // function getStakeInfo(NftId stakeNftId) external view returns (StakeInfo memory stakeInfo);
140
- // function getTargetInfo(NftId targetNftId) external view returns (TargetInfo memory targetInfo);
141
-
142
- function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount);
143
- function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount);
144
-
145
- function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate);
146
-
147
- function calculateRewardIncrementAmount(
148
- NftId targetNftId,
149
- Timestamp rewardsLastUpdatedAt
150
- ) external view returns (Amount rewardIncrementAmount);
151
-
152
167
  }