@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1e0c66-773
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.
- package/README.md +14 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +69 -26
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +237 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -38
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +102 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +9 -9
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +73 -73
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +54 -59
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +15 -15
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +6 -6
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +66 -76
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +46 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +30 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +43 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +221 -55
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +55 -23
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +102 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +64 -51
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +26 -26
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +95 -23
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +88 -88
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -62
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +60 -32
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +12 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +36 -36
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +19 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +20 -15
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +22 -10
- package/contracts/distribution/DistributionService.sol +61 -26
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +8 -4
- package/contracts/distribution/IDistributionService.sol +12 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +5 -5
- package/contracts/instance/IInstanceService.sol +5 -5
- package/contracts/instance/Instance.sol +4 -4
- package/contracts/instance/InstanceAdmin.sol +2 -2
- package/contracts/instance/InstanceAuthorizationV3.sol +13 -11
- package/contracts/instance/InstanceService.sol +10 -10
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +2 -1
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +15 -6
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPoolAuthorization.sol +6 -0
- package/contracts/pool/BundleService.sol +72 -27
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +14 -0
- package/contracts/pool/IPoolComponent.sol +6 -0
- package/contracts/pool/Pool.sol +18 -1
- package/contracts/pool/PoolService.sol +11 -29
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +3 -33
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +7 -32
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IPolicyService.sol +2 -0
- package/contracts/product/IProductComponent.sol +1 -0
- package/contracts/product/PolicyService.sol +28 -4
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +10 -1
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -13
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +80 -82
- package/contracts/registry/RegistryAdmin.sol +23 -23
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +48 -50
- package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +13 -14
- package/contracts/shared/ComponentService.sol +82 -12
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -0
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +21 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +20 -17
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/ObjectType.sol +3 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/UFixed.sol +29 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
| @@ -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  | 
| 7 | 
            +
            contract NftIdSet {
         | 
| 8 8 |  | 
| 9 9 | 
             
                error ErrorNftIdSetManagerNotOwner(address owner, address sender);
         | 
| 10 10 | 
             
                error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
         | 
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 4 | 
            +
            import {InitializableERC165} from "./InitializableERC165.sol";
         | 
| 5 5 | 
             
            import {INftOwnable} from "./INftOwnable.sol";
         | 
| 6 6 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 7 7 | 
             
            import {RegistryLinked} from "./RegistryLinked.sol";
         | 
| 8 8 |  | 
| 9 9 | 
             
            contract NftOwnable is
         | 
| 10 | 
            -
                 | 
| 10 | 
            +
                InitializableERC165,
         | 
| 11 11 | 
             
                RegistryLinked,
         | 
| 12 12 | 
             
                INftOwnable
         | 
| 13 13 | 
             
            {
         | 
| @@ -1,22 +1,19 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
         | 
| 5 4 | 
             
            import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
         | 
| 6 | 
            -
            import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; 
         | 
| 7 5 |  | 
| 8 6 | 
             
            import {Amount} from "../type/Amount.sol";
         | 
| 9 7 | 
             
            import {ClaimId} from "../type/ClaimId.sol";
         | 
| 10 | 
            -
            import { | 
| 8 | 
            +
            import {InitializableERC165} from "./InitializableERC165.sol";
         | 
| 11 9 | 
             
            import {IPolicyHolder} from "./IPolicyHolder.sol";
         | 
| 12 10 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 13 11 | 
             
            import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
         | 
| 14 12 | 
             
            import {RegistryLinked} from "./RegistryLinked.sol";
         | 
| 15 | 
            -
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 16 13 |  | 
| 17 14 | 
             
            /// @dev template implementation for IPolicyHolder
         | 
| 18 15 | 
             
            contract PolicyHolder is
         | 
| 19 | 
            -
                 | 
| 16 | 
            +
                InitializableERC165,
         | 
| 20 17 | 
             
                RegistryLinked, // TODO need upgradeable version
         | 
| 21 18 | 
             
                IPolicyHolder
         | 
| 22 19 | 
             
            {
         | 
| @@ -6,13 +6,12 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana | |
| 6 6 |  | 
| 7 7 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 8 8 | 
             
            import {IService} from "./IService.sol";
         | 
| 9 | 
            -
            import {IVersionable} from " | 
| 10 | 
            -
            import {NftId} from "../type/NftId.sol";
         | 
| 9 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 11 10 | 
             
            import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
         | 
| 12 11 | 
             
            import {Registerable} from "./Registerable.sol";
         | 
| 13 12 | 
             
            import {RoleId, RoleIdLib} from "../type/RoleId.sol";
         | 
| 14 | 
            -
            import {Version,  | 
| 15 | 
            -
            import {Versionable} from " | 
| 13 | 
            +
            import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
         | 
| 14 | 
            +
            import {Versionable} from "../upgradeability/Versionable.sol";
         | 
| 16 15 |  | 
| 17 16 |  | 
| 18 17 | 
             
            /// @dev service base contract
         | 
| @@ -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 "../ | 
| 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";
         | 
| @@ -44,6 +44,13 @@ interface IStakingService is IService | |
| 44 44 | 
             
                error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
         | 
| 45 45 | 
             
                error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
         | 
| 46 46 |  | 
| 47 | 
            +
                /// @dev Set the protocol reward rate stake locking period to the specified duration.
         | 
| 48 | 
            +
                /// Permissioned: only staking owner
         | 
| 49 | 
            +
                // TODO implement
         | 
| 50 | 
            +
                // function setProtocolRewardRate(UFixed rewardRate) external;
         | 
| 51 | 
            +
                // function setProtocolLockingPeriod(Seconds lockingPeriod) external;
         | 
| 52 | 
            +
                // TODO also make sure that protocol rewards can be refilled and withdrawn
         | 
| 53 | 
            +
             | 
| 47 54 | 
             
                /// @dev creates/registers an on-chain instance staking target.
         | 
| 48 55 | 
             
                /// function granted to instance service
         | 
| 49 56 | 
             
                function createInstanceTarget(
         | 
| @@ -53,11 +60,11 @@ interface IStakingService is IService | |
| 53 60 | 
             
                ) external;
         | 
| 54 61 |  | 
| 55 62 | 
             
                /// @dev Set the instance stake locking period to the specified duration.
         | 
| 56 | 
            -
                ///  | 
| 63 | 
            +
                /// Permissioned: Only owner of the specified target.
         | 
| 57 64 | 
             
                function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
         | 
| 58 65 |  | 
| 59 | 
            -
                /// @dev Set the instance reward rate to the specified value
         | 
| 60 | 
            -
                ///  | 
| 66 | 
            +
                /// @dev Set the instance reward rate to the specified value.
         | 
| 67 | 
            +
                /// Permissioned: Only owner of the specified target.
         | 
| 61 68 | 
             
                function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
         | 
| 62 69 |  | 
| 63 70 | 
             
                /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
         | 
| @@ -68,8 +75,8 @@ interface IStakingService is IService | |
| 68 75 | 
             
                /// unpermissioned: anybody may fill up staking reward reserves
         | 
| 69 76 | 
             
                function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
         | 
| 70 77 |  | 
| 71 | 
            -
                /// @dev  | 
| 72 | 
            -
                ///  | 
| 78 | 
            +
                /// @dev Defunds the staking reward reserves for the specified target
         | 
| 79 | 
            +
                /// Permissioned: only the target owner may call this function
         | 
| 73 80 | 
             
                function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
         | 
| 74 81 |  | 
| 75 82 | 
             
                /// @dev create a new stake with amount DIP to the specified target
         | 
| @@ -1,29 +1,27 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 5 | 
            -
            import {ChainNft} from "../registry/ChainNft.sol";
         | 
| 6 | 
            -
            import {Component} from "../shared/Component.sol";
         | 
| 7 4 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 8 5 | 
             
            import {IRegistryService} from "../registry/IRegistryService.sol";
         | 
| 9 6 | 
             
            import {IStaking} from "./IStaking.sol";
         | 
| 10 | 
            -
            import {IVersionable} from "../ | 
| 11 | 
            -
             | 
| 12 | 
            -
            import { | 
| 13 | 
            -
            import { | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            import { | 
| 16 | 
            -
            import { | 
| 7 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 10 | 
            +
            import {Component} from "../shared/Component.sol";
         | 
| 11 | 
            +
            import {IComponent} from "../shared/IComponent.sol";
         | 
| 12 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 13 | 
            +
            import {ObjectType, STAKING} from "../type/ObjectType.sol";
         | 
| 14 | 
            +
            import {Seconds} from "../type/Seconds.sol";
         | 
| 17 15 | 
             
            import {StakeManagerLib} from "./StakeManagerLib.sol";
         | 
| 18 16 | 
             
            import {StakingReader} from "./StakingReader.sol";
         | 
| 19 17 | 
             
            import {StakingStore} from "./StakingStore.sol";
         | 
| 20 18 | 
             
            import {TargetManagerLib} from "./TargetManagerLib.sol";
         | 
| 21 | 
            -
            import {Timestamp | 
| 19 | 
            +
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 22 20 | 
             
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 23 21 | 
             
            import {TokenRegistry} from "../registry/TokenRegistry.sol";
         | 
| 24 | 
            -
            import {UFixed | 
| 22 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 25 23 | 
             
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 26 | 
            -
            import {Versionable} from "../ | 
| 24 | 
            +
            import {Versionable} from "../upgradeability/Versionable.sol";
         | 
| 27 25 |  | 
| 28 26 | 
             
            contract Staking is 
         | 
| 29 27 | 
             
                Component,
         | 
| @@ -39,6 +37,7 @@ contract Staking is | |
| 39 37 | 
             
                struct StakingStorage {
         | 
| 40 38 | 
             
                    IRegistryService _registryService;
         | 
| 41 39 | 
             
                    TokenRegistry _tokenRegistry;
         | 
| 40 | 
            +
                    TokenHandler _tokenHandler;
         | 
| 42 41 | 
             
                    StakingStore _store;
         | 
| 43 42 | 
             
                    StakingReader _reader;
         | 
| 44 43 | 
             
                    NftId _protocolNftId;
         | 
| @@ -54,7 +53,7 @@ contract Staking is | |
| 54 53 |  | 
| 55 54 |  | 
| 56 55 | 
             
                modifier onlyTarget(NftId targetNftId) {
         | 
| 57 | 
            -
                    if (!_getStakingStorage()._store. | 
| 56 | 
            +
                    if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
         | 
| 58 57 | 
             
                        revert ErrorStakingNotTarget(targetNftId);
         | 
| 59 58 | 
             
                    }
         | 
| 60 59 | 
             
                    _;
         | 
| @@ -387,6 +386,7 @@ contract Staking is | |
| 387 386 | 
             
                        address(tokenHandler), 
         | 
| 388 387 | 
             
                        dipAmount);
         | 
| 389 388 |  | 
| 389 | 
            +
                    // TODO: centralize token handling (issue #471)
         | 
| 390 390 | 
             
                    tokenHandler.transfer(from, stakingWallet, dipAmount);
         | 
| 391 391 | 
             
                }
         | 
| 392 392 |  | 
| @@ -403,7 +403,8 @@ contract Staking is | |
| 403 403 | 
             
                        stakingWallet, 
         | 
| 404 404 | 
             
                        address(tokenHandler), 
         | 
| 405 405 | 
             
                        dipAmount);
         | 
| 406 | 
            -
             | 
| 406 | 
            +
                    
         | 
| 407 | 
            +
                    // TODO: centralize token handling (issue #471)
         | 
| 407 408 | 
             
                    tokenHandler.transfer(stakingWallet, to, dipAmount);
         | 
| 408 409 | 
             
                }
         | 
| 409 410 |  | 
| @@ -422,6 +423,9 @@ contract Staking is | |
| 422 423 | 
             
                    return address(_getStakingStorage()._tokenRegistry);
         | 
| 423 424 | 
             
                }
         | 
| 424 425 |  | 
| 426 | 
            +
                function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
         | 
| 427 | 
            +
                    return _getStakingStorage()._tokenHandler;
         | 
| 428 | 
            +
                }
         | 
| 425 429 |  | 
| 426 430 | 
             
                // from Versionable
         | 
| 427 431 | 
             
                function getVersion()
         | 
| @@ -492,14 +496,13 @@ contract Staking is | |
| 492 496 | 
             
                        "", // registry data
         | 
| 493 497 | 
             
                        ""); // component data
         | 
| 494 498 |  | 
| 495 | 
            -
                    _createAndSetTokenHandler();
         | 
| 496 | 
            -
             | 
| 497 499 | 
             
                    // wiring to external contracts
         | 
| 498 500 | 
             
                    StakingStorage storage $ = _getStakingStorage();
         | 
| 499 501 | 
             
                    $._protocolNftId = getRegistry().getProtocolNftId();
         | 
| 500 502 | 
             
                    $._store = StakingStore(stakingStoreAddress);
         | 
| 501 503 | 
             
                    $._reader = StakingStore(stakingStoreAddress).getStakingReader();
         | 
| 502 504 | 
             
                    $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
         | 
| 505 | 
            +
                    $._tokenHandler = new TokenHandler(address(getToken()));
         | 
| 503 506 |  | 
| 504 507 | 
             
                    registerInterface(type(IStaking).interfaceId);
         | 
| 505 508 | 
             
                }
         | 
| @@ -1,14 +1,10 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {IVersionable} from "../ | 
| 5 | 
            -
            import {ProxyManager} from "../ | 
| 6 | 
            -
            import {ReleaseManager} from "../registry/ReleaseManager.sol";
         | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 | 
            +
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 7 6 | 
             
            import {Staking} from "./Staking.sol";
         | 
| 8 | 
            -
            import {StakingReader} from "./StakingReader.sol";
         | 
| 9 | 
            -
            import {StakingStore} from "./StakingStore.sol";
         | 
| 10 7 |  | 
| 11 | 
            -
            import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
         | 
| 12 8 |  | 
| 13 9 | 
             
            contract StakingManager is
         | 
| 14 10 | 
             
                ProxyManager
         | 
| @@ -1,22 +1,18 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {Amount} from "../type/Amount.sol";
         | 
| 5 | 
            -
            import {Blocknumber}  from "../type/Blocknumber.sol";
         | 
| 6 | 
            -
            import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
         | 
| 7 | 
            -
            import {IComponent} from "../shared/IComponent.sol";
         | 
| 8 | 
            -
            import {InitializableCustom} from "../shared/InitializableCustom.sol";
         | 
| 9 4 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 10 5 | 
             
            import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
         | 
| 11 6 | 
             
            import {IStaking} from "../staking/IStaking.sol";
         | 
| 12 | 
            -
             | 
| 7 | 
            +
             | 
| 8 | 
            +
            import {Amount} from "../type/Amount.sol";
         | 
| 9 | 
            +
            import {Blocknumber}  from "../type/Blocknumber.sol";
         | 
| 10 | 
            +
            import {InitializableCustom} from "../shared/InitializableCustom.sol";
         | 
| 13 11 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
         | 
| 16 | 
            -
            import {Seconds} from "../type/Seconds.sol";
         | 
| 12 | 
            +
            import {STAKE, TARGET} from "../type/ObjectType.sol";
         | 
| 17 13 | 
             
            import {StakingStore} from "./StakingStore.sol";
         | 
| 18 14 | 
             
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 19 | 
            -
            import {UFixed | 
| 15 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 20 16 |  | 
| 21 17 | 
             
            contract StakingReader is
         | 
| 22 18 | 
             
                IRegistryLinked,
         | 
| @@ -60,32 +56,32 @@ contract StakingReader is | |
| 60 56 |  | 
| 61 57 |  | 
| 62 58 | 
             
                function isTarget(NftId targetNftId) external view returns (bool) {
         | 
| 63 | 
            -
                    return _store. | 
| 59 | 
            +
                    return _store.getTargetNftIdSet().exists(targetNftId);
         | 
| 64 60 | 
             
                }
         | 
| 65 61 |  | 
| 66 62 |  | 
| 67 63 | 
             
                function targets() external view returns (uint256) {
         | 
| 68 | 
            -
                    return _store. | 
| 64 | 
            +
                    return _store.getTargetNftIdSet().nftIds();
         | 
| 69 65 | 
             
                }
         | 
| 70 66 |  | 
| 71 67 |  | 
| 72 68 | 
             
                function getTargetNftId(uint256 idx) external view returns (NftId) {
         | 
| 73 | 
            -
                    return _store. | 
| 69 | 
            +
                    return _store.getTargetNftIdSet().getNftId(idx);
         | 
| 74 70 | 
             
                }
         | 
| 75 71 |  | 
| 76 72 |  | 
| 77 73 | 
             
                function isActive(NftId targetNftId) external view returns (bool) {
         | 
| 78 | 
            -
                    return _store. | 
| 74 | 
            +
                    return _store.getTargetNftIdSet().isActive(targetNftId);
         | 
| 79 75 | 
             
                }
         | 
| 80 76 |  | 
| 81 77 |  | 
| 82 78 | 
             
                function activeTargets() external view returns (uint256) {
         | 
| 83 | 
            -
                    return _store. | 
| 79 | 
            +
                    return _store.getTargetNftIdSet().activeNftIds();
         | 
| 84 80 | 
             
                }
         | 
| 85 81 |  | 
| 86 82 |  | 
| 87 83 | 
             
                function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
         | 
| 88 | 
            -
                    return _store. | 
| 84 | 
            +
                    return _store.getTargetNftIdSet().getActiveNftId(idx);
         | 
| 89 85 | 
             
                }
         | 
| 90 86 |  | 
| 91 87 |  | 
| @@ -2,8 +2,8 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 5 | 
            -
            import {IVersionable} from "../ | 
| 6 | 
            -
            import {ProxyManager} from "../ | 
| 5 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 6 | 
            +
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 7 7 | 
             
            import {StakingService} from "./StakingService.sol";
         | 
| 8 8 |  | 
| 9 9 | 
             
            contract StakingServiceManager is
         | 
| @@ -3,32 +3,21 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
         | 
| 5 5 |  | 
| 6 | 
            -
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 7 | 
            -
            import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
         | 
| 8 | 
            -
            import {ChainNft} from "../registry/ChainNft.sol";
         | 
| 9 | 
            -
            import {Component} from "../shared/Component.sol";
         | 
| 10 6 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 11 | 
            -
            import {IRegistryService} from "../registry/IRegistryService.sol";
         | 
| 12 7 | 
             
            import {IStaking} from "./IStaking.sol";
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            import { | 
| 8 | 
            +
             | 
| 9 | 
            +
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 10 | 
            +
            import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
         | 
| 15 11 | 
             
            import {KeyValueStore} from "../shared/KeyValueStore.sol";
         | 
| 16 12 | 
             
            import {KEEP_STATE} from "../type/StateId.sol";
         | 
| 17 | 
            -
            import {LibNftIdSet} from "../type/NftIdSet.sol";
         | 
| 18 13 | 
             
            import {NftId, NftIdLib} from "../type/NftId.sol";
         | 
| 19 | 
            -
            import { | 
| 20 | 
            -
            import { | 
| 21 | 
            -
            import {Seconds, SecondsLib} from "../type/Seconds.sol";
         | 
| 14 | 
            +
            import {NftIdSet} from "../shared/NftIdSet.sol";
         | 
| 15 | 
            +
            import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
         | 
| 22 16 | 
             
            import {StakingReader} from "./StakingReader.sol";
         | 
| 23 17 | 
             
            import {TargetManagerLib} from "./TargetManagerLib.sol";
         | 
| 24 18 | 
             
            import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
         | 
| 25 | 
            -
            import {TokenRegistry} from "../registry/TokenRegistry.sol";
         | 
| 26 | 
            -
            import {UFixed, UFixedLib} from "../type/UFixed.sol";
         | 
| 27 | 
            -
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 28 | 
            -
            import {Versionable} from "../shared/Versionable.sol";
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
         | 
| 31 19 | 
             
            import {StakingLifecycle} from "./StakingLifecycle.sol";
         | 
| 20 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 32 21 |  | 
| 33 22 |  | 
| 34 23 | 
             
            contract StakingStore is 
         | 
| @@ -63,7 +52,7 @@ contract StakingStore is | |
| 63 52 | 
             
                error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
         | 
| 64 53 |  | 
| 65 54 | 
             
                IRegistry private _registry;
         | 
| 66 | 
            -
                 | 
| 55 | 
            +
                NftIdSet private _targetNftIdSet;
         | 
| 67 56 | 
             
                StakingReader private _reader;
         | 
| 68 57 |  | 
| 69 58 | 
             
                // staking rate
         | 
| @@ -93,7 +82,7 @@ contract StakingStore is | |
| 93 82 | 
             
                    // set internal variables
         | 
| 94 83 | 
             
                    _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
         | 
| 95 84 | 
             
                    _reader = reader;
         | 
| 96 | 
            -
                     | 
| 85 | 
            +
                    _targetNftIdSet = new NftIdSet();
         | 
| 97 86 |  | 
| 98 87 | 
             
                    // register protocol target
         | 
| 99 88 | 
             
                    _createTarget(
         | 
| @@ -428,8 +417,9 @@ contract StakingStore is | |
| 428 417 | 
             
                    return _reader;
         | 
| 429 418 | 
             
                }
         | 
| 430 419 |  | 
| 431 | 
            -
                 | 
| 432 | 
            -
             | 
| 420 | 
            +
                // TODO rename
         | 
| 421 | 
            +
                function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
         | 
| 422 | 
            +
                    return _targetNftIdSet;
         | 
| 433 423 | 
             
                }
         | 
| 434 424 |  | 
| 435 425 | 
             
                function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
         | 
| @@ -493,7 +483,7 @@ contract StakingStore is | |
| 493 483 | 
             
                    _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
         | 
| 494 484 | 
             
                    _createTargetBalance(targetNftId);
         | 
| 495 485 |  | 
| 496 | 
            -
                     | 
| 486 | 
            +
                    _targetNftIdSet.add(targetNftId);
         | 
| 497 487 | 
             
                }
         | 
| 498 488 |  | 
| 499 489 | 
             
                function _updateReserves(
         | 
| @@ -12,13 +12,15 @@ using { | |
| 12 12 | 
             
                nqAmount as !=,
         | 
| 13 13 | 
             
                ltAmount as <,
         | 
| 14 14 | 
             
                gtAmount as >,
         | 
| 15 | 
            +
                AmountLib.add,
         | 
| 15 16 | 
             
                AmountLib.eq,
         | 
| 16 17 | 
             
                AmountLib.eqz,
         | 
| 17 18 | 
             
                AmountLib.gtz,
         | 
| 19 | 
            +
                AmountLib.gt,
         | 
| 20 | 
            +
                AmountLib.gte,
         | 
| 21 | 
            +
                AmountLib.multiplyWith,
         | 
| 18 22 | 
             
                AmountLib.toInt,
         | 
| 19 | 
            -
                AmountLib. | 
| 20 | 
            -
                AmountLib.toUFixed,
         | 
| 21 | 
            -
                AmountLib.multiplyWith
         | 
| 23 | 
            +
                AmountLib.toUFixed
         | 
| 22 24 | 
             
            } for Amount global;
         | 
| 23 25 |  | 
| 24 26 | 
             
            function addAmount(Amount a, Amount b) pure returns (Amount) {
         | 
| @@ -77,16 +79,21 @@ library AmountLib { | |
| 77 79 | 
             
                    return Amount.unwrap(amount1) == Amount.unwrap(amount2);
         | 
| 78 80 | 
             
                }
         | 
| 79 81 |  | 
| 80 | 
            -
                /// @dev return true if amount a1 is  | 
| 82 | 
            +
                /// @dev return true if amount a1 is less than a2
         | 
| 81 83 | 
             
                function lt(Amount a1, Amount a2) public pure returns (bool) {
         | 
| 82 84 | 
             
                    return Amount.unwrap(a1) < Amount.unwrap(a2);
         | 
| 83 85 | 
             
                }
         | 
| 84 86 |  | 
| 85 | 
            -
                /// @dev return true if amount a1 is  | 
| 87 | 
            +
                /// @dev return true if amount a1 is greater than a2
         | 
| 86 88 | 
             
                function gt(Amount a1, Amount a2) public pure returns (bool) {
         | 
| 87 89 | 
             
                    return Amount.unwrap(a1) > Amount.unwrap(a2);
         | 
| 88 90 | 
             
                }
         | 
| 89 91 |  | 
| 92 | 
            +
                /// @dev return true if amount a1 is greater or equal than a2
         | 
| 93 | 
            +
                function gte(Amount a1, Amount a2) public pure returns (bool) {
         | 
| 94 | 
            +
                    return Amount.unwrap(a1) >= Amount.unwrap(a2);
         | 
| 95 | 
            +
                }
         | 
| 96 | 
            +
             | 
| 90 97 | 
             
                /// @dev return minimum of a1 and a2.
         | 
| 91 98 | 
             
                function min(Amount a1, Amount a2) public pure returns (Amount) {
         | 
| 92 99 | 
             
                    if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
         | 
| @@ -27,20 +27,16 @@ function STAKING() pure returns (ObjectType) { | |
| 27 27 | 
             
                return ObjectType.wrap(3);
         | 
| 28 28 | 
             
            }
         | 
| 29 29 |  | 
| 30 | 
            -
            function TOKEN() pure returns (ObjectType) {
         | 
| 31 | 
            -
                return ObjectType.wrap(6);
         | 
| 32 | 
            -
            }
         | 
| 33 | 
            -
             | 
| 34 30 | 
             
            function RELEASE() pure returns (ObjectType) {
         | 
| 35 | 
            -
                return ObjectType.wrap( | 
| 31 | 
            +
                return ObjectType.wrap(6);
         | 
| 36 32 | 
             
            }
         | 
| 37 33 |  | 
| 38 34 | 
             
            function ROLE() pure returns (ObjectType) {
         | 
| 39 | 
            -
                return ObjectType.wrap( | 
| 35 | 
            +
                return ObjectType.wrap(7);
         | 
| 40 36 | 
             
            }
         | 
| 41 37 |  | 
| 42 38 | 
             
            function SERVICE() pure returns (ObjectType) {
         | 
| 43 | 
            -
                return ObjectType.wrap( | 
| 39 | 
            +
                return ObjectType.wrap(8);
         | 
| 44 40 | 
             
            }
         | 
| 45 41 |  | 
| 46 42 | 
             
            function INSTANCE() pure returns (ObjectType) {
         | 
| @@ -15,9 +15,10 @@ using { | |
| 15 15 | 
             
                lteUFixed as <=,
         | 
| 16 16 | 
             
                eqUFixed as ==,
         | 
| 17 17 | 
             
                neUFixed as !=,
         | 
| 18 | 
            +
                UFixedLib.gt,
         | 
| 19 | 
            +
                UFixedLib.gtz,
         | 
| 18 20 | 
             
                UFixedLib.toInt,
         | 
| 19 | 
            -
                UFixedLib.toInt1000 | 
| 20 | 
            -
                UFixedLib.gtz
         | 
| 21 | 
            +
                UFixedLib.toInt1000
         | 
| 21 22 | 
             
            } for UFixed global;
         | 
| 22 23 |  | 
| 23 24 | 
             
            // TODO move to UFixedLib and rename to zero()
         | 
| @@ -30,7 +31,9 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 30 31 | 
             
            }
         | 
| 31 32 |  | 
| 32 33 | 
             
            function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| 33 | 
            -
                 | 
| 34 | 
            +
                if (a < b) {
         | 
| 35 | 
            +
                    revert UFixedLib.UFixedLibNegativeResult();
         | 
| 36 | 
            +
                }
         | 
| 34 37 | 
             
                return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
         | 
| 35 38 | 
             
            }
         | 
| 36 39 |  | 
| @@ -40,8 +43,10 @@ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 40 43 | 
             
            }
         | 
| 41 44 |  | 
| 42 45 | 
             
            function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
         | 
| 43 | 
            -
                 | 
| 44 | 
            -
             | 
| 46 | 
            +
                if (UFixed.unwrap(b) == 0) {
         | 
| 47 | 
            +
                    revert UFixedLib.UFixedLibDivisionByZero();
         | 
| 48 | 
            +
                }
         | 
| 49 | 
            +
                
         | 
| 45 50 | 
             
                return
         | 
| 46 51 | 
             
                    UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
         | 
| 47 52 | 
             
            }
         | 
| @@ -89,6 +94,8 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) { | |
| 89 94 | 
             
            /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
         | 
| 90 95 | 
             
            library MathLib {
         | 
| 91 96 |  | 
| 97 | 
            +
                error MathLigMulDivOverflow();
         | 
| 98 | 
            +
             | 
| 92 99 | 
             
                enum Rounding {
         | 
| 93 100 | 
             
                    Down, // Toward negative infinity
         | 
| 94 101 | 
             
                    Up, // Toward infinity
         | 
| @@ -122,8 +129,10 @@ library MathLib { | |
| 122 129 | 
             
                        }
         | 
| 123 130 |  | 
| 124 131 | 
             
                        // Make sure the result is less than 2^256. Also prevents denominator == 0.
         | 
| 125 | 
            -
                         | 
| 126 | 
            -
             | 
| 132 | 
            +
                        if (denominator <= prod1) {
         | 
| 133 | 
            +
                            revert MathLigMulDivOverflow();
         | 
| 134 | 
            +
                        }
         | 
| 135 | 
            +
                        
         | 
| 127 136 | 
             
                        ///////////////////////////////////////////////
         | 
| 128 137 | 
             
                        // 512 by 256 division.
         | 
| 129 138 | 
             
                        ///////////////////////////////////////////////
         | 
| @@ -195,6 +204,12 @@ library MathLib { | |
| 195 204 | 
             
            }
         | 
| 196 205 |  | 
| 197 206 | 
             
            library UFixedLib {
         | 
| 207 | 
            +
                error UFixedLibNegativeResult();
         | 
| 208 | 
            +
                error UFixedLibDivisionByZero();
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                error UFixedLibExponentTooSmall(int8 exp);
         | 
| 211 | 
            +
                error UFixedLibExponentTooLarge(int8 exp);
         | 
| 212 | 
            +
             | 
| 198 213 | 
             
                int8 public constant EXP = 18;
         | 
| 199 214 | 
             
                uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
         | 
| 200 215 | 
             
                uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
         | 
| @@ -221,9 +236,13 @@ library UFixedLib { | |
| 221 236 |  | 
| 222 237 | 
             
                /// @dev Converts the uint256 to a UFixed with given exponent.
         | 
| 223 238 | 
             
                function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
         | 
| 224 | 
            -
                     | 
| 225 | 
            -
             | 
| 226 | 
            -
             | 
| 239 | 
            +
                    if (EXP + exp < 0) {
         | 
| 240 | 
            +
                        revert UFixedLibExponentTooSmall(exp);
         | 
| 241 | 
            +
                    }
         | 
| 242 | 
            +
                    if (EXP + exp > 64) {
         | 
| 243 | 
            +
                        revert UFixedLibExponentTooLarge(exp);
         | 
| 244 | 
            +
                    }
         | 
| 245 | 
            +
                    
         | 
| 227 246 | 
             
                    return UFixed.wrap(a * 10 ** uint8(EXP + exp));
         | 
| 228 247 | 
             
                }
         | 
| 229 248 |  | 
| @@ -7,6 +7,7 @@ using { | |
| 7 7 | 
             
                versionPartGt as >,
         | 
| 8 8 | 
             
                versionPartEq as ==,
         | 
| 9 9 | 
             
                versionPartNe as !=,
         | 
| 10 | 
            +
                VersionPartLib.eqz,
         | 
| 10 11 | 
             
                VersionPartLib.toInt
         | 
| 11 12 | 
             
            }
         | 
| 12 13 | 
             
                for VersionPart global;
         | 
| @@ -16,7 +17,8 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { | |
| 16 17 | 
             
            function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
         | 
| 17 18 |  | 
| 18 19 | 
             
            library VersionPartLib {
         | 
| 19 | 
            -
                function  | 
| 20 | 
            +
                function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
         | 
| 21 | 
            +
                function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
         | 
| 20 22 | 
             
                function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
         | 
| 21 23 | 
             
            }
         | 
| 22 24 |  | 
| @@ -1,17 +1,16 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            +
            import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
         | 
| 4 5 | 
             
            import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
         | 
| 5 6 |  | 
| 6 7 | 
             
            import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
         | 
| 7 8 | 
             
            import {IVersionable} from "./IVersionable.sol";
         | 
| 8 | 
            -
            import { | 
| 9 | 
            -
            import { | 
| 10 | 
            -
            import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
         | 
| 9 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 10 | 
            +
            import {NftOwnable} from "../shared/NftOwnable.sol";
         | 
| 11 11 | 
             
            import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
         | 
| 12 12 | 
             
            import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
         | 
| 13 13 | 
             
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 14 | 
            -
            import {NftId} from "../type/NftId.sol";
         | 
| 15 14 |  | 
| 16 15 | 
             
            /// @dev manages proxy deployments for upgradable contracs of type IVersionable
         | 
| 17 16 | 
             
            contract ProxyManager is
         | 
| @@ -2,9 +2,7 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
         | 
| 5 | 
            -
            import {TransparentUpgradeableProxy | 
| 6 | 
            -
             | 
| 7 | 
            -
            import {IVersionable} from "./IVersionable.sol";
         | 
| 5 | 
            +
            import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
         | 
| 8 6 |  | 
| 9 7 | 
             
            contract UpgradableProxyWithAdmin is TransparentUpgradeableProxy {
         | 
| 10 8 |  | 
    
        package/package.json
    CHANGED