@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
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 +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- 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/IAccessAdmin.sol/IAccessAdmin.json +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- 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 +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- 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 +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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/IRegisterable.sol/IRegisterable.json +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -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 +19 -0
- 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/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +93 -37
- 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/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.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 +33 -31
- 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 +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- 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/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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 +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,84 +1,44 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {Component} from "../shared/Component.sol";
|
8
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
5
|
import {IStaking} from "./IStaking.sol";
|
11
|
-
import {
|
6
|
+
import {IStakingService} from "./IStakingService.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
12
9
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {
|
10
|
+
import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
|
14
11
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
15
12
|
import {StakingReader} from "./StakingReader.sol";
|
16
|
-
import {
|
13
|
+
import {STAKING} from "../type/ObjectType.sol";
|
17
14
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
18
15
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
19
17
|
|
20
18
|
|
21
|
-
library
|
19
|
+
library StakingLib {
|
22
20
|
|
23
|
-
function
|
24
|
-
IRegistry registry,
|
21
|
+
function checkCreateParameters(
|
25
22
|
StakingReader stakingReader,
|
26
|
-
|
27
|
-
|
28
|
-
Amount stakeAmount
|
23
|
+
NftId targetNftId,
|
24
|
+
Amount dipAmount
|
29
25
|
)
|
30
26
|
external
|
31
|
-
|
27
|
+
view
|
28
|
+
returns (
|
29
|
+
Timestamp lockedUntil
|
30
|
+
)
|
32
31
|
{
|
33
|
-
|
34
|
-
(
|
35
|
-
UFixed rewardRate,
|
36
|
-
Seconds lockingPeriod
|
37
|
-
) = checkStakeParameters(
|
38
|
-
stakingReader,
|
39
|
-
stakeNftId);
|
40
|
-
|
41
|
-
// calculate new rewards (if any)
|
42
|
-
(
|
43
|
-
Amount rewardIncrementAmount,
|
44
|
-
Amount currentTotalDipAmount
|
45
|
-
) = calculateRewardIncrease(
|
46
|
-
stakingReader,
|
47
|
-
stakeNftId,
|
48
|
-
rewardRate);
|
49
|
-
|
50
|
-
stakeBalance = currentTotalDipAmount + stakeAmount;
|
51
|
-
|
52
|
-
// TODO check that additional dip, rewards and rewards increment
|
53
|
-
// are still ok with max target staking amount
|
54
|
-
NftId targetNftId = registry.getParentNftId(stakeNftId);
|
55
|
-
|
56
|
-
stakingStore.restakeRewards(
|
57
|
-
stakeNftId,
|
58
|
-
targetNftId,
|
59
|
-
rewardIncrementAmount);
|
60
|
-
|
61
|
-
stakingStore.increaseStake(
|
62
|
-
stakeNftId,
|
63
|
-
targetNftId,
|
64
|
-
stakeAmount);
|
65
|
-
|
66
|
-
// update locked until with target locking period
|
67
|
-
stakingStore.update(
|
68
|
-
stakeNftId,
|
69
|
-
IStaking.StakeInfo({
|
70
|
-
lockedUntil: TimestampLib.blockTimestamp().addSeconds(
|
71
|
-
lockingPeriod)}));
|
72
|
-
|
32
|
+
return _checkCreateParameters(stakingReader, targetNftId, dipAmount);
|
73
33
|
}
|
74
34
|
|
75
|
-
|
35
|
+
|
36
|
+
function _checkCreateParameters(
|
76
37
|
StakingReader stakingReader,
|
77
38
|
NftId targetNftId,
|
78
39
|
Amount dipAmount
|
79
40
|
)
|
80
|
-
|
81
|
-
view
|
41
|
+
internal view
|
82
42
|
returns (
|
83
43
|
Timestamp lockedUntil
|
84
44
|
)
|
@@ -86,7 +46,7 @@ library StakeManagerLib {
|
|
86
46
|
Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
|
87
47
|
checkDipAmount(stakingReader, targetNftId, dipAmount);
|
88
48
|
|
89
|
-
Timestamp currentTime = TimestampLib.
|
49
|
+
Timestamp currentTime = TimestampLib.current();
|
90
50
|
lockedUntil = currentTime.addSeconds(lockingPeriod);
|
91
51
|
}
|
92
52
|
|
@@ -104,16 +64,17 @@ library StakeManagerLib {
|
|
104
64
|
{
|
105
65
|
NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
|
106
66
|
|
107
|
-
//
|
108
|
-
if (!stakingReader.
|
109
|
-
revert IStaking.
|
67
|
+
// target nft id must be registered
|
68
|
+
if (!stakingReader.isTarget(targetNftId)) {
|
69
|
+
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
110
70
|
}
|
111
|
-
|
71
|
+
|
112
72
|
IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
|
113
73
|
rewardRate = info.rewardRate;
|
114
74
|
lockingPeriod = info.lockingPeriod;
|
115
75
|
}
|
116
76
|
|
77
|
+
|
117
78
|
function checkUnstakeParameters(
|
118
79
|
StakingReader stakingReader,
|
119
80
|
NftId stakeNftId
|
@@ -121,13 +82,12 @@ library StakeManagerLib {
|
|
121
82
|
public
|
122
83
|
view
|
123
84
|
returns (
|
124
|
-
UFixed rewardRate,
|
125
85
|
Seconds lockingPeriod
|
126
86
|
)
|
127
87
|
{
|
128
88
|
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
129
|
-
|
130
|
-
if (stakeInfo.lockedUntil > TimestampLib.
|
89
|
+
|
90
|
+
if (stakeInfo.lockedUntil > TimestampLib.current()) {
|
131
91
|
revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
|
132
92
|
}
|
133
93
|
}
|
@@ -146,12 +106,28 @@ library StakeManagerLib {
|
|
146
106
|
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
147
107
|
}
|
148
108
|
|
149
|
-
|
150
|
-
|
151
|
-
|
109
|
+
lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
function checkAndGetStakingService(
|
114
|
+
IRegistry registry,
|
115
|
+
VersionPart release
|
116
|
+
)
|
117
|
+
public
|
118
|
+
view
|
119
|
+
returns (IStakingService stakingService)
|
120
|
+
{
|
121
|
+
if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
|
122
|
+
revert IStaking.ErrorStakingReleaseNotActive(release);
|
123
|
+
}
|
124
|
+
|
125
|
+
address stakingServiceAddress = registry.getServiceAddress(STAKING(), release);
|
126
|
+
if (stakingServiceAddress == address(0)) {
|
127
|
+
revert IStaking.ErrorStakingServiceNotFound(release);
|
152
128
|
}
|
153
129
|
|
154
|
-
|
130
|
+
return IStakingService(stakingServiceAddress);
|
155
131
|
}
|
156
132
|
|
157
133
|
|
@@ -161,14 +137,17 @@ library StakeManagerLib {
|
|
161
137
|
Amount dipAmount
|
162
138
|
)
|
163
139
|
public
|
164
|
-
|
140
|
+
view
|
165
141
|
{
|
166
142
|
// check stake amount > 0
|
167
143
|
if (dipAmount.eqz()) {
|
168
144
|
revert IStaking.ErrorStakingStakeAmountZero(targetNftId);
|
169
145
|
}
|
170
146
|
|
171
|
-
|
147
|
+
Amount stakeLimitAmount = stakingReader.getTargetMaxStakedAmount(targetNftId);
|
148
|
+
if (dipAmount > stakeLimitAmount) {
|
149
|
+
revert IStaking.ErrorStakingTargetMaxStakedAmountExceeded(targetNftId, stakeLimitAmount, dipAmount);
|
150
|
+
}
|
172
151
|
}
|
173
152
|
|
174
153
|
function calculateRewardIncrease(
|
@@ -179,28 +158,20 @@ library StakeManagerLib {
|
|
179
158
|
public
|
180
159
|
view
|
181
160
|
returns (
|
182
|
-
Amount rewardIncreaseAmount
|
183
|
-
Amount totalDipAmount
|
161
|
+
Amount rewardIncreaseAmount
|
184
162
|
)
|
185
163
|
{
|
186
|
-
(
|
187
|
-
Amount stakeAmount,
|
188
|
-
Amount rewardAmount,
|
189
|
-
Timestamp lastUpdatedAt
|
190
|
-
) = stakingReader.getStakeBalances(stakeNftId);
|
164
|
+
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
191
165
|
|
192
166
|
Seconds duration = SecondsLib.toSeconds(
|
193
|
-
block.timestamp -
|
167
|
+
block.timestamp - stakeInfo.lastUpdateAt.toInt());
|
194
168
|
|
195
169
|
rewardIncreaseAmount = calculateRewardAmount(
|
196
170
|
rewardRate,
|
197
171
|
duration,
|
198
|
-
|
199
|
-
|
200
|
-
totalDipAmount = stakeAmount + rewardAmount + rewardIncreaseAmount;
|
172
|
+
stakeInfo.stakedAmount);
|
201
173
|
}
|
202
174
|
|
203
|
-
|
204
175
|
function calculateRewardAmount(
|
205
176
|
UFixed rewardRate,
|
206
177
|
Seconds duration,
|
@@ -16,8 +16,9 @@ contract StakingManager is
|
|
16
16
|
/// @dev initializes proxy manager with service implementation
|
17
17
|
constructor(
|
18
18
|
address registry,
|
19
|
-
address
|
19
|
+
address targetHandler,
|
20
20
|
address stakingStore,
|
21
|
+
address tokenRegistry,
|
21
22
|
address initialOwner,
|
22
23
|
bytes32 salt
|
23
24
|
)
|
@@ -27,9 +28,9 @@ contract StakingManager is
|
|
27
28
|
_initialImplementation = address(stakingImplementation);
|
28
29
|
_initializationData = abi.encode(
|
29
30
|
registry,
|
30
|
-
|
31
|
+
targetHandler,
|
31
32
|
stakingStore,
|
32
|
-
|
33
|
+
tokenRegistry);
|
33
34
|
|
34
35
|
IVersionable versionable = initialize(
|
35
36
|
registry,
|
@@ -7,14 +7,18 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
7
7
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
8
8
|
import {IStaking} from "../staking/IStaking.sol";
|
9
9
|
|
10
|
-
import {Amount} from "../type/Amount.sol";
|
10
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
11
11
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
12
|
+
import {ChainId} from "../type/ChainId.sol";
|
12
13
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {
|
14
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
15
|
+
import {Seconds} from "../type/Seconds.sol";
|
14
16
|
import {StakingStore} from "./StakingStore.sol";
|
17
|
+
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
15
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
16
19
|
import {UFixed} from "../type/UFixed.sol";
|
17
20
|
|
21
|
+
|
18
22
|
contract StakingReader is
|
19
23
|
IRegistryLinked,
|
20
24
|
Initializable
|
@@ -57,134 +61,111 @@ contract StakingReader is
|
|
57
61
|
return _staking;
|
58
62
|
}
|
59
63
|
|
60
|
-
function
|
61
|
-
return
|
64
|
+
function getProtocolNftId() external view returns (NftId protocolNftId) {
|
65
|
+
return _registry.getProtocolNftId();
|
62
66
|
}
|
63
67
|
|
64
68
|
|
65
69
|
function isTarget(NftId targetNftId) external view returns (bool) {
|
66
|
-
return _store.
|
70
|
+
return _store.getTargetSet().exists(targetNftId);
|
67
71
|
}
|
68
72
|
|
69
73
|
|
70
74
|
function targets() external view returns (uint256) {
|
71
|
-
return _store.
|
75
|
+
return _store.getTargetSet().nftIds();
|
72
76
|
}
|
73
77
|
|
74
78
|
|
75
79
|
function getTargetNftId(uint256 idx) external view returns (NftId) {
|
76
|
-
return _store.
|
80
|
+
return _store.getTargetSet().getNftId(idx);
|
77
81
|
}
|
78
82
|
|
79
83
|
|
80
|
-
function
|
81
|
-
return
|
84
|
+
function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
|
85
|
+
return _registry.getParentNftId(stakeNftId);
|
82
86
|
}
|
83
87
|
|
84
88
|
|
85
|
-
function
|
86
|
-
return _store.
|
89
|
+
function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
|
90
|
+
return _store.getStakeInfo(stakeNftId);
|
87
91
|
}
|
88
92
|
|
89
93
|
|
90
|
-
function
|
91
|
-
return _store.
|
94
|
+
function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
|
95
|
+
return _store.getTargetInfo(targetNftId);
|
92
96
|
}
|
93
97
|
|
94
98
|
|
95
|
-
function
|
96
|
-
return
|
99
|
+
function getLimitInfo(NftId targetNftId) public view returns (IStaking.LimitInfo memory info) {
|
100
|
+
return _store.getLimitInfo(targetNftId);
|
97
101
|
}
|
98
102
|
|
99
103
|
|
100
|
-
function
|
101
|
-
|
102
|
-
if (data.length > 0) {
|
103
|
-
return abi.decode(data, (IStaking.TargetInfo));
|
104
|
-
}
|
104
|
+
function getTvlInfo(NftId targetNftId, address token) public view returns (IStaking.TvlInfo memory info) {
|
105
|
+
return _store.getTvlInfo(targetNftId, token);
|
105
106
|
}
|
106
107
|
|
107
108
|
|
108
|
-
function
|
109
|
-
|
110
|
-
if (data.length > 0) {
|
111
|
-
return abi.decode(data, (IStaking.StakeInfo));
|
112
|
-
}
|
109
|
+
function getTokenInfo(ChainId chainId, address token) public view returns (IStaking.TokenInfo memory info) {
|
110
|
+
return _store.getTokenInfo(chainId, token);
|
113
111
|
}
|
114
112
|
|
115
113
|
|
116
|
-
|
117
|
-
|
118
|
-
targetNftId = getTargetNftId(stakeNftId);
|
119
|
-
rewardRate = getTargetInfo(targetNftId).rewardRate;
|
114
|
+
function isSupportedTargetType(ObjectType targetType) public view returns (bool) {
|
115
|
+
return _store.getSupportInfo(targetType).isSupported;
|
120
116
|
}
|
121
117
|
|
122
118
|
|
123
|
-
|
124
|
-
|
125
|
-
return getTargetInfo(targetNftId).rewardRate;
|
119
|
+
function getSupportInfo(ObjectType targetType) public view returns (IStaking.SupportInfo memory info) {
|
120
|
+
return _store.getSupportInfo(targetType);
|
126
121
|
}
|
127
122
|
|
128
|
-
|
129
|
-
|
130
|
-
|
123
|
+
|
124
|
+
/// @dev Get the locking period that applies to the specified stake NFT ID.
|
125
|
+
function getTargetLockingPeriod(NftId stakeNftId) external view returns (NftId targetNftId, Seconds lockingPeriod) {
|
126
|
+
targetNftId = getTargetNftId(stakeNftId);
|
127
|
+
lockingPeriod = getTargetInfo(targetNftId).lockingPeriod;
|
131
128
|
}
|
132
129
|
|
133
|
-
|
134
|
-
|
130
|
+
|
131
|
+
/// @dev Get the reward rate that applies to the specified stake NFT ID.
|
132
|
+
function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
|
133
|
+
targetNftId = getTargetNftId(stakeNftId);
|
134
|
+
rewardRate = getTargetInfo(targetNftId).rewardRate;
|
135
135
|
}
|
136
136
|
|
137
|
-
|
138
|
-
|
137
|
+
|
138
|
+
/// @dev Get the max staked amount allowed for the specified target NFT ID.
|
139
|
+
function getTargetMaxStakedAmount(NftId targetNftId) external view returns (Amount maxStakedAmount) {
|
140
|
+
return getTargetInfo(targetNftId).limitAmount;
|
139
141
|
}
|
140
142
|
|
141
|
-
|
142
|
-
|
143
|
+
|
144
|
+
/// @dev Get the reward rate for the specified target NFT ID.
|
145
|
+
function getLockingPeriod(NftId targetNftId) external view returns (Seconds lockingPeriod) {
|
146
|
+
return getTargetInfo(targetNftId).lockingPeriod;
|
143
147
|
}
|
144
148
|
|
145
|
-
|
146
|
-
|
149
|
+
|
150
|
+
/// @dev Get the reward rate for the specified target NFT ID.
|
151
|
+
function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
|
152
|
+
return getTargetInfo(targetNftId).rewardRate;
|
147
153
|
}
|
148
154
|
|
149
|
-
|
150
|
-
|
155
|
+
/// @dev returns the current reward reserve balance for the specified target.
|
156
|
+
function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
|
157
|
+
return getTargetInfo(targetNftId).reserveAmount;
|
151
158
|
}
|
152
159
|
|
153
|
-
function
|
154
|
-
return _store.
|
160
|
+
function getTotalValueLocked(NftId targetNftId, address token) external view returns (Amount totalValueLocked) {
|
161
|
+
return _store.getTvlInfo(targetNftId, token).tvlAmount;
|
155
162
|
}
|
156
163
|
|
157
|
-
function
|
158
|
-
|
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);
|
164
|
+
function getRequiredStakeBalance(NftId targetNftId) external view returns (Amount requiredStakedAmount) {
|
165
|
+
return _store.getRequiredStakeBalance(targetNftId, true);
|
173
166
|
}
|
174
167
|
|
175
|
-
function
|
176
|
-
|
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);
|
168
|
+
function getRequiredStakeBalance(NftId targetNftId, bool includeTargetTypeRequirements) external view returns (Amount requiredStakedAmount) {
|
169
|
+
return _store.getRequiredStakeBalance(targetNftId, includeTargetTypeRequirements);
|
189
170
|
}
|
190
171
|
}
|