@etherisc/gif-next 0.0.2-d16f92c-416 → 0.0.2-d1ee1ae-450
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 +120 -8
- 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/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/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +404 -369
- 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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
- 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 +1225 -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 +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -605
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +487 -269
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +169 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +311 -67
- 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 +644 -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 +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 +1404 -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 +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 +644 -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 +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 +239 -55
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +155 -116
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +254 -182
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
- 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 +1153 -396
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -341
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -128
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +940 -754
- 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 +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 +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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
- 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 +121 -413
- 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 +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -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 +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +349 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +159 -105
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +705 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +208 -176
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +118 -100
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -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 +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- 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 +270 -268
- 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 +465 -307
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +155 -109
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +244 -329
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -140
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- 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 +367 -63
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- 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 +600 -127
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +666 -549
- 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 +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 +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 +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
- 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 +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +545 -569
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -132
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -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 +499 -252
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- 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 +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +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 +585 -12
- 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 +196 -143
- 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 +292 -393
- 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 +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- 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 +218 -182
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +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 +59 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +181 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -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 +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- 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 +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +261 -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 +57 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +124 -139
- package/contracts/distribution/DistributionService.sol +220 -126
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +19 -42
- package/contracts/distribution/IDistributionService.sol +44 -22
- 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 +130 -0
- package/contracts/instance/IInstance.sol +68 -49
- package/contracts/instance/IInstanceService.sol +34 -43
- package/contracts/instance/Instance.sol +164 -122
- package/contracts/instance/InstanceAdmin.sol +363 -244
- package/contracts/instance/InstanceAuthorizationV3.sol +236 -0
- package/contracts/instance/InstanceReader.sol +306 -48
- package/contracts/instance/InstanceService.sol +223 -200
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -6
- 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 +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +25 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +62 -53
- package/contracts/oracle/OracleService.sol +117 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +391 -256
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +102 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +58 -0
- package/contracts/product/ClaimService.sol +373 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +436 -271
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +69 -60
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +232 -140
- 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 +78 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -220
- package/contracts/registry/RegistryAdmin.sol +174 -249
- package/contracts/registry/RegistryAuthorization.sol +271 -0
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- 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 +192 -60
- package/contracts/registry/TokenRegistry.sol +12 -11
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +425 -381
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +26 -15
- package/contracts/staking/IStakingService.sol +31 -9
- package/contracts/staking/Staking.sol +125 -88
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +93 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +17 -24
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- 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 +80 -27
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +75 -94
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +9 -6
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- 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/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.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/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -80
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessAdmin.sol +0 -759
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessAdmin.sol +0 -168
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,29 +1,32 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {Component} from "../shared/Component.sol";
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
-
import {
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
9
8
|
import {IStaking} from "./IStaking.sol";
|
10
|
-
import {IVersionable} from "../
|
11
|
-
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
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";
|
18
20
|
import {StakingReader} from "./StakingReader.sol";
|
19
21
|
import {StakingStore} from "./StakingStore.sol";
|
20
22
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
21
|
-
import {Timestamp
|
23
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
22
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
23
26
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
24
|
-
import {UFixed
|
25
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
26
|
-
import {Versionable} from "../
|
27
|
+
import {UFixed} from "../type/UFixed.sol";
|
28
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
29
|
+
import {Versionable} from "../upgradeability/Versionable.sol";
|
27
30
|
|
28
31
|
contract Staking is
|
29
32
|
Component,
|
@@ -31,14 +34,13 @@ contract Staking is
|
|
31
34
|
IStaking
|
32
35
|
{
|
33
36
|
string public constant CONTRACT_NAME = "Staking";
|
34
|
-
uint8 private constant GIF_MAJOR_VERSION = 3;
|
35
37
|
|
36
38
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
|
37
39
|
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
38
40
|
|
39
41
|
struct StakingStorage {
|
40
|
-
IRegistryService _registryService;
|
41
42
|
TokenRegistry _tokenRegistry;
|
43
|
+
TokenHandler _tokenHandler;
|
42
44
|
StakingStore _store;
|
43
45
|
StakingReader _reader;
|
44
46
|
NftId _protocolNftId;
|
@@ -54,16 +56,45 @@ contract Staking is
|
|
54
56
|
|
55
57
|
|
56
58
|
modifier onlyTarget(NftId targetNftId) {
|
57
|
-
if (!_getStakingStorage()._store.
|
59
|
+
if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
|
58
60
|
revert ErrorStakingNotTarget(targetNftId);
|
59
61
|
}
|
60
62
|
_;
|
61
63
|
}
|
62
64
|
|
65
|
+
function initializeTokenHandler()
|
66
|
+
external
|
67
|
+
virtual
|
68
|
+
{
|
69
|
+
if (msg.sender != address(getRegistry())) {
|
70
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
71
|
+
}
|
72
|
+
|
73
|
+
StakingStorage storage $ = _getStakingStorage();
|
74
|
+
address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
|
75
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
76
|
+
address(getRegistry()),
|
77
|
+
address(this),
|
78
|
+
dipToken,
|
79
|
+
getRegistry().getAuthority());
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
84
|
+
public
|
85
|
+
virtual
|
86
|
+
restricted()
|
87
|
+
onlyOwner()
|
88
|
+
{
|
89
|
+
_approveTokenHandler(token, amount);
|
90
|
+
}
|
91
|
+
|
92
|
+
|
63
93
|
// set/update staking reader
|
64
94
|
function setStakingReader(StakingReader stakingReader)
|
65
95
|
external
|
66
96
|
virtual
|
97
|
+
restricted()
|
67
98
|
onlyOwner()
|
68
99
|
{
|
69
100
|
if(stakingReader.getStaking() != IStaking(this)) {
|
@@ -78,6 +109,7 @@ contract Staking is
|
|
78
109
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
|
79
110
|
external
|
80
111
|
virtual
|
112
|
+
restricted()
|
81
113
|
onlyOwner()
|
82
114
|
{
|
83
115
|
StakingStorage storage $ = _getStakingStorage();
|
@@ -119,7 +151,8 @@ contract Staking is
|
|
119
151
|
objectType: expectedObjectType,
|
120
152
|
chainId: chainId,
|
121
153
|
lockingPeriod: initialLockingPeriod,
|
122
|
-
rewardRate: initialRewardRate
|
154
|
+
rewardRate: initialRewardRate,
|
155
|
+
maxStakedAmount: AmountLib.max()}));
|
123
156
|
}
|
124
157
|
|
125
158
|
|
@@ -167,6 +200,21 @@ contract Staking is
|
|
167
200
|
emit LogStakingRewardRateSet(targetNftId, oldRewardRate, rewardRate);
|
168
201
|
}
|
169
202
|
|
203
|
+
function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount)
|
204
|
+
external
|
205
|
+
virtual
|
206
|
+
restricted()
|
207
|
+
onlyTarget(targetNftId)
|
208
|
+
{
|
209
|
+
IStaking.TargetInfo memory targetInfo = getStakingReader().getTargetInfo(targetNftId);
|
210
|
+
|
211
|
+
targetInfo.maxStakedAmount = maxStakedAmount;
|
212
|
+
|
213
|
+
_getStakingStorage()._store.updateTarget(targetNftId, targetInfo);
|
214
|
+
|
215
|
+
emit LogStakingMaxStakedAmountSet(targetNftId, maxStakedAmount);
|
216
|
+
}
|
217
|
+
|
170
218
|
|
171
219
|
function refillRewardReserves(NftId targetNftId, Amount dipAmount)
|
172
220
|
external
|
@@ -248,7 +296,7 @@ contract Staking is
|
|
248
296
|
restricted() // only staking service
|
249
297
|
{
|
250
298
|
StakingStorage storage $ = _getStakingStorage();
|
251
|
-
Timestamp lockedUntil =
|
299
|
+
Timestamp lockedUntil = StakingLib.checkCreateParameters(
|
252
300
|
$._reader,
|
253
301
|
targetNftId,
|
254
302
|
stakeAmount);
|
@@ -278,7 +326,7 @@ contract Staking is
|
|
278
326
|
returns (Amount stakeBalance)
|
279
327
|
{
|
280
328
|
StakingStorage storage $ = _getStakingStorage();
|
281
|
-
stakeBalance =
|
329
|
+
stakeBalance = StakingLib.stake(
|
282
330
|
getRegistry(),
|
283
331
|
$._reader,
|
284
332
|
$._store,
|
@@ -289,20 +337,25 @@ contract Staking is
|
|
289
337
|
|
290
338
|
function restake(
|
291
339
|
NftId stakeNftId,
|
292
|
-
NftId
|
340
|
+
NftId newStakeNftId
|
293
341
|
)
|
294
342
|
external
|
295
343
|
virtual
|
296
344
|
restricted() // only staking service
|
297
345
|
onlyStake(stakeNftId)
|
298
|
-
returns (
|
346
|
+
returns (Amount newStakeBalance)
|
299
347
|
{
|
348
|
+
_checkNftType(stakeNftId, STAKE());
|
349
|
+
_checkNftType(newStakeNftId, STAKE());
|
350
|
+
|
300
351
|
// TODO add check that allows additional staking amount
|
301
352
|
StakingStorage storage $ = _getStakingStorage();
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
353
|
+
newStakeBalance = StakingLib.restake(
|
354
|
+
$._reader,
|
355
|
+
$._store,
|
356
|
+
stakeNftId,
|
357
|
+
newStakeNftId);
|
358
|
+
}
|
306
359
|
|
307
360
|
function updateRewards(NftId stakeNftId)
|
308
361
|
external
|
@@ -350,9 +403,10 @@ contract Staking is
|
|
350
403
|
Amount rewardsClaimedAmount
|
351
404
|
)
|
352
405
|
{
|
353
|
-
// TODO add check that stake locking is in the past
|
354
406
|
StakingStorage storage $ = _getStakingStorage();
|
355
|
-
|
407
|
+
|
408
|
+
StakingLib.checkUnstakeParameters($._reader, stakeNftId);
|
409
|
+
|
356
410
|
// update rewards since last update
|
357
411
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
358
412
|
|
@@ -371,66 +425,42 @@ contract Staking is
|
|
371
425
|
}
|
372
426
|
|
373
427
|
|
374
|
-
|
375
|
-
//--- other functions ---------------------------------------------------//
|
376
|
-
|
377
|
-
function collectDipAmount(address from, Amount dipAmount)
|
378
|
-
external
|
379
|
-
restricted() // only staking service
|
380
|
-
{
|
381
|
-
TokenHandler tokenHandler = getTokenHandler();
|
382
|
-
address stakingWallet = getWallet();
|
383
|
-
|
384
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
385
|
-
getToken(),
|
386
|
-
from,
|
387
|
-
address(tokenHandler),
|
388
|
-
dipAmount);
|
389
|
-
|
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
|
-
tokenHandler.transfer(stakingWallet, to, dipAmount);
|
408
|
-
}
|
409
|
-
|
410
|
-
|
411
428
|
//--- view functions ----------------------------------------------------//
|
412
429
|
|
413
|
-
function getStakingReader() public view returns (StakingReader reader) {
|
430
|
+
function getStakingReader() public virtual view returns (StakingReader reader) {
|
414
431
|
return _getStakingStorage()._reader;
|
415
432
|
}
|
416
433
|
|
417
|
-
function getStakingStore() external view returns (StakingStore stakingStore) {
|
434
|
+
function getStakingStore() external virtual view returns (StakingStore stakingStore) {
|
418
435
|
return _getStakingStorage()._store;
|
419
436
|
}
|
420
437
|
|
421
|
-
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
438
|
+
function getTokenRegistryAddress() external virtual view returns (address tokenRegistry) {
|
422
439
|
return address(_getStakingStorage()._tokenRegistry);
|
423
440
|
}
|
424
441
|
|
442
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
443
|
+
return _getStakingStorage()._tokenHandler;
|
444
|
+
}
|
445
|
+
|
446
|
+
// from IRegisterable
|
447
|
+
function getRelease()
|
448
|
+
public
|
449
|
+
pure
|
450
|
+
virtual override (IRelease, Registerable)
|
451
|
+
returns(VersionPart)
|
452
|
+
{
|
453
|
+
return VersionPartLib.toVersionPart(3);
|
454
|
+
}
|
425
455
|
|
426
|
-
// from
|
456
|
+
// from IVersionable
|
427
457
|
function getVersion()
|
428
458
|
public
|
429
459
|
pure
|
430
|
-
virtual override (IVersionable, Versionable)
|
460
|
+
virtual override (Component, IVersionable, Versionable)
|
431
461
|
returns(Version)
|
432
462
|
{
|
433
|
-
return VersionLib.toVersion(
|
463
|
+
return VersionLib.toVersion(3,0,0);
|
434
464
|
}
|
435
465
|
|
436
466
|
//--- internal functions ------------------------------------------------//
|
@@ -447,7 +477,7 @@ contract Staking is
|
|
447
477
|
UFixed rewardRate;
|
448
478
|
|
449
479
|
(targetNftId, rewardRate) = reader.getTargetRewardRate(stakeNftId);
|
450
|
-
(Amount rewardIncrement, ) =
|
480
|
+
(Amount rewardIncrement, ) = StakingLib.calculateRewardIncrease(
|
451
481
|
reader,
|
452
482
|
stakeNftId,
|
453
483
|
rewardRate);
|
@@ -459,13 +489,23 @@ contract Staking is
|
|
459
489
|
}
|
460
490
|
|
461
491
|
|
492
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
493
|
+
internal
|
494
|
+
virtual override
|
495
|
+
{
|
496
|
+
IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
|
497
|
+
token,
|
498
|
+
amount);
|
499
|
+
}
|
500
|
+
|
501
|
+
|
462
502
|
function _initialize(
|
463
503
|
address owner,
|
464
504
|
bytes memory data
|
465
505
|
)
|
466
506
|
internal
|
467
507
|
virtual override
|
468
|
-
initializer
|
508
|
+
initializer()
|
469
509
|
{
|
470
510
|
(
|
471
511
|
address registryAddress,
|
@@ -480,28 +520,25 @@ contract Staking is
|
|
480
520
|
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
481
521
|
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
482
522
|
|
483
|
-
|
523
|
+
// wiring to external contracts
|
524
|
+
StakingStorage storage $ = _getStakingStorage();
|
525
|
+
$._protocolNftId = registry.getProtocolNftId();
|
526
|
+
$._store = StakingStore(stakingStoreAddress);
|
527
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
528
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
529
|
+
|
530
|
+
_initializeComponent(
|
484
531
|
authority,
|
485
532
|
registryAddress,
|
486
|
-
registry.getNftId(),
|
533
|
+
registry.getNftId(), // parent nft id
|
487
534
|
CONTRACT_NAME,
|
488
|
-
dipTokenAddress,
|
489
535
|
STAKING(),
|
490
536
|
false, // is interceptor
|
491
537
|
stakingOwner,
|
492
538
|
"", // registry data
|
493
539
|
""); // component data
|
494
540
|
|
495
|
-
|
496
|
-
|
497
|
-
// wiring to external contracts
|
498
|
-
StakingStorage storage $ = _getStakingStorage();
|
499
|
-
$._protocolNftId = getRegistry().getProtocolNftId();
|
500
|
-
$._store = StakingStore(stakingStoreAddress);
|
501
|
-
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
502
|
-
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
503
|
-
|
504
|
-
registerInterface(type(IStaking).interfaceId);
|
541
|
+
_registerInterface(type(IStaking).interfaceId);
|
505
542
|
}
|
506
543
|
|
507
544
|
|
@@ -1,16 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {Component} from "../shared/Component.sol";
|
8
5
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
6
|
import {IStaking} from "./IStaking.sol";
|
11
|
-
import {Key32} from "../type/Key32.sol";
|
12
7
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
|
14
8
|
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
15
9
|
import {StakingReader} from "./StakingReader.sol";
|
16
10
|
import {StakingStore} from "./StakingStore.sol";
|
@@ -18,7 +12,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
18
12
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
13
|
|
20
14
|
|
21
|
-
library
|
15
|
+
library StakingLib {
|
22
16
|
|
23
17
|
function stake(
|
24
18
|
IRegistry registry,
|
@@ -51,7 +45,12 @@ library StakeManagerLib {
|
|
51
45
|
|
52
46
|
// TODO check that additional dip, rewards and rewards increment
|
53
47
|
// are still ok with max target staking amount
|
54
|
-
NftId targetNftId = registry.
|
48
|
+
NftId targetNftId = registry.getParentNftId(stakeNftId);
|
49
|
+
Amount maxStakedAmount = stakingReader.getTargetMaxStakedAmount(targetNftId);
|
50
|
+
|
51
|
+
if (stakeBalance > maxStakedAmount) {
|
52
|
+
revert IStaking.ErrorStakingTargetMaxStakedAmountExceeded(targetNftId, maxStakedAmount, stakeBalance);
|
53
|
+
}
|
55
54
|
|
56
55
|
stakingStore.restakeRewards(
|
57
56
|
stakeNftId,
|
@@ -72,6 +71,55 @@ library StakeManagerLib {
|
|
72
71
|
|
73
72
|
}
|
74
73
|
|
74
|
+
function restake(
|
75
|
+
StakingReader stakingReader,
|
76
|
+
StakingStore stakingStore,
|
77
|
+
NftId oldStakeNftId,
|
78
|
+
NftId newStakeNftId
|
79
|
+
)
|
80
|
+
external
|
81
|
+
returns (Amount newStakeBalance)
|
82
|
+
{
|
83
|
+
checkUnstakeParameters(stakingReader, oldStakeNftId);
|
84
|
+
(NftId oldTargetNftId, UFixed oldRewardRate) = stakingReader.getTargetRewardRate(oldStakeNftId);
|
85
|
+
|
86
|
+
// calculate new rewards update and unstake full amount
|
87
|
+
(
|
88
|
+
Amount rewardIncrementAmount,
|
89
|
+
) = calculateRewardIncrease(
|
90
|
+
stakingReader,
|
91
|
+
oldStakeNftId,
|
92
|
+
oldRewardRate);
|
93
|
+
stakingStore.updateRewards(
|
94
|
+
oldStakeNftId,
|
95
|
+
oldTargetNftId,
|
96
|
+
rewardIncrementAmount);
|
97
|
+
(
|
98
|
+
Amount unstakedAmount,
|
99
|
+
Amount rewardsAmount
|
100
|
+
) = stakingStore.unstakeUpTo(
|
101
|
+
oldStakeNftId,
|
102
|
+
oldTargetNftId,
|
103
|
+
AmountLib.max(), // unstake all stakes
|
104
|
+
AmountLib.max()); // claim all rewards
|
105
|
+
|
106
|
+
// calculate full restake amount
|
107
|
+
newStakeBalance = unstakedAmount + rewardsAmount;
|
108
|
+
NftId newTargetNftId = stakingReader.getTargetNftId(newStakeNftId);
|
109
|
+
|
110
|
+
// create new staking target and increase stake
|
111
|
+
Timestamp newLockedUntil = _checkCreateParameters(stakingReader, newTargetNftId, newStakeBalance);
|
112
|
+
stakingStore.create(
|
113
|
+
newStakeNftId,
|
114
|
+
IStaking.StakeInfo({
|
115
|
+
lockedUntil: newLockedUntil
|
116
|
+
}));
|
117
|
+
stakingStore.increaseStake(
|
118
|
+
newStakeNftId,
|
119
|
+
newTargetNftId,
|
120
|
+
newStakeBalance);
|
121
|
+
}
|
122
|
+
|
75
123
|
function checkCreateParameters(
|
76
124
|
StakingReader stakingReader,
|
77
125
|
NftId targetNftId,
|
@@ -82,6 +130,19 @@ library StakeManagerLib {
|
|
82
130
|
returns (
|
83
131
|
Timestamp lockedUntil
|
84
132
|
)
|
133
|
+
{
|
134
|
+
return _checkCreateParameters(stakingReader, targetNftId, dipAmount);
|
135
|
+
}
|
136
|
+
|
137
|
+
function _checkCreateParameters(
|
138
|
+
StakingReader stakingReader,
|
139
|
+
NftId targetNftId,
|
140
|
+
Amount dipAmount
|
141
|
+
)
|
142
|
+
internal view
|
143
|
+
returns (
|
144
|
+
Timestamp lockedUntil
|
145
|
+
)
|
85
146
|
{
|
86
147
|
Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
|
87
148
|
checkDipAmount(stakingReader, targetNftId, dipAmount);
|
@@ -104,16 +165,33 @@ library StakeManagerLib {
|
|
104
165
|
{
|
105
166
|
NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
|
106
167
|
|
107
|
-
//
|
108
|
-
if (!stakingReader.
|
109
|
-
revert IStaking.
|
168
|
+
// target nft id must be registered
|
169
|
+
if (!stakingReader.isTarget(targetNftId)) {
|
170
|
+
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
110
171
|
}
|
111
|
-
|
172
|
+
|
112
173
|
IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
|
113
174
|
rewardRate = info.rewardRate;
|
114
175
|
lockingPeriod = info.lockingPeriod;
|
115
176
|
}
|
116
177
|
|
178
|
+
function checkUnstakeParameters(
|
179
|
+
StakingReader stakingReader,
|
180
|
+
NftId stakeNftId
|
181
|
+
)
|
182
|
+
public
|
183
|
+
view
|
184
|
+
returns (
|
185
|
+
Seconds lockingPeriod
|
186
|
+
)
|
187
|
+
{
|
188
|
+
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
189
|
+
|
190
|
+
if (stakeInfo.lockedUntil > TimestampLib.blockTimestamp()) {
|
191
|
+
revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|
117
195
|
|
118
196
|
function checkTarget(
|
119
197
|
StakingReader stakingReader,
|
@@ -128,11 +206,6 @@ library StakeManagerLib {
|
|
128
206
|
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
129
207
|
}
|
130
208
|
|
131
|
-
// only accept stakes for active targets
|
132
|
-
if (!stakingReader.isActive(targetNftId)) {
|
133
|
-
revert IStaking.ErrorStakingTargetNotActive(targetNftId);
|
134
|
-
}
|
135
|
-
|
136
209
|
lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
|
137
210
|
}
|
138
211
|
|
@@ -143,41 +216,19 @@ library StakeManagerLib {
|
|
143
216
|
Amount dipAmount
|
144
217
|
)
|
145
218
|
public
|
146
|
-
|
219
|
+
view
|
147
220
|
{
|
148
221
|
// check stake amount > 0
|
149
222
|
if (dipAmount.eqz()) {
|
150
223
|
revert IStaking.ErrorStakingStakeAmountZero(targetNftId);
|
151
224
|
}
|
152
225
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
function checkDipBalanceAndAllowance(
|
158
|
-
IERC20Metadata dip,
|
159
|
-
address owner,
|
160
|
-
address tokenHandlerAddress,
|
161
|
-
Amount dipAmount
|
162
|
-
)
|
163
|
-
public
|
164
|
-
view
|
165
|
-
{
|
166
|
-
// check balance
|
167
|
-
uint256 amount = dipAmount.toInt();
|
168
|
-
uint256 dipBalance = dip.balanceOf(owner);
|
169
|
-
if (dipBalance < amount) {
|
170
|
-
revert IStaking.ErrorStakingDipBalanceInsufficient(owner, amount, dipBalance);
|
171
|
-
}
|
172
|
-
|
173
|
-
// check allowance
|
174
|
-
uint256 dipAllowance = dip.allowance(owner, tokenHandlerAddress);
|
175
|
-
if (dipAllowance < amount) {
|
176
|
-
revert IStaking.ErrorStakingDipAllowanceInsufficient(owner, tokenHandlerAddress, amount, dipAllowance);
|
226
|
+
Amount maxStakedAmount = stakingReader.getTargetMaxStakedAmount(targetNftId);
|
227
|
+
if (dipAmount > maxStakedAmount) {
|
228
|
+
revert IStaking.ErrorStakingTargetMaxStakedAmountExceeded(targetNftId, maxStakedAmount, dipAmount);
|
177
229
|
}
|
178
230
|
}
|
179
231
|
|
180
|
-
|
181
232
|
function calculateRewardIncrease(
|
182
233
|
StakingReader stakingReader,
|
183
234
|
NftId stakeNftId,
|
@@ -203,11 +254,10 @@ library StakeManagerLib {
|
|
203
254
|
rewardRate,
|
204
255
|
duration,
|
205
256
|
stakeAmount);
|
206
|
-
|
257
|
+
|
207
258
|
totalDipAmount = stakeAmount + rewardAmount + rewardIncreaseAmount;
|
208
259
|
}
|
209
260
|
|
210
|
-
|
211
261
|
function calculateRewardAmount(
|
212
262
|
UFixed rewardRate,
|
213
263
|
Seconds duration,
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
|
5
|
+
import {INITIAL} from "../type/StateId.sol";
|
6
|
+
import {Lifecycle} from "../shared/Lifecycle.sol";
|
7
|
+
|
8
|
+
contract StakingLifecycle is
|
9
|
+
Lifecycle
|
10
|
+
{
|
11
|
+
constructor() {
|
12
|
+
_setupLifecycle();
|
13
|
+
}
|
14
|
+
|
15
|
+
function _setupLifecycle()
|
16
|
+
internal
|
17
|
+
override
|
18
|
+
{
|
19
|
+
setInitialState(TARGET(), INITIAL());
|
20
|
+
setInitialState(COMPONENT(), INITIAL());
|
21
|
+
setInitialState(STAKE(), INITIAL());
|
22
|
+
}
|
23
|
+
}
|
@@ -1,14 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
6
|
-
import {ReleaseManager} from "../registry/ReleaseManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {Staking} from "./Staking.sol";
|
8
|
-
import {StakingReader} from "./StakingReader.sol";
|
9
|
-
import {StakingStore} from "./StakingStore.sol";
|
10
7
|
|
11
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
12
8
|
|
13
9
|
contract StakingManager is
|
14
10
|
ProxyManager
|
@@ -22,9 +18,9 @@ contract StakingManager is
|
|
22
18
|
address registry,
|
23
19
|
address tokenRegistry,
|
24
20
|
address stakingStore,
|
25
|
-
address initialOwner
|
21
|
+
address initialOwner,
|
22
|
+
bytes32 salt
|
26
23
|
)
|
27
|
-
ProxyManager(registry)
|
28
24
|
{
|
29
25
|
Staking stakingImplementation = new Staking();
|
30
26
|
|
@@ -34,10 +30,12 @@ contract StakingManager is
|
|
34
30
|
tokenRegistry,
|
35
31
|
stakingStore,
|
36
32
|
initialOwner);
|
37
|
-
|
38
|
-
IVersionable versionable =
|
39
|
-
|
40
|
-
|
33
|
+
|
34
|
+
IVersionable versionable = initialize(
|
35
|
+
registry,
|
36
|
+
_initialImplementation,
|
37
|
+
_initializationData,
|
38
|
+
salt);
|
41
39
|
|
42
40
|
_staking = Staking(address(versionable));
|
43
41
|
}
|