@etherisc/gif-next 0.0.2-fbe6493-116 → 0.0.2-fc41a4e-906
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 +86 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +365 -113
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
- 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 +549 -209
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +171 -464
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +90 -356
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +472 -364
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +186 -128
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -198
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +287 -101
- 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 +1461 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1404 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +540 -65
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +290 -57
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +549 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1688 -735
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +303 -227
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +955 -640
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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 +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 +116 -333
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
- 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 +91 -140
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +92 -293
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +132 -333
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +195 -423
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +134 -132
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +90 -117
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +122 -182
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +317 -300
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +120 -332
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +506 -583
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +165 -115
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +192 -173
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +128 -98
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +254 -394
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +416 -290
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +150 -128
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +245 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +245 -233
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +335 -349
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +135 -129
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +224 -338
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -138
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +246 -386
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +342 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +548 -103
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +795 -394
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +80 -252
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +433 -697
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +140 -148
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +394 -300
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +91 -140
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +91 -292
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +544 -18
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +312 -133
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +418 -384
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +141 -110
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +91 -50
- 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 +35 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +94 -38
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +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 +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- 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/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -80
- 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/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +456 -267
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +159 -203
- package/contracts/authorization/IAccess.sol +25 -6
- package/contracts/authorization/IAccessAdmin.sol +87 -79
- package/contracts/authorization/IAuthorization.sol +9 -36
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +254 -24
- package/contracts/distribution/BasicDistribution.sol +20 -17
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +42 -90
- package/contracts/distribution/DistributionService.sol +229 -117
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +4 -11
- package/contracts/distribution/IDistributionService.sol +40 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +101 -42
- package/contracts/instance/IInstanceService.sol +52 -31
- package/contracts/instance/Instance.sol +189 -97
- package/contracts/instance/InstanceAdmin.sol +275 -158
- package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
- package/contracts/instance/InstanceReader.sol +477 -253
- package/contracts/instance/InstanceService.sol +284 -239
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +29 -13
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +49 -28
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +7 -19
- package/contracts/oracle/OracleService.sol +117 -85
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +32 -25
- package/contracts/pool/BasicPoolAuthorization.sol +33 -9
- package/contracts/pool/BundleService.sol +101 -144
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +15 -33
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +86 -71
- package/contracts/pool/Pool.sol +139 -124
- package/contracts/pool/PoolLib.sol +353 -0
- package/contracts/pool/PoolService.sol +346 -292
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +80 -31
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +10 -13
- package/contracts/product/BasicProductAuthorization.sol +32 -12
- package/contracts/product/ClaimService.sol +368 -154
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +43 -8
- package/contracts/product/IPolicyService.sol +38 -28
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +365 -323
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +85 -83
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +147 -91
- package/contracts/product/RiskService.sol +157 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +64 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +357 -203
- package/contracts/registry/RegistryAdmin.sol +110 -287
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +275 -240
- package/contracts/registry/ServiceAuthorizationV3.sol +201 -57
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +66 -137
- package/contracts/shared/ComponentService.sol +414 -376
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ContractLib.sol +311 -0
- package/contracts/shared/IComponent.sol +6 -19
- package/contracts/shared/IComponentService.sol +42 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +10 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -50
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +18 -54
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -35
- package/contracts/shared/TokenHandler.sol +309 -29
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +48 -20
- package/contracts/staking/IStakingService.sol +21 -11
- package/contracts/staking/Staking.sol +198 -109
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +40 -24
- package/contracts/staking/StakingService.sol +88 -27
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +8 -4
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +73 -37
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +12 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +37 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +81 -45
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -3,13 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount} from "../type/Amount.sol";
|
7
6
|
import {IService} from "../shared/IService.sol";
|
8
7
|
import {IStaking} from "./IStaking.sol";
|
8
|
+
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
9
10
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
11
11
|
import {Seconds} from "../type/Seconds.sol";
|
12
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
13
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
13
|
import {UFixed} from "../type/UFixed.sol";
|
15
14
|
|
@@ -28,28 +27,31 @@ interface IStakingService is IService
|
|
28
27
|
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
29
28
|
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
|
30
29
|
event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
|
30
|
+
event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
|
31
31
|
|
32
32
|
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
33
33
|
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
34
34
|
|
35
35
|
// modifiers
|
36
|
-
error
|
36
|
+
error ErrorStakingServiceNotStakingOwner(address account);
|
37
37
|
error ErrorStakingServiceNotStaking(address stakingAddress);
|
38
38
|
error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
|
39
39
|
|
40
40
|
// create
|
41
|
+
error ErrorStakingServiceTargetUnknown(NftId targetNftId);
|
41
42
|
error ErrorStakingServiceZeroTargetNftId();
|
42
43
|
error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
|
43
44
|
error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
|
44
45
|
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
45
46
|
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
46
47
|
|
47
|
-
|
48
|
-
///
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
|
49
|
+
/// @dev Approves the staking token handler.
|
50
|
+
/// Reverts if the staking token handler wallet is not the token handler itself.
|
51
|
+
function approveTokenHandler(
|
52
|
+
IERC20Metadata token,
|
53
|
+
Amount amount
|
54
|
+
) external;
|
53
55
|
|
54
56
|
/// @dev creates/registers an on-chain instance staking target.
|
55
57
|
/// function granted to instance service
|
@@ -67,6 +69,10 @@ interface IStakingService is IService
|
|
67
69
|
/// Permissioned: Only owner of the specified target.
|
68
70
|
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
|
69
71
|
|
72
|
+
/// @dev Set the instance max staked amount to the specified value.
|
73
|
+
/// Permissioned: Only owner of the specified target.
|
74
|
+
function setInstanceMaxStakedAmount(NftId instanceNftId, Amount maxStakingAmount) external;
|
75
|
+
|
70
76
|
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
|
71
77
|
/// unpermissioned: anybody may fill up staking reward reserves
|
72
78
|
function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
|
@@ -111,7 +117,8 @@ interface IStakingService is IService
|
|
111
117
|
)
|
112
118
|
external
|
113
119
|
returns (
|
114
|
-
NftId newStakeNftId
|
120
|
+
NftId newStakeNftId,
|
121
|
+
Amount newStakeBalance
|
115
122
|
);
|
116
123
|
|
117
124
|
|
@@ -148,13 +155,16 @@ interface IStakingService is IService
|
|
148
155
|
|
149
156
|
function getDipToken()
|
150
157
|
external
|
158
|
+
view
|
151
159
|
returns (IERC20Metadata dip);
|
152
160
|
|
153
161
|
function getTokenHandler()
|
154
162
|
external
|
163
|
+
view
|
155
164
|
returns (TokenHandler tokenHandler);
|
156
165
|
|
157
166
|
function getStaking()
|
158
167
|
external
|
168
|
+
view
|
159
169
|
returns (IStaking staking);
|
160
170
|
}
|
@@ -1,26 +1,31 @@
|
|
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
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
6
8
|
import {IStaking} from "./IStaking.sol";
|
7
9
|
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
10
|
|
9
11
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
12
|
import {Component} from "../shared/Component.sol";
|
11
13
|
import {IComponent} from "../shared/IComponent.sol";
|
14
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
15
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
16
|
+
import {ObjectType, STAKE, STAKING} from "../type/ObjectType.sol";
|
14
17
|
import {Seconds} from "../type/Seconds.sol";
|
15
|
-
import {
|
18
|
+
import {Registerable} from "../shared/Registerable.sol";
|
19
|
+
import {StakingLib} from "./StakingLib.sol";
|
16
20
|
import {StakingReader} from "./StakingReader.sol";
|
17
21
|
import {StakingStore} from "./StakingStore.sol";
|
18
22
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
19
23
|
import {Timestamp} from "../type/Timestamp.sol";
|
20
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
21
26
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
22
27
|
import {UFixed} from "../type/UFixed.sol";
|
23
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
24
29
|
import {Versionable} from "../upgradeability/Versionable.sol";
|
25
30
|
|
26
31
|
contract Staking is
|
@@ -29,13 +34,11 @@ contract Staking is
|
|
29
34
|
IStaking
|
30
35
|
{
|
31
36
|
string public constant CONTRACT_NAME = "Staking";
|
32
|
-
uint8 private constant GIF_MAJOR_VERSION = 3;
|
33
37
|
|
34
38
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
|
35
39
|
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
36
40
|
|
37
41
|
struct StakingStorage {
|
38
|
-
IRegistryService _registryService;
|
39
42
|
TokenRegistry _tokenRegistry;
|
40
43
|
TokenHandler _tokenHandler;
|
41
44
|
StakingStore _store;
|
@@ -59,24 +62,60 @@ contract Staking is
|
|
59
62
|
_;
|
60
63
|
}
|
61
64
|
|
62
|
-
|
63
|
-
|
65
|
+
//--- contract intitialization -------------------------------------------
|
66
|
+
|
67
|
+
function initializeTokenHandler()
|
64
68
|
external
|
65
69
|
virtual
|
66
|
-
onlyOwner()
|
67
70
|
{
|
68
|
-
if(
|
69
|
-
revert
|
71
|
+
if (msg.sender != address(getRegistry())) {
|
72
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
70
73
|
}
|
71
74
|
|
72
|
-
_getStakingStorage()
|
75
|
+
StakingStorage storage $ = _getStakingStorage();
|
76
|
+
address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
|
77
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
78
|
+
address(getRegistry()),
|
79
|
+
address(this),
|
80
|
+
dipToken,
|
81
|
+
getRegistry().getAuthority());
|
82
|
+
}
|
83
|
+
|
84
|
+
//--- staking owner functions -------------------------------------------//
|
85
|
+
|
86
|
+
// TODO also make sure that protocol rewards can be refilled and withdrawn
|
87
|
+
|
88
|
+
/// @inheritdoc IStaking
|
89
|
+
function setProtocolRewardRate(UFixed rewardRate)
|
90
|
+
external
|
91
|
+
virtual
|
92
|
+
restricted()
|
93
|
+
onlyOwner()
|
94
|
+
{
|
95
|
+
NftId protocolNftId = getRegistry().getProtocolNftId();
|
96
|
+
UFixed oldRewardRate = _updateRewardRate(protocolNftId, rewardRate);
|
97
|
+
emit LogStakingProtocolRewardRateSet(protocolNftId, oldRewardRate, rewardRate);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @inheritdoc IStaking
|
102
|
+
function setProtocolLockingPeriod(Seconds lockingPeriod)
|
103
|
+
external
|
104
|
+
virtual
|
105
|
+
restricted()
|
106
|
+
onlyOwner()
|
107
|
+
{
|
108
|
+
NftId protocolNftId = getRegistry().getProtocolNftId();
|
109
|
+
Seconds oldLockingPeriod = _updateLockingPeriod(protocolNftId, lockingPeriod);
|
110
|
+
emit LogStakingProtocolLockingPeriodSet(protocolNftId, oldLockingPeriod, lockingPeriod);
|
73
111
|
}
|
74
112
|
|
75
113
|
|
76
|
-
|
114
|
+
/// @inheritdoc IStaking
|
77
115
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
78
116
|
external
|
79
117
|
virtual
|
118
|
+
restricted()
|
80
119
|
onlyOwner()
|
81
120
|
{
|
82
121
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -91,7 +130,31 @@ contract Staking is
|
|
91
130
|
emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
|
92
131
|
}
|
93
132
|
|
94
|
-
|
133
|
+
|
134
|
+
/// @inheritdoc IStaking
|
135
|
+
function setStakingReader(StakingReader stakingReader)
|
136
|
+
external
|
137
|
+
virtual
|
138
|
+
onlyOwner()
|
139
|
+
{
|
140
|
+
if(stakingReader.getStaking() != IStaking(this)) {
|
141
|
+
revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
|
142
|
+
}
|
143
|
+
|
144
|
+
_getStakingStorage()._reader = stakingReader;
|
145
|
+
}
|
146
|
+
|
147
|
+
|
148
|
+
/// @inheritdoc IStaking
|
149
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
150
|
+
public
|
151
|
+
restricted()
|
152
|
+
onlyOwner()
|
153
|
+
{
|
154
|
+
_approveTokenHandler(token, amount);
|
155
|
+
}
|
156
|
+
|
157
|
+
//--- target management -------------------------------------------------//
|
95
158
|
|
96
159
|
function registerTarget(
|
97
160
|
NftId targetNftId,
|
@@ -118,7 +181,21 @@ contract Staking is
|
|
118
181
|
objectType: expectedObjectType,
|
119
182
|
chainId: chainId,
|
120
183
|
lockingPeriod: initialLockingPeriod,
|
121
|
-
rewardRate: initialRewardRate
|
184
|
+
rewardRate: initialRewardRate,
|
185
|
+
maxStakedAmount: AmountLib.max()}));
|
186
|
+
|
187
|
+
emit LogStakingTargetRegistered(targetNftId, expectedObjectType, initialLockingPeriod, initialRewardRate, AmountLib.max());
|
188
|
+
}
|
189
|
+
|
190
|
+
|
191
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate)
|
192
|
+
external
|
193
|
+
virtual
|
194
|
+
restricted()
|
195
|
+
onlyTarget(targetNftId)
|
196
|
+
{
|
197
|
+
UFixed oldRewardRate = _updateRewardRate(targetNftId, rewardRate);
|
198
|
+
emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
|
122
199
|
}
|
123
200
|
|
124
201
|
|
@@ -131,39 +208,24 @@ contract Staking is
|
|
131
208
|
restricted()
|
132
209
|
onlyTarget(targetNftId)
|
133
210
|
{
|
134
|
-
(
|
135
|
-
Seconds oldLockingPeriod,
|
136
|
-
TargetInfo memory targetInfo
|
137
|
-
) = TargetManagerLib.updateLockingPeriod(
|
138
|
-
this,
|
139
|
-
targetNftId,
|
140
|
-
lockingPeriod);
|
141
|
-
|
142
|
-
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
143
|
-
|
211
|
+
Seconds oldLockingPeriod = _updateLockingPeriod(targetNftId, lockingPeriod);
|
144
212
|
emit LogStakingLockingPeriodSet(targetNftId, oldLockingPeriod, lockingPeriod);
|
145
213
|
}
|
146
214
|
|
147
|
-
// TODO add function to set protocol reward rate: onlyOwner
|
148
|
-
// get protocol nft id (from where)
|
149
215
|
|
150
|
-
function
|
216
|
+
function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount)
|
151
217
|
external
|
152
218
|
virtual
|
153
219
|
restricted()
|
154
220
|
onlyTarget(targetNftId)
|
155
221
|
{
|
156
|
-
(
|
157
|
-
|
158
|
-
|
159
|
-
) = TargetManagerLib.updateRewardRate(
|
160
|
-
this,
|
161
|
-
targetNftId,
|
162
|
-
rewardRate);
|
222
|
+
IStaking.TargetInfo memory targetInfo = getStakingReader().getTargetInfo(targetNftId);
|
223
|
+
|
224
|
+
targetInfo.maxStakedAmount = maxStakedAmount;
|
163
225
|
|
164
226
|
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
165
227
|
|
166
|
-
emit
|
228
|
+
emit LogStakingMaxStakedAmountSet(targetNftId, maxStakedAmount);
|
167
229
|
}
|
168
230
|
|
169
231
|
|
@@ -198,7 +260,7 @@ contract Staking is
|
|
198
260
|
returns (Amount newBalance)
|
199
261
|
{
|
200
262
|
StakingStorage storage $ = _getStakingStorage();
|
201
|
-
|
263
|
+
uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
202
264
|
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
203
265
|
newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
204
266
|
}
|
@@ -211,7 +273,7 @@ contract Staking is
|
|
211
273
|
returns (Amount newBalance)
|
212
274
|
{
|
213
275
|
StakingStorage storage $ = _getStakingStorage();
|
214
|
-
|
276
|
+
uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
|
215
277
|
UFixed stakingRate = $._reader.getStakingRate(chainId, token);
|
216
278
|
newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
|
217
279
|
}
|
@@ -247,7 +309,7 @@ contract Staking is
|
|
247
309
|
restricted() // only staking service
|
248
310
|
{
|
249
311
|
StakingStorage storage $ = _getStakingStorage();
|
250
|
-
Timestamp lockedUntil =
|
312
|
+
Timestamp lockedUntil = StakingLib.checkCreateParameters(
|
251
313
|
$._reader,
|
252
314
|
targetNftId,
|
253
315
|
stakeAmount);
|
@@ -277,7 +339,7 @@ contract Staking is
|
|
277
339
|
returns (Amount stakeBalance)
|
278
340
|
{
|
279
341
|
StakingStorage storage $ = _getStakingStorage();
|
280
|
-
stakeBalance =
|
342
|
+
stakeBalance = StakingLib.stake(
|
281
343
|
getRegistry(),
|
282
344
|
$._reader,
|
283
345
|
$._store,
|
@@ -288,20 +350,25 @@ contract Staking is
|
|
288
350
|
|
289
351
|
function restake(
|
290
352
|
NftId stakeNftId,
|
291
|
-
NftId
|
353
|
+
NftId newStakeNftId
|
292
354
|
)
|
293
355
|
external
|
294
356
|
virtual
|
295
357
|
restricted() // only staking service
|
296
358
|
onlyStake(stakeNftId)
|
297
|
-
returns (
|
359
|
+
returns (Amount newStakeBalance)
|
298
360
|
{
|
361
|
+
_checkNftType(stakeNftId, STAKE());
|
362
|
+
_checkNftType(newStakeNftId, STAKE());
|
363
|
+
|
299
364
|
// TODO add check that allows additional staking amount
|
300
365
|
StakingStorage storage $ = _getStakingStorage();
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
366
|
+
newStakeBalance = StakingLib.restake(
|
367
|
+
$._reader,
|
368
|
+
$._store,
|
369
|
+
stakeNftId,
|
370
|
+
newStakeNftId);
|
371
|
+
}
|
305
372
|
|
306
373
|
function updateRewards(NftId stakeNftId)
|
307
374
|
external
|
@@ -349,9 +416,10 @@ contract Staking is
|
|
349
416
|
Amount rewardsClaimedAmount
|
350
417
|
)
|
351
418
|
{
|
352
|
-
// TODO add check that stake locking is in the past
|
353
419
|
StakingStorage storage $ = _getStakingStorage();
|
354
|
-
|
420
|
+
|
421
|
+
StakingLib.checkUnstakeParameters($._reader, stakeNftId);
|
422
|
+
|
355
423
|
// update rewards since last update
|
356
424
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
357
425
|
|
@@ -370,56 +438,17 @@ contract Staking is
|
|
370
438
|
}
|
371
439
|
|
372
440
|
|
373
|
-
|
374
|
-
//--- other functions ---------------------------------------------------//
|
375
|
-
|
376
|
-
function collectDipAmount(address from, Amount dipAmount)
|
377
|
-
external
|
378
|
-
restricted() // only staking service
|
379
|
-
{
|
380
|
-
TokenHandler tokenHandler = getTokenHandler();
|
381
|
-
address stakingWallet = getWallet();
|
382
|
-
|
383
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
384
|
-
getToken(),
|
385
|
-
from,
|
386
|
-
address(tokenHandler),
|
387
|
-
dipAmount);
|
388
|
-
|
389
|
-
// TODO: centralize token handling (issue #471)
|
390
|
-
tokenHandler.transfer(from, stakingWallet, dipAmount);
|
391
|
-
}
|
392
|
-
|
393
|
-
|
394
|
-
function transferDipAmount(address to, Amount dipAmount)
|
395
|
-
external
|
396
|
-
restricted() // only staking service
|
397
|
-
{
|
398
|
-
TokenHandler tokenHandler = getTokenHandler();
|
399
|
-
address stakingWallet = getWallet();
|
400
|
-
|
401
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
402
|
-
getToken(),
|
403
|
-
stakingWallet,
|
404
|
-
address(tokenHandler),
|
405
|
-
dipAmount);
|
406
|
-
|
407
|
-
// TODO: centralize token handling (issue #471)
|
408
|
-
tokenHandler.transfer(stakingWallet, to, dipAmount);
|
409
|
-
}
|
410
|
-
|
411
|
-
|
412
441
|
//--- view functions ----------------------------------------------------//
|
413
442
|
|
414
|
-
function getStakingReader() public view returns (StakingReader reader) {
|
443
|
+
function getStakingReader() public virtual view returns (StakingReader reader) {
|
415
444
|
return _getStakingStorage()._reader;
|
416
445
|
}
|
417
446
|
|
418
|
-
function getStakingStore() external view returns (StakingStore stakingStore) {
|
447
|
+
function getStakingStore() external virtual view returns (StakingStore stakingStore) {
|
419
448
|
return _getStakingStorage()._store;
|
420
449
|
}
|
421
450
|
|
422
|
-
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
451
|
+
function getTokenRegistryAddress() external virtual view returns (address tokenRegistry) {
|
423
452
|
return address(_getStakingStorage()._tokenRegistry);
|
424
453
|
}
|
425
454
|
|
@@ -427,18 +456,65 @@ contract Staking is
|
|
427
456
|
return _getStakingStorage()._tokenHandler;
|
428
457
|
}
|
429
458
|
|
430
|
-
// from
|
459
|
+
// from IRegisterable
|
460
|
+
function getRelease()
|
461
|
+
public
|
462
|
+
pure
|
463
|
+
virtual override (IRelease, Registerable)
|
464
|
+
returns(VersionPart)
|
465
|
+
{
|
466
|
+
return VersionPartLib.toVersionPart(3);
|
467
|
+
}
|
468
|
+
|
469
|
+
// from IVersionable
|
431
470
|
function getVersion()
|
432
471
|
public
|
433
472
|
pure
|
434
|
-
virtual override (IVersionable, Versionable)
|
473
|
+
virtual override (Component, IVersionable, Versionable)
|
435
474
|
returns(Version)
|
436
475
|
{
|
437
|
-
return VersionLib.toVersion(
|
476
|
+
return VersionLib.toVersion(3,0,0);
|
438
477
|
}
|
439
478
|
|
440
479
|
//--- internal functions ------------------------------------------------//
|
441
480
|
|
481
|
+
function _updateRewardRate(
|
482
|
+
NftId targetNftId,
|
483
|
+
UFixed rewardRate
|
484
|
+
)
|
485
|
+
internal
|
486
|
+
virtual
|
487
|
+
returns (UFixed oldRewardRate)
|
488
|
+
{
|
489
|
+
|
490
|
+
TargetInfo memory targetInfo;
|
491
|
+
(oldRewardRate, targetInfo) = TargetManagerLib.updateRewardRate(
|
492
|
+
this,
|
493
|
+
targetNftId,
|
494
|
+
rewardRate);
|
495
|
+
|
496
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
497
|
+
}
|
498
|
+
|
499
|
+
|
500
|
+
function _updateLockingPeriod(
|
501
|
+
NftId targetNftId,
|
502
|
+
Seconds lockingPeriod
|
503
|
+
)
|
504
|
+
internal
|
505
|
+
virtual
|
506
|
+
returns (Seconds oldLockingPeriod)
|
507
|
+
{
|
508
|
+
TargetInfo memory targetInfo;
|
509
|
+
(oldLockingPeriod, targetInfo) = TargetManagerLib.updateLockingPeriod(
|
510
|
+
this,
|
511
|
+
targetNftId,
|
512
|
+
lockingPeriod);
|
513
|
+
|
514
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
515
|
+
}
|
516
|
+
|
517
|
+
|
442
518
|
function _updateRewards(
|
443
519
|
StakingReader reader,
|
444
520
|
StakingStore store,
|
@@ -451,7 +527,7 @@ contract Staking is
|
|
451
527
|
UFixed rewardRate;
|
452
528
|
|
453
529
|
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
454
|
-
(Amount rewardIncrement, ) =
|
530
|
+
(Amount rewardIncrement, ) = StakingLib.calculateRewardIncrease(
|
455
531
|
reader,
|
456
532
|
stakeNftId,
|
457
533
|
rewardRate);
|
@@ -463,13 +539,26 @@ contract Staking is
|
|
463
539
|
}
|
464
540
|
|
465
541
|
|
542
|
+
function _approveTokenHandler(
|
543
|
+
IERC20Metadata token,
|
544
|
+
Amount amount)
|
545
|
+
internal
|
546
|
+
virtual override
|
547
|
+
{
|
548
|
+
IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
|
549
|
+
token,
|
550
|
+
amount);
|
551
|
+
}
|
552
|
+
|
553
|
+
|
554
|
+
/// @dev top level initializer (upgradable contract)
|
466
555
|
function _initialize(
|
467
|
-
address
|
556
|
+
address,
|
468
557
|
bytes memory data
|
469
558
|
)
|
470
559
|
internal
|
471
560
|
virtual override
|
472
|
-
initializer
|
561
|
+
initializer()
|
473
562
|
{
|
474
563
|
(
|
475
564
|
address registryAddress,
|
@@ -481,30 +570,30 @@ contract Staking is
|
|
481
570
|
// only admin(authority) and dip token address are set in registry at this point
|
482
571
|
IRegistry registry = IRegistry(registryAddress);
|
483
572
|
address authority = registry.getAuthority();
|
484
|
-
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
485
|
-
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
486
573
|
|
487
|
-
|
574
|
+
// wiring to external contracts
|
575
|
+
StakingStorage storage $ = _getStakingStorage();
|
576
|
+
$._protocolNftId = registry.getProtocolNftId();
|
577
|
+
$._store = StakingStore(stakingStoreAddress);
|
578
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
579
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
580
|
+
|
581
|
+
_initializeComponent(
|
488
582
|
authority,
|
489
583
|
registryAddress,
|
490
|
-
registry.getNftId(),
|
584
|
+
registry.getNftId(), // parent nft id
|
491
585
|
CONTRACT_NAME,
|
492
|
-
dipTokenAddress,
|
493
586
|
STAKING(),
|
494
587
|
false, // is interceptor
|
495
588
|
stakingOwner,
|
496
589
|
"", // registry data
|
497
590
|
""); // component data
|
498
591
|
|
499
|
-
//
|
500
|
-
|
501
|
-
|
502
|
-
$._store = StakingStore(stakingStoreAddress);
|
503
|
-
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
504
|
-
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
505
|
-
$._tokenHandler = new TokenHandler(address(getToken()));
|
592
|
+
// HINT: protocol target is created in the StakingStore constructor.
|
593
|
+
// This allows setting up the protocol target before the full
|
594
|
+
// staking authorization setup is in place.
|
506
595
|
|
507
|
-
|
596
|
+
_registerInterface(type(IStaking).interfaceId);
|
508
597
|
}
|
509
598
|
|
510
599
|
|