@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-ceed5e3-261

Sign up to get free protection for your applications and to get access to all the features.
Files changed (564) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +52 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +250 -2313
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +181 -12
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +361 -2789
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +643 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +266 -145
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -88
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  47. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  48. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  49. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  50. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  52. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +158 -216
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  56. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +256 -264
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  66. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +56 -54
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  68. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  70. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +157 -156
  71. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  72. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +43 -2
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  90. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +140 -71
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  92. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +66 -136
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  96. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  105. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  106. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
  117. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +420 -43
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +762 -103
  130. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  132. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  136. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  158. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  164. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  166. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  168. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  170. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  172. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  176. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  178. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  180. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  183. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  185. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  186. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  188. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  190. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  192. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  194. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  196. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  198. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  208. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  209. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  210. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  213. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  215. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  217. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  218. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +597 -0
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  233. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  235. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  237. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  238. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  239. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  241. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  243. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  245. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  247. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  249. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  251. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  252. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  253. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  255. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  257. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  258. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  259. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  261. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  263. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  265. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  267. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  268. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  269. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  271. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  272. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  274. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  275. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  276. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  277. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  278. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  279. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  280. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  281. package/contracts/{components → distribution}/Distribution.sol +41 -64
  282. package/contracts/distribution/DistributionService.sol +297 -0
  283. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  284. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  285. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  286. package/contracts/instance/BundleManager.sol +5 -5
  287. package/contracts/instance/IInstance.sol +51 -68
  288. package/contracts/instance/IInstanceService.sol +50 -16
  289. package/contracts/instance/Instance.sol +134 -189
  290. package/contracts/instance/InstanceAdmin.sol +331 -0
  291. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  292. package/contracts/instance/InstanceReader.sol +130 -55
  293. package/contracts/instance/InstanceService.sol +237 -282
  294. package/contracts/instance/InstanceServiceManager.sol +11 -21
  295. package/contracts/instance/InstanceStore.sol +269 -0
  296. package/contracts/instance/base/BalanceStore.sol +123 -0
  297. package/contracts/instance/base/Cloneable.sol +28 -0
  298. package/contracts/instance/base/ObjectCounter.sol +21 -0
  299. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
  300. package/contracts/instance/module/IAccess.sol +4 -12
  301. package/contracts/instance/module/IBundle.sol +6 -9
  302. package/contracts/instance/module/IComponents.sol +21 -10
  303. package/contracts/instance/module/IDistribution.sol +7 -6
  304. package/contracts/instance/module/IPolicy.sol +20 -14
  305. package/contracts/instance/module/IRisk.sol +1 -1
  306. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  307. package/contracts/oracle/IOracle.sol +20 -0
  308. package/contracts/oracle/IOracleComponent.sol +32 -0
  309. package/contracts/oracle/IOracleService.sol +65 -0
  310. package/contracts/oracle/Oracle.sol +145 -0
  311. package/contracts/oracle/OracleService.sol +278 -0
  312. package/contracts/oracle/OracleServiceManager.sol +42 -0
  313. package/contracts/pool/BundleService.sol +296 -0
  314. package/contracts/pool/BundleServiceManager.sol +42 -0
  315. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  316. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  317. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  318. package/contracts/{components → pool}/Pool.sol +52 -55
  319. package/contracts/pool/PoolService.sol +452 -0
  320. package/contracts/pool/PoolServiceManager.sol +42 -0
  321. package/contracts/product/ApplicationService.sol +254 -0
  322. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  323. package/contracts/{instance/service → product}/ClaimService.sol +170 -89
  324. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  325. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  326. package/contracts/{instance/service → product}/IClaimService.sol +24 -15
  327. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  328. package/contracts/product/IPricingService.sol +39 -0
  329. package/contracts/product/IProductComponent.sol +42 -0
  330. package/contracts/product/IProductService.sol +33 -0
  331. package/contracts/product/PolicyService.sol +475 -0
  332. package/contracts/product/PolicyServiceManager.sol +42 -0
  333. package/contracts/product/PricingService.sol +300 -0
  334. package/contracts/product/PricingServiceManager.sol +42 -0
  335. package/contracts/{components → product}/Product.sol +83 -77
  336. package/contracts/product/ProductService.sol +124 -0
  337. package/contracts/product/ProductServiceManager.sol +42 -0
  338. package/contracts/registry/ChainNft.sol +8 -1
  339. package/contracts/registry/IRegistry.sol +44 -21
  340. package/contracts/registry/IRegistryService.sol +37 -34
  341. package/contracts/registry/IServiceAuthorization.sol +35 -0
  342. package/contracts/registry/Registry.sol +198 -83
  343. package/contracts/registry/RegistryAdmin.sol +333 -0
  344. package/contracts/registry/RegistryService.sol +71 -87
  345. package/contracts/registry/RegistryServiceManager.sol +21 -30
  346. package/contracts/registry/ReleaseManager.sol +400 -197
  347. package/contracts/registry/ServiceAuthorization.sol +86 -0
  348. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  349. package/contracts/registry/TokenRegistry.sol +261 -62
  350. package/contracts/shared/AccessAdmin.sol +759 -0
  351. package/contracts/shared/AccessManagerCustom.sol +741 -0
  352. package/contracts/shared/AccessManagerExtended.sol +481 -0
  353. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  354. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  355. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  356. package/contracts/shared/Component.sol +281 -0
  357. package/contracts/shared/ComponentService.sol +617 -0
  358. package/contracts/shared/ComponentServiceManager.sol +35 -0
  359. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  360. package/contracts/shared/ERC165.sol +1 -1
  361. package/contracts/shared/IAccessAdmin.sol +168 -0
  362. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  363. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  364. package/contracts/{components → shared}/IComponent.sol +23 -29
  365. package/contracts/shared/IComponentService.sol +102 -0
  366. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  367. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  368. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  369. package/contracts/shared/INftOwnable.sol +2 -2
  370. package/contracts/shared/IPolicyHolder.sol +14 -7
  371. package/contracts/shared/IService.sol +9 -2
  372. package/contracts/shared/IVersionable.sol +1 -1
  373. package/contracts/shared/InitializableCustom.sol +177 -0
  374. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  375. package/contracts/shared/KeyValueStore.sol +127 -0
  376. package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
  377. package/contracts/shared/NftIdSetManager.sol +65 -0
  378. package/contracts/shared/NftOwnable.sol +3 -14
  379. package/contracts/shared/PolicyHolder.sol +32 -17
  380. package/contracts/shared/ProxyManager.sol +34 -4
  381. package/contracts/shared/Registerable.sol +3 -3
  382. package/contracts/shared/Service.sol +32 -21
  383. package/contracts/shared/TokenHandler.sol +27 -2
  384. package/contracts/shared/Versionable.sol +1 -1
  385. package/contracts/staking/IStaking.sol +168 -0
  386. package/contracts/staking/IStakingService.sol +153 -0
  387. package/contracts/staking/StakeManagerLib.sol +231 -0
  388. package/contracts/staking/Staking.sol +513 -0
  389. package/contracts/staking/StakingManager.sol +54 -0
  390. package/contracts/staking/StakingReader.sol +187 -0
  391. package/contracts/staking/StakingService.sol +411 -0
  392. package/contracts/staking/StakingServiceManager.sol +44 -0
  393. package/contracts/staking/StakingStore.sol +613 -0
  394. package/contracts/staking/TargetManagerLib.sol +207 -0
  395. package/contracts/{types → type}/AddressSet.sol +1 -1
  396. package/contracts/{types → type}/Amount.sol +59 -1
  397. package/contracts/{types → type}/Blocknumber.sol +20 -3
  398. package/contracts/{types → type}/Fee.sol +24 -22
  399. package/contracts/{types → type}/NftId.sol +14 -16
  400. package/contracts/{types → type}/NftIdSet.sol +2 -2
  401. package/contracts/type/ObjectType.sol +241 -0
  402. package/contracts/{types → type}/Referral.sol +1 -1
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/{types → type}/RiskId.sol +1 -1
  405. package/contracts/type/RoleId.sol +201 -0
  406. package/contracts/{types → type}/Seconds.sol +27 -0
  407. package/contracts/type/Selector.sol +102 -0
  408. package/contracts/{types → type}/StateId.sol +27 -2
  409. package/contracts/type/String.sol +53 -0
  410. package/contracts/{types → type}/Timestamp.sol +6 -2
  411. package/contracts/{types → type}/Version.sol +1 -1
  412. package/package.json +4 -3
  413. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  414. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  415. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  417. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  418. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  419. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  420. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  421. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  422. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  423. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  424. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  425. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  426. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  428. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  430. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  431. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  433. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  434. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  435. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  436. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  437. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  438. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  440. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  442. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  444. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  446. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  448. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  450. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  451. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  452. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  453. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  454. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  455. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  456. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  458. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  462. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  463. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  465. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  467. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  469. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  471. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  473. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  474. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  475. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  477. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  478. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  479. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  480. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  481. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  482. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  483. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  484. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  485. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  486. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  487. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  488. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  489. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  490. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  491. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  492. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  493. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  494. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  495. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  496. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  497. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  498. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  499. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  500. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  501. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  504. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  505. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  507. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  508. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  510. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  512. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  515. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  518. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  520. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  526. package/contracts/components/Component.sol +0 -253
  527. package/contracts/components/IProductComponent.sol +0 -40
  528. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  529. package/contracts/instance/Cloneable.sol +0 -51
  530. package/contracts/instance/InstanceAccessManager.sol +0 -527
  531. package/contracts/instance/base/ComponentService.sol +0 -130
  532. package/contracts/instance/base/KeyValueStore.sol +0 -149
  533. package/contracts/instance/module/ISetup.sol +0 -33
  534. package/contracts/instance/module/ITreasury.sol +0 -23
  535. package/contracts/instance/service/ApplicationService.sol +0 -356
  536. package/contracts/instance/service/BundleService.sol +0 -443
  537. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  538. package/contracts/instance/service/DistributionService.sol +0 -431
  539. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  540. package/contracts/instance/service/IProductService.sol +0 -40
  541. package/contracts/instance/service/PolicyService.sol +0 -358
  542. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  543. package/contracts/instance/service/PoolService.sol +0 -349
  544. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  545. package/contracts/instance/service/ProductService.sol +0 -210
  546. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  547. package/contracts/registry/RegistryAccessManager.sol +0 -216
  548. package/contracts/shared/ContractDeployerLib.sol +0 -72
  549. package/contracts/test/TestFee.sol +0 -25
  550. package/contracts/test/TestRegisterable.sol +0 -18
  551. package/contracts/test/TestRoleId.sol +0 -14
  552. package/contracts/test/TestService.sol +0 -25
  553. package/contracts/test/TestVersion.sol +0 -44
  554. package/contracts/test/TestVersionable.sol +0 -17
  555. package/contracts/test/Usdc.sol +0 -26
  556. package/contracts/types/ChainId.sol +0 -38
  557. package/contracts/types/NumberId.sol +0 -52
  558. package/contracts/types/ObjectType.sol +0 -157
  559. package/contracts/types/RoleId.sol +0 -97
  560. /package/contracts/{types → type}/ClaimId.sol +0 -0
  561. /package/contracts/{types → type}/DistributorType.sol +0 -0
  562. /package/contracts/{types → type}/Key32.sol +0 -0
  563. /package/contracts/{types → type}/PayoutId.sol +0 -0
  564. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,207 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Component} from "../shared/Component.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {Key32} from "../type/Key32.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {StakingReader} from "./StakingReader.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
+
18
+
19
+ library TargetManagerLib {
20
+
21
+ function updateLockingPeriod(
22
+ IStaking staking,
23
+ NftId targetNftId,
24
+ Seconds lockingPeriod
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Seconds oldLockingPeriod,
30
+ IStaking.TargetInfo memory targetInfo
31
+ )
32
+ {
33
+ StakingReader reader = staking.getStakingReader();
34
+
35
+ // check target exists
36
+ if(!reader.isTarget(targetNftId)) {
37
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
38
+ }
39
+
40
+ checkLockingPeriod(targetNftId, lockingPeriod);
41
+
42
+ targetInfo = reader.getTargetInfo(targetNftId);
43
+ oldLockingPeriod = targetInfo.lockingPeriod;
44
+
45
+ targetInfo.lockingPeriod = lockingPeriod;
46
+ }
47
+
48
+
49
+ function updateRewardRate(
50
+ IStaking staking,
51
+ NftId targetNftId,
52
+ UFixed rewardRate
53
+ )
54
+ external
55
+ view
56
+ returns (
57
+ UFixed oldRewardRate,
58
+ IStaking.TargetInfo memory targetInfo
59
+ )
60
+ {
61
+ StakingReader reader = staking.getStakingReader();
62
+
63
+ // check target exists
64
+ if(!reader.isTarget(targetNftId)) {
65
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
66
+ }
67
+
68
+ checkRewardRate(targetNftId, rewardRate);
69
+
70
+ targetInfo = reader.getTargetInfo(targetNftId);
71
+ oldRewardRate = targetInfo.rewardRate;
72
+
73
+ targetInfo.rewardRate = rewardRate;
74
+ }
75
+
76
+
77
+ function checkTargetParameters(
78
+ IRegistry registry,
79
+ StakingReader stakingReader,
80
+ NftId targetNftId,
81
+ ObjectType expectedObjectType,
82
+ Seconds initialLockingPeriod,
83
+ UFixed initialRewardRate
84
+ )
85
+ external
86
+ view
87
+ {
88
+ // target nft id must not be zero
89
+ if (targetNftId.eqz()) {
90
+ revert IStaking.ErrorStakingTargetNftIdZero();
91
+ }
92
+
93
+ // only accept "new" targets to be registered
94
+ if (stakingReader.isTarget(targetNftId)) {
95
+ revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
96
+ }
97
+
98
+ // target object type must be allowed
99
+ if (!isTargetTypeSupported(expectedObjectType)) {
100
+ revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
101
+ }
102
+
103
+ checkLockingPeriod(targetNftId, initialLockingPeriod);
104
+ checkRewardRate(targetNftId, initialRewardRate);
105
+
106
+ // target nft id must be known and registered with the expected object type
107
+ if (!registry.isRegistered(targetNftId)) {
108
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
109
+ } else {
110
+ // check that expected object type matches with registered object type
111
+ ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
112
+ if (actualObjectType != expectedObjectType) {
113
+ revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
114
+ }
115
+ }
116
+ }
117
+
118
+
119
+ function isTargetTypeSupported(ObjectType objectType)
120
+ public
121
+ pure
122
+ returns (bool isSupported)
123
+ {
124
+ if(objectType == PROTOCOL()) { return true; }
125
+ if(objectType == INSTANCE()) { return true; }
126
+
127
+ return false;
128
+ }
129
+
130
+
131
+ function checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
132
+ public
133
+ pure
134
+ {
135
+ // check locking period is > 0
136
+ if (lockingPeriod.eqz()) {
137
+ revert IStaking.ErrorStakingLockingPeriodZero(targetNftId);
138
+ }
139
+
140
+ // check locking period <= max locking period
141
+ if (lockingPeriod > getMaxLockingPeriod()) {
142
+ revert IStaking.ErrorStakingLockingPeriodTooLong(targetNftId, getMaxLockingPeriod(), lockingPeriod);
143
+ }
144
+ }
145
+
146
+
147
+ function checkRewardRate(NftId targetNftId, UFixed rewardRate)
148
+ public
149
+ pure
150
+ {
151
+ // check reward rate <= max reward rate
152
+ if (rewardRate > getMaxRewardRate()) {
153
+ revert IStaking.ErrorStakingRewardRateTooHigh(targetNftId, getMaxRewardRate(), rewardRate);
154
+ }
155
+ }
156
+
157
+
158
+ function calculateRequiredDipAmount(
159
+ Amount tokenAmount,
160
+ UFixed stakingRate
161
+ )
162
+ public
163
+ view
164
+ returns (Amount dipAmount)
165
+ {
166
+ dipAmount = tokenAmount.multiplyWith(stakingRate);
167
+ }
168
+
169
+
170
+ function calculateStakingRate(
171
+ IERC20Metadata dipToken,
172
+ IERC20Metadata token,
173
+ UFixed requiredDipPerToken
174
+ )
175
+ public
176
+ view
177
+ returns (UFixed stakingRate)
178
+ {
179
+ UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
180
+ stakingRate = requiredDipPerToken * decimalsFactor;
181
+ }
182
+
183
+
184
+ function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
185
+ return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
186
+ }
187
+
188
+
189
+ function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
190
+ return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
+ }
192
+
193
+
194
+ function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
195
+ return UFixedLib.toUFixed(33, -2);
196
+ }
197
+
198
+
199
+ function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
200
+ return UFixedLib.toUFixed(5, -2);
201
+ }
202
+
203
+
204
+ function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
205
+ return targetNftId.toKey32(TARGET());
206
+ }
207
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
5
5
  library LibAddressSet {
@@ -6,13 +6,44 @@ import {UFixed, UFixedLib} from "./UFixed.sol";
6
6
  type Amount is uint96;
7
7
 
8
8
  using {
9
+ addAmount as +,
10
+ subAmount as -,
11
+ eqAmount as ==,
12
+ nqAmount as !=,
13
+ ltAmount as <,
14
+ gtAmount as >,
15
+ AmountLib.eq,
9
16
  AmountLib.eqz,
10
17
  AmountLib.gtz,
11
18
  AmountLib.toInt,
12
19
  AmountLib.add,
13
- AmountLib.toUFixed
20
+ AmountLib.toUFixed,
21
+ AmountLib.multiplyWith
14
22
  } for Amount global;
15
23
 
24
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
25
+ return AmountLib.add(a, b);
26
+ }
27
+
28
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
29
+ return AmountLib.sub(a, b);
30
+ }
31
+
32
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
33
+ return AmountLib.eq(a, b);
34
+ }
35
+
36
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
37
+ return !AmountLib.eq(a, b);
38
+ }
39
+
40
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
41
+ return AmountLib.lt(a, b);
42
+ }
43
+
44
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
45
+ return AmountLib.gt(a, b);
46
+ }
16
47
 
17
48
  library AmountLib {
18
49
 
@@ -46,6 +77,25 @@ library AmountLib {
46
77
  return Amount.unwrap(amount1) == Amount.unwrap(amount2);
47
78
  }
48
79
 
80
+ /// @dev return true if amount a1 is smaller than a2
81
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
82
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
83
+ }
84
+
85
+ /// @dev return true if amount a1 is larger than a2
86
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
87
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
88
+ }
89
+
90
+ /// @dev return minimum of a1 and a2.
91
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
92
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
93
+ return a1;
94
+ }
95
+
96
+ return a2;
97
+ }
98
+
49
99
  /// @dev return true if amount is larger than 0
50
100
  function gtz(Amount amount) public pure returns (bool) {
51
101
  return Amount.unwrap(amount) > 0;
@@ -55,6 +105,10 @@ library AmountLib {
55
105
  return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
56
106
  }
57
107
 
108
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
109
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
110
+ }
111
+
58
112
  function toInt(Amount amount) public pure returns (uint256) {
59
113
  return uint256(uint96(Amount.unwrap(amount)));
60
114
  }
@@ -63,6 +117,10 @@ library AmountLib {
63
117
  return UFixedLib.toUFixed(Amount.unwrap(amount));
64
118
  }
65
119
 
120
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
121
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
122
+ }
123
+
66
124
  function _max() internal pure returns (uint96) {
67
125
  // IMPORTANT: type nees to match with actual definition for Amount
68
126
  return type(uint96).max;
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  type Blocknumber is uint32;
5
5
 
@@ -10,7 +10,9 @@ using {
10
10
  lteBlocknumber as <=,
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
- BlocknumberLib.toInt
13
+ BlocknumberLib.toInt,
14
+ BlocknumberLib.eqz,
15
+ BlocknumberLib.gtz
14
16
  } for Blocknumber global;
15
17
 
16
18
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -49,7 +51,7 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
49
51
  }
50
52
 
51
53
  function blockBlocknumber() view returns (Blocknumber) {
52
- return toBlocknumber(block.number);
54
+ return BlocknumberLib.currentBlocknumber();
53
55
  }
54
56
 
55
57
  // TODO move to BlocknumberLib and rename to zero()
@@ -64,6 +66,21 @@ function blockNumber() view returns (Blocknumber) {
64
66
  }
65
67
 
66
68
  library BlocknumberLib {
69
+ /// @dev returns the current Blocknumber
70
+ function currentBlocknumber() public view returns (Blocknumber) {
71
+ return Blocknumber.wrap(uint32(block.number));
72
+ }
73
+
74
+ /// @dev return true iff blocknumber is 0
75
+ function eqz(Blocknumber blocknumber) public pure returns (bool) {
76
+ return Blocknumber.unwrap(blocknumber) == 0;
77
+ }
78
+
79
+ /// @dev return true iff blocknumber is 0
80
+ function gtz(Blocknumber blocknumber) public pure returns (bool) {
81
+ return Blocknumber.unwrap(blocknumber) > 0;
82
+ }
83
+
67
84
  /// @dev return true if Blocknumber a is greater than Blocknumber b
68
85
  function gt(
69
86
  Blocknumber a,
@@ -1,56 +1,58 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount, AmountLib} from "./Amount.sol";
4
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
6
 
6
7
  struct Fee {
7
8
  UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
8
10
  uint256 fixedFee;
9
11
  }
10
12
 
11
13
  library FeeLib {
12
14
 
15
+ /// @dev Return a zero fee struct (0, 0)
16
+ function zero() public pure returns (Fee memory fee) {
17
+ return Fee(UFixed.wrap(0), 0);
18
+ }
19
+
20
+ /// @dev Converts the uint256 to a fee struct.
21
+ function toFee(
22
+ UFixed fractionalFee,
23
+ uint256 fixedFee
24
+ ) public pure returns (Fee memory fee) {
25
+ return Fee(fractionalFee, fixedFee);
26
+ }
27
+
28
+ /// @dev Calculates fee and net amounts for the provided parameters
13
29
  function calculateFee(
14
30
  Fee memory fee,
15
- uint256 amount
31
+ Amount amount
16
32
  )
17
33
  public
18
34
  pure
19
35
  returns (
20
- uint256 feeAmount,
21
- uint256 netAmount
36
+ Amount feeAmount,
37
+ Amount netAmount
22
38
  )
23
39
  {
24
40
  netAmount = amount;
25
41
  if(gtz(fee)) {
26
42
  UFixed fractionalAmount =
27
- UFixedLib.toUFixed(amount) * fee.fractionalFee;
28
- feeAmount = fractionalAmount.toInt() + fee.fixedFee;
29
- netAmount -= feeAmount;
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
45
+ netAmount = netAmount - feeAmount;
30
46
  }
31
47
  }
32
48
 
33
- /// @dev Converts the uint256 to a fee struct.
34
- function toFee(
35
- UFixed fractionalFee,
36
- uint256 fixedFee
37
- ) public pure returns (Fee memory fee) {
38
- return Fee(fractionalFee, fixedFee);
39
- }
40
-
41
49
  /// @dev Return the percent fee struct (x%, 0)
42
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
43
51
  return Fee(UFixedLib.toUFixed(percent, -2), 0);
44
52
  }
45
53
 
46
- // TODO rename to zero
47
- /// @dev Return a zero fee struct (0, 0)
48
- function zeroFee() public pure returns (Fee memory fee) {
49
- return Fee(UFixed.wrap(0), 0);
50
- }
51
-
52
54
  // pure free functions for operators
53
- function feeIsSame(Fee memory a, Fee memory b) public pure returns (bool isSame) {
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
54
56
  return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
55
57
  }
56
58
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ObjectType} from "./ObjectType.sol";
@@ -18,25 +18,13 @@ using {
18
18
  NftIdLib.toKey32
19
19
  } for NftId global;
20
20
 
21
- // general pure free functions
22
- /// @dev Converts the uint256 to a NftId.
23
- function toNftId(uint256 id) pure returns (NftId) {
24
- return NftId.wrap(uint96(id));
25
- }
26
-
27
- // TODO move to NftIdLib and rename to zero()
28
- /// @dev Return the NftId zero (0)
29
- function zeroNftId() pure returns (NftId) {
30
- return NftId.wrap(0);
31
- }
32
-
33
21
  // pure free functions for operators
34
22
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
35
- return NftId.unwrap(a) == NftId.unwrap(b);
23
+ return NftIdLib.eq(a, b);
36
24
  }
37
25
 
38
26
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
39
- return NftId.unwrap(a) != NftId.unwrap(b);
27
+ return NftIdLib.ne(a, b);
40
28
  }
41
29
 
42
30
  // library functions that operate on user defined type
@@ -48,6 +36,11 @@ library NftIdLib {
48
36
  return NftId.wrap(0);
49
37
  }
50
38
 
39
+ /// @dev Converts the uint256 to a NftId.
40
+ function toNftId(uint256 id) public pure returns (NftId) {
41
+ return NftId.wrap(uint96(id));
42
+ }
43
+
51
44
  /// @dev Converts the NftId to a uint256.
52
45
  function toInt(NftId nftId) public pure returns (uint96) {
53
46
  return uint96(NftId.unwrap(nftId));
@@ -65,7 +58,12 @@ library NftIdLib {
65
58
 
66
59
  /// @dev Returns true if the values are equal (==).
67
60
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
68
- return eqNftId(a, b);
61
+ return NftId.unwrap(a) == NftId.unwrap(b);
62
+ }
63
+
64
+ /// @dev Returns true if the values are not equal (!=).
65
+ function ne(NftId a, NftId b) public pure returns (bool isSame) {
66
+ return NftId.unwrap(a) != NftId.unwrap(b);
69
67
  }
70
68
 
71
69
  /// @dev Returns the key32 value for the specified nft id and object type.
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
4
+ import {NftId} from "../type/NftId.sol";
5
5
 
6
6
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
7
  library LibNftIdSet {