@etherisc/gif-next 0.0.2-eadf4ad-726 → 0.0.2-eae5e95-691
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 +51 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1415 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +230 -545
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +315 -432
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +214 -290
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1551 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -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 +113 -97
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +171 -85
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +120 -207
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +245 -229
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -79
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1052 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +783 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +920 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1312 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +186 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +235 -375
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +269 -565
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +112 -93
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +99 -76
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1186 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +141 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +355 -209
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +124 -121
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -93
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +377 -431
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +391 -45
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +123 -64
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +789 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +179 -185
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +86 -74
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +136 -271
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +105 -114
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -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/IService.sol/IService.json +49 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +842 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +68 -85
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1460 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1901 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +109 -66
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
- 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 +47 -4
- 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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- 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 +71 -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/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +154 -154
- package/contracts/distribution/DistributionService.sol +175 -172
- package/contracts/distribution/DistributionServiceManager.sol +8 -23
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +33 -44
- package/contracts/instance/IInstanceService.sol +32 -33
- package/contracts/instance/Instance.sol +131 -122
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +194 -67
- package/contracts/instance/InstanceService.sol +243 -134
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +142 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +21 -11
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +31 -25
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +278 -201
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +44 -19
- package/contracts/pool/IPoolComponent.sol +27 -73
- package/contracts/pool/IPoolService.sol +93 -40
- package/contracts/pool/Pool.sol +186 -153
- package/contracts/pool/PoolService.sol +357 -236
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +148 -84
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +293 -145
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +38 -38
- package/contracts/product/IPricingService.sol +13 -11
- package/contracts/product/IProductComponent.sol +28 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
- package/contracts/product/PolicyService.sol +504 -199
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +103 -82
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +222 -146
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -36
- package/contracts/registry/IRegistry.sol +85 -22
- package/contracts/registry/IRegistryService.sol +10 -6
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +433 -187
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +76 -66
- package/contracts/registry/RegistryServiceManager.sol +6 -25
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +153 -148
- package/contracts/shared/ComponentService.sol +688 -94
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +25 -41
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +213 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +27 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +21 -11
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +48 -36
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +103 -48
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +273 -49
- package/contracts/staking/StakingServiceManager.sol +11 -7
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +15 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -62
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +98 -75
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +76 -39
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +9 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -679
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -238
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -846
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/ProductService.sol +0 -212
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -132
- package/contracts/registry/ReleaseManager.sol +0 -382
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,190 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
8
|
+
import {IStaking} from "../staking/IStaking.sol";
|
9
|
+
|
10
|
+
import {Amount} from "../type/Amount.sol";
|
11
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
14
|
+
import {StakingStore} from "./StakingStore.sol";
|
15
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
16
|
+
import {UFixed} from "../type/UFixed.sol";
|
17
|
+
|
18
|
+
contract StakingReader is
|
19
|
+
IRegistryLinked,
|
20
|
+
Initializable
|
21
|
+
{
|
22
|
+
|
23
|
+
error ErrorStakingReaderUnauthorizedCaler();
|
24
|
+
|
25
|
+
address private _initializeOwner;
|
26
|
+
IRegistry private _registry;
|
27
|
+
IStaking private _staking;
|
28
|
+
StakingStore private _store;
|
29
|
+
|
30
|
+
constructor(IRegistry registry) {
|
31
|
+
_initializeOwner = msg.sender;
|
32
|
+
_registry = registry;
|
33
|
+
}
|
34
|
+
|
35
|
+
function initialize(
|
36
|
+
address stakingAddress,
|
37
|
+
address stakingStoreAddress
|
38
|
+
)
|
39
|
+
external
|
40
|
+
initializer()
|
41
|
+
{
|
42
|
+
if (msg.sender != _initializeOwner) {
|
43
|
+
revert ErrorStakingReaderUnauthorizedCaler();
|
44
|
+
}
|
45
|
+
|
46
|
+
_staking = IStaking(stakingAddress);
|
47
|
+
_store = StakingStore(stakingStoreAddress);
|
48
|
+
}
|
49
|
+
|
50
|
+
// view and pure functions
|
51
|
+
|
52
|
+
function getRegistry() external view returns (IRegistry registry) {
|
53
|
+
return _registry;
|
54
|
+
}
|
55
|
+
|
56
|
+
function getStaking() external view returns (IStaking staking) {
|
57
|
+
return _staking;
|
58
|
+
}
|
59
|
+
|
60
|
+
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
|
61
|
+
return _store.getStakingRate(chainId, token);
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
function isTarget(NftId targetNftId) external view returns (bool) {
|
66
|
+
return _store.getTargetNftIdSet().exists(targetNftId);
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
function targets() external view returns (uint256) {
|
71
|
+
return _store.getTargetNftIdSet().nftIds();
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
function getTargetNftId(uint256 idx) external view returns (NftId) {
|
76
|
+
return _store.getTargetNftIdSet().getNftId(idx);
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
function isActive(NftId targetNftId) external view returns (bool) {
|
81
|
+
return _store.getTargetNftIdSet().isActive(targetNftId);
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
function activeTargets() external view returns (uint256) {
|
86
|
+
return _store.getTargetNftIdSet().activeNftIds();
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
|
91
|
+
return _store.getTargetNftIdSet().getActiveNftId(idx);
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
|
96
|
+
return _registry.getObjectInfo(stakeNftId).parentNftId;
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
|
101
|
+
bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
|
102
|
+
if (data.length > 0) {
|
103
|
+
return abi.decode(data, (IStaking.TargetInfo));
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
|
109
|
+
bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
|
110
|
+
if (data.length > 0) {
|
111
|
+
return abi.decode(data, (IStaking.StakeInfo));
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
/// @dev get the reward rate that applies to the specified stake nft id.
|
117
|
+
function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
|
118
|
+
targetNftId = getTargetNftId(stakeNftId);
|
119
|
+
rewardRate = getTargetInfo(targetNftId).rewardRate;
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
/// @dev get the reward rate for the specified target nft id.
|
124
|
+
function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
|
125
|
+
return getTargetInfo(targetNftId).rewardRate;
|
126
|
+
}
|
127
|
+
|
128
|
+
/// @dev returns the current reward reserve balance for the specified target.
|
129
|
+
function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
|
130
|
+
return _store.getReserveBalance(targetNftId);
|
131
|
+
}
|
132
|
+
|
133
|
+
function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
|
134
|
+
return _store.getStakeBalance(nftId);
|
135
|
+
}
|
136
|
+
|
137
|
+
function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
|
138
|
+
return _store.getRewardBalance(nftId);
|
139
|
+
}
|
140
|
+
|
141
|
+
function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
|
142
|
+
return _store.getBalanceUpdatedAt(nftId);
|
143
|
+
}
|
144
|
+
|
145
|
+
function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
|
146
|
+
return _store.getBalanceUpdatedIn(nftId);
|
147
|
+
}
|
148
|
+
|
149
|
+
function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
|
150
|
+
return _store.getTotalValueLocked(nftId, token);
|
151
|
+
}
|
152
|
+
|
153
|
+
function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
|
154
|
+
return _store.getRequiredStakeBalance(nftId);
|
155
|
+
}
|
156
|
+
|
157
|
+
function getTargetBalances(NftId stakeNftId)
|
158
|
+
public
|
159
|
+
view
|
160
|
+
returns (
|
161
|
+
Amount balanceAmount,
|
162
|
+
Amount stakeAmount,
|
163
|
+
Amount rewardAmount,
|
164
|
+
Blocknumber lastUpdatedIn
|
165
|
+
)
|
166
|
+
{
|
167
|
+
(
|
168
|
+
balanceAmount,
|
169
|
+
stakeAmount,
|
170
|
+
rewardAmount,
|
171
|
+
lastUpdatedIn
|
172
|
+
) = _store.getTargetBalances(stakeNftId);
|
173
|
+
}
|
174
|
+
|
175
|
+
function getStakeBalances(NftId stakeNftId)
|
176
|
+
external
|
177
|
+
view
|
178
|
+
returns (
|
179
|
+
Amount stakeAmount,
|
180
|
+
Amount rewardAmount,
|
181
|
+
Timestamp lastUpdatedAt
|
182
|
+
)
|
183
|
+
{
|
184
|
+
(
|
185
|
+
stakeAmount,
|
186
|
+
rewardAmount,
|
187
|
+
lastUpdatedAt
|
188
|
+
) = _store.getStakeBalances(stakeNftId);
|
189
|
+
}
|
190
|
+
}
|
@@ -1,14 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
3
5
|
|
4
6
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
7
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
6
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
+
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
+
import {IStaking} from "./IStaking.sol";
|
7
11
|
import {IStakingService} from "./IStakingService.sol";
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {ObjectType,
|
12
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
10
15
|
import {Service} from "../shared/Service.sol";
|
11
|
-
import {
|
16
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
|
+
import {UFixed} from "../type/UFixed.sol";
|
12
18
|
|
13
19
|
|
14
20
|
contract StakingService is
|
@@ -20,120 +26,282 @@ contract StakingService is
|
|
20
26
|
bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
|
21
27
|
|
22
28
|
struct StakingServiceStorage {
|
23
|
-
|
29
|
+
RegistryService _registryService;
|
30
|
+
IStaking _staking;
|
31
|
+
IERC20Metadata _dip;
|
32
|
+
TokenHandler _tokenHandler;
|
33
|
+
}
|
34
|
+
|
35
|
+
function createInstanceTarget(
|
36
|
+
NftId targetNftId,
|
37
|
+
Seconds initialLockingPeriod,
|
38
|
+
UFixed initialRewardRate
|
39
|
+
)
|
40
|
+
external
|
41
|
+
virtual
|
42
|
+
restricted()
|
43
|
+
{
|
44
|
+
uint256 chainId = block.chainid;
|
45
|
+
_getStakingServiceStorage()._staking.registerTarget(
|
46
|
+
targetNftId,
|
47
|
+
INSTANCE(),
|
48
|
+
chainId,
|
49
|
+
initialLockingPeriod,
|
50
|
+
initialRewardRate);
|
51
|
+
|
52
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
|
57
|
+
external
|
58
|
+
virtual
|
59
|
+
restricted()
|
60
|
+
{
|
61
|
+
_getStakingServiceStorage()._staking.setLockingPeriod(
|
62
|
+
instanceNftId,
|
63
|
+
lockingPeriod);
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
restricted()
|
71
|
+
{
|
72
|
+
_getStakingServiceStorage()._staking.setRewardRate(
|
73
|
+
instanceNftId,
|
74
|
+
rewardRate);
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
|
79
|
+
external
|
80
|
+
virtual
|
81
|
+
restricted()
|
82
|
+
returns (Amount newBalance)
|
83
|
+
{
|
84
|
+
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
85
|
+
}
|
86
|
+
|
87
|
+
|
88
|
+
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
|
89
|
+
external
|
90
|
+
virtual
|
91
|
+
restricted()
|
92
|
+
returns (Amount newBalance)
|
93
|
+
{
|
94
|
+
address rewardProvider = msg.sender;
|
95
|
+
return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
|
24
96
|
}
|
25
97
|
|
26
|
-
|
27
|
-
|
98
|
+
|
99
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
returns (Amount newBalance)
|
104
|
+
{
|
105
|
+
// update reward reserve book keeping
|
106
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
107
|
+
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
108
|
+
|
109
|
+
// transfer withdrawal amount to target owner
|
110
|
+
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
111
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
112
|
+
$._staking.transferDipAmount(
|
113
|
+
instanceOwner,
|
114
|
+
dipAmount);
|
28
115
|
}
|
29
116
|
|
30
117
|
|
118
|
+
/// @dev creates a new stake to the specified target nft id with the provided dip amount
|
119
|
+
/// the target nft id must have been registered as an active staking target prior to this call
|
120
|
+
/// the sender of this transaction becomes the stake owner via the minted nft.
|
121
|
+
/// to create the new stake balance and allowance of the staker need to cover the dip amount
|
122
|
+
/// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
|
123
|
+
/// this is a permissionless function.
|
31
124
|
function create(
|
32
125
|
NftId targetNftId,
|
33
|
-
Amount
|
126
|
+
Amount dipAmount
|
34
127
|
)
|
35
128
|
external
|
36
129
|
virtual
|
130
|
+
restricted()
|
37
131
|
returns (
|
38
132
|
NftId stakeNftId
|
39
133
|
)
|
40
134
|
{
|
41
|
-
|
135
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
136
|
+
address stakeOwner = msg.sender;
|
137
|
+
|
138
|
+
// target nft id checks are performed in $._staking.createStake() below
|
139
|
+
// register new stake object with registry
|
140
|
+
stakeNftId = $._registryService.registerStake(
|
141
|
+
IRegistry.ObjectInfo({
|
142
|
+
nftId: NftIdLib.zero(),
|
143
|
+
parentNftId: targetNftId,
|
144
|
+
objectType: STAKE(),
|
145
|
+
isInterceptor: false,
|
146
|
+
objectAddress: address(0),
|
147
|
+
initialOwner: stakeOwner,
|
148
|
+
data: ""
|
149
|
+
}));
|
150
|
+
|
151
|
+
// create stake info with staking
|
152
|
+
$._staking.createStake(
|
153
|
+
stakeNftId,
|
154
|
+
targetNftId,
|
155
|
+
dipAmount);
|
156
|
+
|
157
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
158
|
+
|
159
|
+
// collect staked dip by staking
|
160
|
+
$._staking.collectDipAmount(
|
161
|
+
stakeOwner,
|
162
|
+
dipAmount);
|
42
163
|
}
|
43
164
|
|
44
165
|
|
45
166
|
function stake(
|
46
167
|
NftId stakeNftId,
|
47
|
-
Amount
|
168
|
+
Amount dipAmount
|
48
169
|
)
|
49
170
|
external
|
50
171
|
virtual
|
172
|
+
restricted()
|
173
|
+
onlyNftOwner(stakeNftId)
|
51
174
|
{
|
52
|
-
|
175
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
176
|
+
address stakeOwner = msg.sender;
|
177
|
+
|
178
|
+
// add additional staked dips by staking
|
179
|
+
Amount stakeBalance = $._staking.stake(
|
180
|
+
stakeNftId,
|
181
|
+
dipAmount);
|
182
|
+
|
183
|
+
// collect staked dip by staking
|
184
|
+
if (dipAmount.gtz()) {
|
185
|
+
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
186
|
+
$._staking.collectDipAmount(
|
187
|
+
stakeOwner,
|
188
|
+
dipAmount);
|
189
|
+
}
|
53
190
|
}
|
54
191
|
|
55
192
|
|
56
|
-
function
|
193
|
+
function restakeToNewTarget(
|
57
194
|
NftId stakeNftId,
|
58
|
-
|
195
|
+
NftId newTargetNftId
|
59
196
|
)
|
60
197
|
external
|
61
198
|
virtual
|
199
|
+
restricted()
|
200
|
+
onlyNftOwner(stakeNftId)
|
201
|
+
returns (
|
202
|
+
NftId newStakeNftId
|
203
|
+
)
|
62
204
|
{
|
205
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
206
|
+
// TODO implement
|
207
|
+
}
|
63
208
|
|
64
|
-
}
|
65
209
|
|
66
|
-
function
|
210
|
+
function updateRewards(
|
67
211
|
NftId stakeNftId
|
68
212
|
)
|
69
213
|
external
|
70
214
|
virtual
|
215
|
+
restricted()
|
71
216
|
{
|
217
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
218
|
+
$._staking.updateRewards(stakeNftId);
|
72
219
|
|
220
|
+
emit LogStakingServiceRewardsUpdated(stakeNftId);
|
73
221
|
}
|
74
222
|
|
75
|
-
|
76
|
-
|
77
|
-
NftId newTargetNftId
|
78
|
-
)
|
223
|
+
|
224
|
+
function claimRewards(NftId stakeNftId)
|
79
225
|
external
|
80
226
|
virtual
|
81
|
-
|
82
|
-
|
83
|
-
Timestamp unlockedAt
|
84
|
-
)
|
227
|
+
restricted()
|
228
|
+
onlyNftOwner(stakeNftId)
|
85
229
|
{
|
230
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
231
|
+
address stakeOwner = msg.sender;
|
86
232
|
|
233
|
+
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
234
|
+
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
235
|
+
$._staking.transferDipAmount(
|
236
|
+
stakeOwner,
|
237
|
+
rewardsClaimedAmount);
|
87
238
|
}
|
88
239
|
|
89
240
|
|
90
|
-
function
|
91
|
-
NftId targetNftId,
|
92
|
-
address token,
|
93
|
-
Amount amount
|
94
|
-
)
|
241
|
+
function unstake(NftId stakeNftId)
|
95
242
|
external
|
96
243
|
virtual
|
97
|
-
|
244
|
+
restricted()
|
245
|
+
onlyNftOwner(stakeNftId)
|
98
246
|
{
|
247
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
248
|
+
address stakeOwner = msg.sender;
|
99
249
|
|
250
|
+
(
|
251
|
+
Amount unstakedAmount,
|
252
|
+
Amount rewardsClaimedAmount
|
253
|
+
) = $._staking.unstake(stakeNftId);
|
254
|
+
|
255
|
+
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
256
|
+
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
257
|
+
$._staking.transferDipAmount(
|
258
|
+
stakeOwner,
|
259
|
+
totalAmount);
|
100
260
|
}
|
101
261
|
|
102
262
|
|
103
|
-
function
|
263
|
+
function setTotalValueLocked(
|
104
264
|
NftId targetNftId,
|
105
265
|
address token,
|
106
266
|
Amount amount
|
107
267
|
)
|
108
268
|
external
|
109
269
|
virtual
|
110
|
-
|
270
|
+
restricted()
|
111
271
|
{
|
272
|
+
// TODO implement
|
112
273
|
|
113
274
|
}
|
114
275
|
|
276
|
+
//--- view functions ----------------------------------------------------//
|
115
277
|
|
116
|
-
function
|
117
|
-
NftId targetNftId,
|
118
|
-
address token
|
119
|
-
)
|
278
|
+
function getDipToken()
|
120
279
|
external
|
121
280
|
virtual
|
281
|
+
returns (IERC20Metadata dip)
|
122
282
|
{
|
123
|
-
|
283
|
+
return _getStakingServiceStorage()._dip;
|
124
284
|
}
|
125
285
|
|
126
286
|
|
127
|
-
function
|
128
|
-
NftId targetNftId,
|
129
|
-
address token
|
130
|
-
)
|
287
|
+
function getTokenHandler()
|
131
288
|
external
|
132
289
|
virtual
|
290
|
+
returns (TokenHandler tokenHandler)
|
133
291
|
{
|
292
|
+
return _getStakingServiceStorage()._tokenHandler;
|
293
|
+
}
|
294
|
+
|
134
295
|
|
296
|
+
function getStaking()
|
297
|
+
external
|
298
|
+
virtual
|
299
|
+
returns (IStaking staking)
|
300
|
+
{
|
301
|
+
return _getStakingServiceStorage()._staking;
|
135
302
|
}
|
136
303
|
|
304
|
+
//--- internal functions ------------------------------------------------//
|
137
305
|
|
138
306
|
function _initialize(
|
139
307
|
address owner,
|
@@ -144,26 +312,82 @@ contract StakingService is
|
|
144
312
|
initializer()
|
145
313
|
{
|
146
314
|
(
|
147
|
-
address
|
148
|
-
|
149
|
-
address
|
315
|
+
address authority,
|
316
|
+
address registryAddress,
|
317
|
+
address stakingAddress
|
150
318
|
) = abi.decode(data, (address, address, address));
|
151
319
|
|
152
|
-
|
320
|
+
_initializeService(registryAddress, authority, owner);
|
153
321
|
|
154
322
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
155
|
-
$.
|
323
|
+
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
324
|
+
$._staking = _registerStaking(stakingAddress);
|
325
|
+
$._dip = $._staking.getToken();
|
326
|
+
$._tokenHandler = $._staking.getTokenHandler();
|
327
|
+
|
328
|
+
_registerInterface(type(IStakingService).interfaceId);
|
329
|
+
}
|
330
|
+
|
331
|
+
|
332
|
+
function _registerStaking(
|
333
|
+
address stakingAddress
|
334
|
+
)
|
335
|
+
internal
|
336
|
+
returns (IStaking staking)
|
337
|
+
{
|
338
|
+
// check if provided staking contract is already registred
|
339
|
+
// staking contract may have been already registered by a previous major relase
|
340
|
+
IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
|
341
|
+
if (stakingInfo.nftId.gtz()) {
|
342
|
+
// registered object but wrong type
|
343
|
+
if (stakingInfo.objectType != STAKING()) {
|
344
|
+
revert ErrorStakingServiceNotStaking(stakingAddress);
|
345
|
+
}
|
346
|
+
|
347
|
+
// return correctly registered staking contract
|
348
|
+
return IStaking(stakingAddress);
|
349
|
+
}
|
350
|
+
|
351
|
+
// check that contract implements IStaking
|
352
|
+
if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
|
353
|
+
revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
|
354
|
+
}
|
156
355
|
|
157
|
-
|
356
|
+
address owner = msg.sender;
|
357
|
+
_getStakingServiceStorage()._registryService.registerStaking(
|
358
|
+
IRegisterable(stakingAddress),
|
359
|
+
owner);
|
360
|
+
|
361
|
+
return IStaking(stakingAddress);
|
158
362
|
}
|
159
363
|
|
160
|
-
|
161
|
-
|
364
|
+
|
365
|
+
function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
|
366
|
+
internal
|
367
|
+
virtual
|
368
|
+
returns (Amount newBalance)
|
369
|
+
{
|
370
|
+
// update reward reserve book keeping
|
371
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
372
|
+
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
373
|
+
|
374
|
+
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
375
|
+
|
376
|
+
// collect reward dip from provider
|
377
|
+
$._staking.collectDipAmount(
|
378
|
+
rewardProvider,
|
379
|
+
dipAmount);
|
162
380
|
}
|
163
381
|
|
382
|
+
|
164
383
|
function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
|
165
384
|
assembly {
|
166
385
|
$.slot := STAKING_SERVICE_LOCATION_V1
|
167
386
|
}
|
168
387
|
}
|
388
|
+
|
389
|
+
|
390
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
391
|
+
return STAKING();
|
392
|
+
}
|
169
393
|
}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
7
|
import {StakingService} from "./StakingService.sol";
|
7
8
|
|
8
9
|
contract StakingServiceManager is
|
@@ -13,15 +14,18 @@ contract StakingServiceManager is
|
|
13
14
|
|
14
15
|
/// @dev initializes proxy manager with service implementation
|
15
16
|
constructor(
|
16
|
-
address authority,
|
17
|
+
address authority,
|
17
18
|
address registryAddress,
|
18
19
|
bytes32 salt
|
19
20
|
)
|
20
|
-
ProxyManager(registryAddress)
|
21
21
|
{
|
22
|
-
StakingService svc = new StakingService
|
23
|
-
bytes memory data = abi.encode(
|
24
|
-
|
22
|
+
StakingService svc = new StakingService();
|
23
|
+
bytes memory data = abi.encode(
|
24
|
+
authority,
|
25
|
+
registryAddress,
|
26
|
+
IRegistry(registryAddress).getStakingAddress());
|
27
|
+
IVersionable versionable = initialize(
|
28
|
+
registryAddress,
|
25
29
|
address(svc),
|
26
30
|
data,
|
27
31
|
salt);
|