@etherisc/gif-next 0.0.2-9a02a95-445 → 0.0.2-9a680f3-735
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 +85 -23
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -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 +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -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/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 +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +405 -1311
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +459 -166
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +393 -2950
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1591 -584
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +504 -476
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +349 -139
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- 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 +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -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 +774 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +235 -302
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +310 -244
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +178 -185
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +677 -112
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +325 -229
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1017 -150
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +312 -336
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +341 -123
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- 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 +1337 -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 +352 -101
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → shared/Component.sol/Component.json} +374 -336
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1532 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +172 -208
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +289 -110
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
- 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 +46 -26
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
- 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 +797 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
- 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 +81 -30
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1454 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1149 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1846 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +440 -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 +792 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +536 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1362 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
- 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 +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- 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 +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -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 +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- 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 +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -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/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +289 -0
- package/contracts/distribution/DistributionService.sol +358 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +101 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +95 -52
- package/contracts/instance/IInstanceService.sol +68 -19
- package/contracts/instance/Instance.sol +205 -384
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +402 -80
- package/contracts/instance/InstanceService.sol +379 -213
- package/contracts/instance/InstanceServiceManager.sol +14 -32
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +8 -5
- package/contracts/instance/module/IPolicy.sol +59 -19
- package/contracts/instance/module/IRisk.sol +4 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -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 +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +115 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +757 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +259 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +632 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +66 -0
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +30 -0
- package/contracts/product/PolicyService.sol +664 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +304 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +469 -0
- package/contracts/product/RiskService.sol +144 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +82 -35
- package/contracts/registry/IRegistry.sol +122 -37
- package/contracts/registry/IRegistryService.sol +40 -28
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +555 -273
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +266 -0
- package/contracts/registry/RegistryService.sol +116 -233
- package/contracts/registry/RegistryServiceManager.sol +26 -53
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +329 -0
- package/contracts/registry/TokenRegistry.sol +261 -59
- package/contracts/shared/Component.sol +227 -0
- package/contracts/shared/ComponentService.sol +689 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +61 -0
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +15 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +25 -5
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +197 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +75 -82
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +54 -38
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +43 -33
- package/contracts/shared/TokenHandler.sol +327 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +168 -0
- package/contracts/staking/Staking.sol +530 -0
- package/contracts/staking/StakingLib.sol +273 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +175 -0
- package/contracts/staking/StakingService.sol +453 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +28 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +294 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +33 -19
- package/contracts/{types → type}/UFixed.sol +41 -121
- package/contracts/{types → type}/Version.sol +59 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +232 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +12 -8
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -368
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -855
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1142
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
- 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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -132
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -31
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -271
- package/contracts/components/Product.sol +0 -292
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/BundleManager.sol +0 -129
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceAccessManager.sol +0 -339
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/ObjectManager.sol +0 -101
- package/contracts/instance/base/ComponentServiceBase.sol +0 -72
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/IAccess.sol +0 -38
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -260
- package/contracts/instance/service/BundleServiceManager.sol +0 -54
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -118
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IBundleService.sol +0 -45
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -87
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -508
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -124
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -173
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -92
@@ -0,0 +1,168 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {IStaking} from "./IStaking.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
12
|
+
import {UFixed} from "../type/UFixed.sol";
|
13
|
+
|
14
|
+
|
15
|
+
interface IStakingService is IService
|
16
|
+
{
|
17
|
+
|
18
|
+
event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
|
19
|
+
event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
|
20
|
+
event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
|
21
|
+
event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
22
|
+
|
23
|
+
event LogStakingServiceRewardReservesIncreased(NftId targetNftId, address rewardProvider, Amount dipAmount, Amount newBalance);
|
24
|
+
event LogStakingServiceRewardReservesDecreased(NftId targetNftId, address targetOwner, Amount dipAmount, Amount newBalance);
|
25
|
+
|
26
|
+
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
27
|
+
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
|
28
|
+
event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
|
29
|
+
event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
|
30
|
+
|
31
|
+
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
32
|
+
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
33
|
+
|
34
|
+
// modifiers
|
35
|
+
error ErrorStakingServiceNotStakingOwner(address account);
|
36
|
+
error ErrorStakingServiceNotStaking(address stakingAddress);
|
37
|
+
error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
|
38
|
+
|
39
|
+
// create
|
40
|
+
error ErrorStakingServiceTargetUnknown(NftId targetNftId);
|
41
|
+
error ErrorStakingServiceZeroTargetNftId();
|
42
|
+
error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
|
43
|
+
error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
|
44
|
+
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
45
|
+
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
46
|
+
|
47
|
+
/// @dev Set the protocol reward rate stake locking period to the specified duration.
|
48
|
+
/// Permissioned: only staking owner
|
49
|
+
// TODO implement
|
50
|
+
// function setProtocolRewardRate(UFixed rewardRate) external;
|
51
|
+
// function setProtocolLockingPeriod(Seconds lockingPeriod) external;
|
52
|
+
// TODO also make sure that protocol rewards can be refilled and withdrawn
|
53
|
+
|
54
|
+
/// @dev Approves the staking token handler.
|
55
|
+
/// Reverts if the staking token handler wallet is not the token handler itself.
|
56
|
+
function approveTokenHandler(
|
57
|
+
IERC20Metadata token,
|
58
|
+
Amount amount
|
59
|
+
) external;
|
60
|
+
|
61
|
+
/// @dev creates/registers an on-chain instance staking target.
|
62
|
+
/// function granted to instance service
|
63
|
+
function createInstanceTarget(
|
64
|
+
NftId targetNftId,
|
65
|
+
Seconds initialLockingPeriod,
|
66
|
+
UFixed initialRewardRate
|
67
|
+
) external;
|
68
|
+
|
69
|
+
/// @dev Set the instance stake locking period to the specified duration.
|
70
|
+
/// Permissioned: Only owner of the specified target.
|
71
|
+
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
|
72
|
+
|
73
|
+
/// @dev Set the instance reward rate to the specified value.
|
74
|
+
/// Permissioned: Only owner of the specified target.
|
75
|
+
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
|
76
|
+
|
77
|
+
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
|
78
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
79
|
+
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
|
80
|
+
|
81
|
+
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the sender
|
82
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
83
|
+
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
84
|
+
|
85
|
+
/// @dev Defunds the staking reward reserves for the specified target
|
86
|
+
/// Permissioned: only the target owner may call this function
|
87
|
+
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
|
88
|
+
|
89
|
+
/// @dev create a new stake with amount DIP to the specified target
|
90
|
+
/// returns the id of the newly minted stake nft
|
91
|
+
/// permissionless function
|
92
|
+
function create(
|
93
|
+
NftId targetNftId,
|
94
|
+
Amount amount
|
95
|
+
)
|
96
|
+
external
|
97
|
+
returns (
|
98
|
+
NftId stakeNftId
|
99
|
+
);
|
100
|
+
|
101
|
+
|
102
|
+
/// @dev increase an existing stake by amount DIP
|
103
|
+
/// updates and restakes the staking reward amount
|
104
|
+
/// function restricted to the current stake owner
|
105
|
+
function stake(
|
106
|
+
NftId stakeNftId,
|
107
|
+
Amount amount
|
108
|
+
)
|
109
|
+
external;
|
110
|
+
|
111
|
+
|
112
|
+
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
113
|
+
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
114
|
+
/// function restricted to the current stake owner
|
115
|
+
function restakeToNewTarget(
|
116
|
+
NftId stakeNftId,
|
117
|
+
NftId newTargetNftId
|
118
|
+
)
|
119
|
+
external
|
120
|
+
returns (
|
121
|
+
NftId newStakeNftId,
|
122
|
+
Amount newStakeBalance
|
123
|
+
);
|
124
|
+
|
125
|
+
|
126
|
+
/// @dev updates the reward balance of the stake using the current reward rate.
|
127
|
+
function updateRewards(
|
128
|
+
NftId stakeNftId
|
129
|
+
)
|
130
|
+
external;
|
131
|
+
|
132
|
+
|
133
|
+
/// @dev claims all available rewards.
|
134
|
+
function claimRewards(
|
135
|
+
NftId stakeNftId
|
136
|
+
)
|
137
|
+
external;
|
138
|
+
|
139
|
+
|
140
|
+
/// @dev unstakes all dips (stakes and rewards) of an existing stake.
|
141
|
+
/// function restricted to the current stake owner
|
142
|
+
function unstake(
|
143
|
+
NftId stakeNftId
|
144
|
+
)
|
145
|
+
external;
|
146
|
+
|
147
|
+
|
148
|
+
/// @dev sets total value locked data for a target contract on a different chain.
|
149
|
+
/// this is done via CCIP (cross chain communication)
|
150
|
+
function setTotalValueLocked(
|
151
|
+
NftId targetNftId,
|
152
|
+
address token,
|
153
|
+
Amount amount
|
154
|
+
)
|
155
|
+
external;
|
156
|
+
|
157
|
+
function getDipToken()
|
158
|
+
external
|
159
|
+
returns (IERC20Metadata dip);
|
160
|
+
|
161
|
+
function getTokenHandler()
|
162
|
+
external
|
163
|
+
returns (TokenHandler tokenHandler);
|
164
|
+
|
165
|
+
function getStaking()
|
166
|
+
external
|
167
|
+
returns (IStaking staking);
|
168
|
+
}
|
@@ -0,0 +1,530 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
8
|
+
import {IStaking} from "./IStaking.sol";
|
9
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
10
|
+
|
11
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
12
|
+
import {Component} from "../shared/Component.sol";
|
13
|
+
import {IComponent} from "../shared/IComponent.sol";
|
14
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
16
|
+
import {ObjectType, STAKE, STAKING} from "../type/ObjectType.sol";
|
17
|
+
import {Seconds} from "../type/Seconds.sol";
|
18
|
+
import {Registerable} from "../shared/Registerable.sol";
|
19
|
+
import {StakingLib} from "./StakingLib.sol";
|
20
|
+
import {StakingReader} from "./StakingReader.sol";
|
21
|
+
import {StakingStore} from "./StakingStore.sol";
|
22
|
+
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
23
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
24
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
26
|
+
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
27
|
+
import {UFixed} from "../type/UFixed.sol";
|
28
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
29
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
30
|
+
|
31
|
+
contract Staking is
|
32
|
+
Component,
|
33
|
+
Versionable,
|
34
|
+
IStaking
|
35
|
+
{
|
36
|
+
string public constant CONTRACT_NAME = "Staking";
|
37
|
+
|
38
|
+
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
|
39
|
+
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
40
|
+
|
41
|
+
struct StakingStorage {
|
42
|
+
TokenRegistry _tokenRegistry;
|
43
|
+
TokenHandler _tokenHandler;
|
44
|
+
StakingStore _store;
|
45
|
+
StakingReader _reader;
|
46
|
+
NftId _protocolNftId;
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
modifier onlyStake(NftId stakeNftId) {
|
51
|
+
if (!_getStakingStorage()._store.exists(stakeNftId)) {
|
52
|
+
revert ErrorStakingNotStake(stakeNftId);
|
53
|
+
}
|
54
|
+
_;
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
modifier onlyTarget(NftId targetNftId) {
|
59
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
60
|
+
revert ErrorStakingNotTarget(targetNftId);
|
61
|
+
}
|
62
|
+
_;
|
63
|
+
}
|
64
|
+
|
65
|
+
function initializeTokenHandler()
|
66
|
+
external
|
67
|
+
{
|
68
|
+
if (msg.sender != address(getRegistry())) {
|
69
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
70
|
+
}
|
71
|
+
|
72
|
+
StakingStorage storage $ = _getStakingStorage();
|
73
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
74
|
+
address(getRegistry()),
|
75
|
+
address(this),
|
76
|
+
address(getToken()),
|
77
|
+
getRegistry().getAuthority());
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
82
|
+
public
|
83
|
+
restricted()
|
84
|
+
onlyOwner()
|
85
|
+
{
|
86
|
+
_approveTokenHandler(token, amount);
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
// set/update staking reader
|
91
|
+
function setStakingReader(StakingReader stakingReader)
|
92
|
+
external
|
93
|
+
virtual
|
94
|
+
onlyOwner()
|
95
|
+
{
|
96
|
+
if(stakingReader.getStaking() != IStaking(this)) {
|
97
|
+
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
98
|
+
}
|
99
|
+
|
100
|
+
_getStakingStorage()._reader = stakingReader;
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
// rate management
|
105
|
+
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
106
|
+
external
|
107
|
+
virtual
|
108
|
+
onlyOwner()
|
109
|
+
{
|
110
|
+
StakingStorage storage $ = _getStakingStorage();
|
111
|
+
|
112
|
+
if (!$._tokenRegistry.isRegistered(chainId, token)) {
|
113
|
+
revert ErrorStakingTokenNotRegistered(chainId, token);
|
114
|
+
}
|
115
|
+
|
116
|
+
UFixed oldStakingRate = $._store.getStakingRate(chainId, token);
|
117
|
+
$._store.setStakingRate(chainId, token, stakingRate);
|
118
|
+
|
119
|
+
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
120
|
+
}
|
121
|
+
|
122
|
+
// target management
|
123
|
+
|
124
|
+
function registerTarget(
|
125
|
+
NftId targetNftId,
|
126
|
+
ObjectType expectedObjectType,
|
127
|
+
uint256 chainId,
|
128
|
+
Seconds initialLockingPeriod,
|
129
|
+
UFixed initialRewardRate
|
130
|
+
)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
restricted()
|
134
|
+
{
|
135
|
+
TargetManagerLib.checkTargetParameters(
|
136
|
+
getRegistry(),
|
137
|
+
_getStakingStorage()._reader,
|
138
|
+
targetNftId,
|
139
|
+
expectedObjectType,
|
140
|
+
initialLockingPeriod,
|
141
|
+
initialRewardRate);
|
142
|
+
|
143
|
+
_getStakingStorage()._store.createTarget(
|
144
|
+
targetNftId,
|
145
|
+
TargetInfo({
|
146
|
+
objectType: expectedObjectType,
|
147
|
+
chainId: chainId,
|
148
|
+
lockingPeriod: initialLockingPeriod,
|
149
|
+
rewardRate: initialRewardRate}));
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
function setLockingPeriod(
|
154
|
+
NftId targetNftId,
|
155
|
+
Seconds lockingPeriod
|
156
|
+
)
|
157
|
+
external
|
158
|
+
virtual
|
159
|
+
restricted()
|
160
|
+
onlyTarget(targetNftId)
|
161
|
+
{
|
162
|
+
(
|
163
|
+
Seconds oldLockingPeriod,
|
164
|
+
TargetInfo memory targetInfo
|
165
|
+
) = TargetManagerLib.updateLockingPeriod(
|
166
|
+
this,
|
167
|
+
targetNftId,
|
168
|
+
lockingPeriod);
|
169
|
+
|
170
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
171
|
+
|
172
|
+
emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
|
173
|
+
}
|
174
|
+
|
175
|
+
// TODO add function to set protocol reward rate: onlyOwner
|
176
|
+
// get protocol nft id (from where)
|
177
|
+
|
178
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
179
|
+
external
|
180
|
+
virtual
|
181
|
+
restricted()
|
182
|
+
onlyTarget(targetNftId)
|
183
|
+
{
|
184
|
+
(
|
185
|
+
UFixed oldRewardRate,
|
186
|
+
TargetInfo memory targetInfo
|
187
|
+
) = TargetManagerLib.updateRewardRate(
|
188
|
+
this,
|
189
|
+
targetNftId,
|
190
|
+
rewardRate);
|
191
|
+
|
192
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
193
|
+
|
194
|
+
emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
|
195
|
+
}
|
196
|
+
|
197
|
+
|
198
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
199
|
+
external
|
200
|
+
virtual
|
201
|
+
restricted()
|
202
|
+
returns (Amount newBalance)
|
203
|
+
{
|
204
|
+
// update book keeping of reward reserves
|
205
|
+
StakingStorage storage $ = _getStakingStorage();
|
206
|
+
newBalance = $._store.increaseReserves(targetNftId, dipAmount);
|
207
|
+
}
|
208
|
+
|
209
|
+
|
210
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
|
211
|
+
external
|
212
|
+
virtual
|
213
|
+
restricted()
|
214
|
+
returns (Amount newBalance)
|
215
|
+
{
|
216
|
+
// update book keeping of reward reserves
|
217
|
+
StakingStorage storage $ = _getStakingStorage();
|
218
|
+
newBalance = $._store.decreaseReserves(targetNftId, dipAmount);
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
223
|
+
external
|
224
|
+
virtual
|
225
|
+
restricted() // only pool service
|
226
|
+
returns (Amount newBalance)
|
227
|
+
{
|
228
|
+
StakingStorage storage $ = _getStakingStorage();
|
229
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
230
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
231
|
+
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
232
|
+
}
|
233
|
+
|
234
|
+
|
235
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
|
236
|
+
external
|
237
|
+
virtual
|
238
|
+
restricted() // only pool service
|
239
|
+
returns (Amount newBalance)
|
240
|
+
{
|
241
|
+
StakingStorage storage $ = _getStakingStorage();
|
242
|
+
uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
243
|
+
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
244
|
+
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
245
|
+
}
|
246
|
+
|
247
|
+
|
248
|
+
function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
|
249
|
+
external
|
250
|
+
virtual
|
251
|
+
restricted()
|
252
|
+
onlyOwner // or CCIP
|
253
|
+
{
|
254
|
+
|
255
|
+
}
|
256
|
+
|
257
|
+
function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
|
258
|
+
external
|
259
|
+
virtual
|
260
|
+
restricted()
|
261
|
+
onlyOwner // or CCIP
|
262
|
+
{
|
263
|
+
|
264
|
+
}
|
265
|
+
|
266
|
+
//--- staking functions -------------------------------------------------//
|
267
|
+
|
268
|
+
function createStake(
|
269
|
+
NftId stakeNftId,
|
270
|
+
NftId targetNftId,
|
271
|
+
Amount stakeAmount
|
272
|
+
)
|
273
|
+
external
|
274
|
+
virtual
|
275
|
+
restricted() // only staking service
|
276
|
+
{
|
277
|
+
StakingStorage storage $ = _getStakingStorage();
|
278
|
+
Timestamp lockedUntil = StakingLib.checkCreateParameters(
|
279
|
+
$._reader,
|
280
|
+
targetNftId,
|
281
|
+
stakeAmount);
|
282
|
+
|
283
|
+
// create new stake
|
284
|
+
$._store.create(
|
285
|
+
stakeNftId,
|
286
|
+
StakeInfo({
|
287
|
+
lockedUntil: lockedUntil}));
|
288
|
+
|
289
|
+
// update target stake balance
|
290
|
+
$._store.increaseStake(
|
291
|
+
stakeNftId,
|
292
|
+
targetNftId,
|
293
|
+
stakeAmount);
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
function stake(
|
298
|
+
NftId stakeNftId,
|
299
|
+
Amount stakeAmount
|
300
|
+
)
|
301
|
+
external
|
302
|
+
virtual
|
303
|
+
restricted() // only staking service
|
304
|
+
onlyStake(stakeNftId)
|
305
|
+
returns (Amount stakeBalance)
|
306
|
+
{
|
307
|
+
StakingStorage storage $ = _getStakingStorage();
|
308
|
+
stakeBalance = StakingLib.stake(
|
309
|
+
getRegistry(),
|
310
|
+
$._reader,
|
311
|
+
$._store,
|
312
|
+
stakeNftId,
|
313
|
+
stakeAmount);
|
314
|
+
}
|
315
|
+
|
316
|
+
|
317
|
+
function restake(
|
318
|
+
NftId stakeNftId,
|
319
|
+
NftId newStakeNftId
|
320
|
+
)
|
321
|
+
external
|
322
|
+
virtual
|
323
|
+
restricted() // only staking service
|
324
|
+
onlyStake(stakeNftId)
|
325
|
+
returns (Amount newStakeBalance)
|
326
|
+
{
|
327
|
+
_checkNftType(stakeNftId, STAKE());
|
328
|
+
_checkNftType(newStakeNftId, STAKE());
|
329
|
+
|
330
|
+
// TODO add check that allows additional staking amount
|
331
|
+
StakingStorage storage $ = _getStakingStorage();
|
332
|
+
newStakeBalance = StakingLib.restake(
|
333
|
+
$._reader,
|
334
|
+
$._store,
|
335
|
+
stakeNftId,
|
336
|
+
newStakeNftId);
|
337
|
+
}
|
338
|
+
|
339
|
+
function updateRewards(NftId stakeNftId)
|
340
|
+
external
|
341
|
+
virtual
|
342
|
+
restricted() // only staking service
|
343
|
+
onlyStake(stakeNftId)
|
344
|
+
{
|
345
|
+
StakingStorage storage $ = _getStakingStorage();
|
346
|
+
_updateRewards($._reader, $._store, stakeNftId);
|
347
|
+
}
|
348
|
+
|
349
|
+
|
350
|
+
function claimRewards(NftId stakeNftId)
|
351
|
+
external
|
352
|
+
virtual
|
353
|
+
restricted() // only staking service
|
354
|
+
onlyStake(stakeNftId)
|
355
|
+
returns (
|
356
|
+
Amount rewardsClaimedAmount
|
357
|
+
)
|
358
|
+
{
|
359
|
+
StakingStorage storage $ = _getStakingStorage();
|
360
|
+
|
361
|
+
// update rewards since last update
|
362
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
363
|
+
|
364
|
+
// unstake all available rewards
|
365
|
+
rewardsClaimedAmount = $._store.claimUpTo(
|
366
|
+
stakeNftId,
|
367
|
+
targetNftId,
|
368
|
+
AmountLib.max());
|
369
|
+
|
370
|
+
// update reward reserves
|
371
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
372
|
+
}
|
373
|
+
|
374
|
+
|
375
|
+
function unstake(NftId stakeNftId)
|
376
|
+
external
|
377
|
+
virtual
|
378
|
+
restricted() // only staking service
|
379
|
+
onlyStake(stakeNftId)
|
380
|
+
returns (
|
381
|
+
Amount unstakedAmount,
|
382
|
+
Amount rewardsClaimedAmount
|
383
|
+
)
|
384
|
+
{
|
385
|
+
StakingStorage storage $ = _getStakingStorage();
|
386
|
+
|
387
|
+
StakingLib.checkUnstakeParameters($._reader, stakeNftId);
|
388
|
+
|
389
|
+
// update rewards since last update
|
390
|
+
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
391
|
+
|
392
|
+
// unstake all available dips
|
393
|
+
(
|
394
|
+
unstakedAmount,
|
395
|
+
rewardsClaimedAmount
|
396
|
+
) = $._store.unstakeUpTo(
|
397
|
+
stakeNftId,
|
398
|
+
targetNftId,
|
399
|
+
AmountLib.max(), // unstake all stakes
|
400
|
+
AmountLib.max()); // claim all rewards
|
401
|
+
|
402
|
+
// update reward reserves
|
403
|
+
$._store.decreaseReserves(targetNftId, rewardsClaimedAmount);
|
404
|
+
}
|
405
|
+
|
406
|
+
|
407
|
+
//--- view functions ----------------------------------------------------//
|
408
|
+
|
409
|
+
function getStakingReader() public view returns (StakingReader reader) {
|
410
|
+
return _getStakingStorage()._reader;
|
411
|
+
}
|
412
|
+
|
413
|
+
function getStakingStore() external view returns (StakingStore stakingStore) {
|
414
|
+
return _getStakingStorage()._store;
|
415
|
+
}
|
416
|
+
|
417
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
418
|
+
return address(_getStakingStorage()._tokenRegistry);
|
419
|
+
}
|
420
|
+
|
421
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
422
|
+
return _getStakingStorage()._tokenHandler;
|
423
|
+
}
|
424
|
+
|
425
|
+
// from IRegisterable
|
426
|
+
function getRelease()
|
427
|
+
public
|
428
|
+
pure
|
429
|
+
virtual override (IRelease, Registerable)
|
430
|
+
returns(VersionPart)
|
431
|
+
{
|
432
|
+
return VersionPartLib.toVersionPart(3);
|
433
|
+
}
|
434
|
+
|
435
|
+
// from IVersionable
|
436
|
+
function getVersion()
|
437
|
+
public
|
438
|
+
pure
|
439
|
+
virtual override (Component, IVersionable, Versionable)
|
440
|
+
returns(Version)
|
441
|
+
{
|
442
|
+
return VersionLib.toVersion(3,0,0);
|
443
|
+
}
|
444
|
+
|
445
|
+
//--- internal functions ------------------------------------------------//
|
446
|
+
|
447
|
+
function _updateRewards(
|
448
|
+
StakingReader reader,
|
449
|
+
StakingStore store,
|
450
|
+
NftId stakeNftId
|
451
|
+
)
|
452
|
+
internal
|
453
|
+
virtual
|
454
|
+
returns (NftId targetNftId)
|
455
|
+
{
|
456
|
+
UFixed rewardRate;
|
457
|
+
|
458
|
+
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
459
|
+
(Amount rewardIncrement, ) = StakingLib.calculateRewardIncrease(
|
460
|
+
reader,
|
461
|
+
stakeNftId,
|
462
|
+
rewardRate);
|
463
|
+
|
464
|
+
store.updateRewards(
|
465
|
+
stakeNftId,
|
466
|
+
targetNftId,
|
467
|
+
rewardIncrement);
|
468
|
+
}
|
469
|
+
|
470
|
+
|
471
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
472
|
+
internal
|
473
|
+
virtual override
|
474
|
+
{
|
475
|
+
IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
|
476
|
+
token,
|
477
|
+
amount);
|
478
|
+
}
|
479
|
+
|
480
|
+
|
481
|
+
function _initialize(
|
482
|
+
address owner,
|
483
|
+
bytes memory data
|
484
|
+
)
|
485
|
+
internal
|
486
|
+
virtual override
|
487
|
+
initializer()
|
488
|
+
{
|
489
|
+
(
|
490
|
+
address registryAddress,
|
491
|
+
address tokenRegistryAddress,
|
492
|
+
address stakingStoreAddress,
|
493
|
+
address stakingOwner
|
494
|
+
) = abi.decode(data, (address, address, address, address));
|
495
|
+
|
496
|
+
// only admin(authority) and dip token address are set in registry at this point
|
497
|
+
IRegistry registry = IRegistry(registryAddress);
|
498
|
+
address authority = registry.getAuthority();
|
499
|
+
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
500
|
+
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
501
|
+
|
502
|
+
// wiring to external contracts
|
503
|
+
StakingStorage storage $ = _getStakingStorage();
|
504
|
+
$._protocolNftId = registry.getProtocolNftId();
|
505
|
+
$._store = StakingStore(stakingStoreAddress);
|
506
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
507
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
508
|
+
|
509
|
+
_initializeComponent(
|
510
|
+
authority,
|
511
|
+
registryAddress,
|
512
|
+
registry.getNftId(), // parent nft id
|
513
|
+
CONTRACT_NAME,
|
514
|
+
dipTokenAddress,
|
515
|
+
STAKING(),
|
516
|
+
false, // is interceptor
|
517
|
+
stakingOwner,
|
518
|
+
"", // registry data
|
519
|
+
""); // component data
|
520
|
+
|
521
|
+
_registerInterface(type(IStaking).interfaceId);
|
522
|
+
}
|
523
|
+
|
524
|
+
|
525
|
+
function _getStakingStorage() private pure returns (StakingStorage storage $) {
|
526
|
+
assembly {
|
527
|
+
$.slot := STAKING_LOCATION_V1
|
528
|
+
}
|
529
|
+
}
|
530
|
+
}
|