@etherisc/gif-next 0.0.2-f1fe735-758 → 0.0.2-f2273b3-211
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 +59 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -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 +211 -270
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -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 +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +396 -265
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +244 -63
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +161 -73
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +116 -126
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +190 -211
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1044 -316
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +135 -330
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +97 -111
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +650 -529
- 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 +48 -7
- 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 +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -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 +141 -126
- 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 +127 -398
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +331 -204
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -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 +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +258 -536
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -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 +359 -55
- 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 +585 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +449 -422
- 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 +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +48 -7
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +82 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +576 -516
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -113
- 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 +541 -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 +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +547 -224
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
- 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 +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 +112 -351
- 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 +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 +137 -139
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -375
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +48 -7
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +183 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +181 -135
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +61 -8
- 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 +17 -12
- 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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +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 +118 -5
- 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 +71 -2
- 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 +66 -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 +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/{shared → authorization}/AccessAdmin.sol +310 -380
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +337 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +37 -62
- package/contracts/authorization/IAuthorization.sol +74 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +41 -25
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +153 -125
- package/contracts/distribution/DistributionService.sol +172 -111
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +42 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +27 -44
- package/contracts/instance/IInstanceService.sol +16 -41
- package/contracts/instance/Instance.sol +103 -119
- package/contracts/instance/InstanceAdmin.sol +346 -240
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceReader.sol +293 -48
- package/contracts/instance/InstanceService.sol +145 -180
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +29 -3
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +2 -2
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +64 -53
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +175 -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 +209 -163
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +546 -241
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +83 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +365 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +476 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +233 -132
- package/contracts/product/RiskService.sol +145 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +74 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -220
- package/contracts/registry/RegistryAdmin.sol +238 -219
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +107 -60
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +74 -128
- package/contracts/shared/ComponentService.sol +456 -384
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +49 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- 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 +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +96 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- 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 +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +9 -13
- package/contracts/staking/IStakingService.sol +24 -9
- package/contracts/staking/StakeManagerLib.sol +85 -43
- package/contracts/staking/Staking.sol +96 -79
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +21 -33
- package/contracts/staking/StakingService.sol +79 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +12 -22
- 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/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +89 -27
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +35 -4
- 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 +40 -121
- package/contracts/type/Version.sol +18 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +6 -5
- 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 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- 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/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 -503
- 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/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
@@ -3,9 +3,8 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {IComponent} from "../shared/IComponent.sol";
|
6
|
-
import {IVersionable} from "../
|
6
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
7
7
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
9
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
10
9
|
import {Seconds} from "../type/Seconds.sol";
|
11
10
|
import {StakingReader} from "./StakingReader.sol";
|
@@ -31,6 +30,9 @@ interface IStaking is
|
|
31
30
|
error ErrorStakingNotStakingOwner();
|
32
31
|
error ErrorStakingNotNftOwner(NftId nftId);
|
33
32
|
|
33
|
+
// initializeTokenHandler
|
34
|
+
error ErrorStakingNotRegistry(address registry);
|
35
|
+
|
34
36
|
// staking rate
|
35
37
|
error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
|
36
38
|
|
@@ -43,13 +45,13 @@ interface IStaking is
|
|
43
45
|
error ErrorStakingTargetNftIdZero();
|
44
46
|
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
45
47
|
error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
|
46
|
-
error
|
48
|
+
error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
|
47
49
|
error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
|
50
|
+
error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
|
48
51
|
error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
|
49
52
|
error ErrorStakingTargetNotFound(NftId targetNftId);
|
50
53
|
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
51
54
|
|
52
|
-
error ErrorStakingTargetNotActive(NftId targetNftId);
|
53
55
|
error ErrorStakingStakeAmountZero(NftId targetNftId);
|
54
56
|
|
55
57
|
// info for individual stake
|
@@ -64,6 +66,8 @@ interface IStaking is
|
|
64
66
|
UFixed rewardRate;
|
65
67
|
}
|
66
68
|
|
69
|
+
function initializeTokenHandler() external;
|
70
|
+
|
67
71
|
// staking rate management
|
68
72
|
|
69
73
|
/// @dev sets the rate that converts 1 token of total value locked into the
|
@@ -127,7 +131,7 @@ interface IStaking is
|
|
127
131
|
/// @dev restakes the dips to a new target.
|
128
132
|
/// the sum of the staked dips and the accumulated rewards will be restaked.
|
129
133
|
/// permissioned: only staking service may call this function.
|
130
|
-
function restake(NftId stakeNftId, NftId
|
134
|
+
function restake(NftId stakeNftId, NftId newStakeNftId) external returns (Amount newStakeBalance);
|
131
135
|
|
132
136
|
/// @dev retuns the specified amount of dips to the holder of the specified stake nft.
|
133
137
|
/// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
|
@@ -153,14 +157,6 @@ interface IStaking is
|
|
153
157
|
Amount rewardsClaimedAmount
|
154
158
|
);
|
155
159
|
|
156
|
-
//--- helper functions --------------------------------------------------//
|
157
|
-
|
158
|
-
/// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
159
|
-
function collectDipAmount(address from, Amount dipAmount) external;
|
160
|
-
|
161
|
-
/// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
162
|
-
function transferDipAmount(address to, Amount dipAmount) external;
|
163
|
-
|
164
160
|
//--- view and pure functions -------------------------------------------//
|
165
161
|
|
166
162
|
function getStakingStore() external view returns (StakingStore stakingStore);
|
@@ -7,9 +7,7 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
8
|
import {IStaking} from "./IStaking.sol";
|
9
9
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
11
10
|
import {Seconds} from "../type/Seconds.sol";
|
12
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
13
11
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
12
|
import {UFixed} from "../type/UFixed.sol";
|
15
13
|
|
@@ -28,22 +26,38 @@ interface IStakingService is IService
|
|
28
26
|
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
29
27
|
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
|
30
28
|
event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
|
29
|
+
event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
|
31
30
|
|
32
31
|
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
33
32
|
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
34
33
|
|
35
34
|
// modifiers
|
36
|
-
error
|
35
|
+
error ErrorStakingServiceNotStakingOwner(address account);
|
37
36
|
error ErrorStakingServiceNotStaking(address stakingAddress);
|
38
37
|
error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
|
39
38
|
|
40
39
|
// create
|
40
|
+
error ErrorStakingServiceTargetUnknown(NftId targetNftId);
|
41
41
|
error ErrorStakingServiceZeroTargetNftId();
|
42
42
|
error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
|
43
43
|
error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
|
44
44
|
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
45
45
|
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
46
46
|
|
47
|
+
/// @dev Set the protocol reward rate stake locking period to the specified duration.
|
48
|
+
/// Permissioned: only staking owner
|
49
|
+
// TODO implement
|
50
|
+
// function setProtocolRewardRate(UFixed rewardRate) external;
|
51
|
+
// function setProtocolLockingPeriod(Seconds lockingPeriod) external;
|
52
|
+
// TODO also make sure that protocol rewards can be refilled and withdrawn
|
53
|
+
|
54
|
+
/// @dev Approves the staking token handler.
|
55
|
+
/// Reverts if the staking token handler wallet is not the token handler itself.
|
56
|
+
function approveTokenHandler(
|
57
|
+
IERC20Metadata token,
|
58
|
+
Amount amount
|
59
|
+
) external;
|
60
|
+
|
47
61
|
/// @dev creates/registers an on-chain instance staking target.
|
48
62
|
/// function granted to instance service
|
49
63
|
function createInstanceTarget(
|
@@ -53,11 +67,11 @@ interface IStakingService is IService
|
|
53
67
|
) external;
|
54
68
|
|
55
69
|
/// @dev Set the instance stake locking period to the specified duration.
|
56
|
-
///
|
70
|
+
/// Permissioned: Only owner of the specified target.
|
57
71
|
function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
|
58
72
|
|
59
|
-
/// @dev Set the instance reward rate to the specified value
|
60
|
-
///
|
73
|
+
/// @dev Set the instance reward rate to the specified value.
|
74
|
+
/// Permissioned: Only owner of the specified target.
|
61
75
|
function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
|
62
76
|
|
63
77
|
/// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
|
@@ -68,8 +82,8 @@ interface IStakingService is IService
|
|
68
82
|
/// unpermissioned: anybody may fill up staking reward reserves
|
69
83
|
function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
70
84
|
|
71
|
-
/// @dev
|
72
|
-
///
|
85
|
+
/// @dev Defunds the staking reward reserves for the specified target
|
86
|
+
/// Permissioned: only the target owner may call this function
|
73
87
|
function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
|
74
88
|
|
75
89
|
/// @dev create a new stake with amount DIP to the specified target
|
@@ -104,7 +118,8 @@ interface IStakingService is IService
|
|
104
118
|
)
|
105
119
|
external
|
106
120
|
returns (
|
107
|
-
NftId newStakeNftId
|
121
|
+
NftId newStakeNftId,
|
122
|
+
Amount newStakeBalance
|
108
123
|
);
|
109
124
|
|
110
125
|
|
@@ -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";
|
@@ -51,7 +45,7 @@ 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);
|
55
49
|
|
56
50
|
stakingStore.restakeRewards(
|
57
51
|
stakeNftId,
|
@@ -72,6 +66,55 @@ library StakeManagerLib {
|
|
72
66
|
|
73
67
|
}
|
74
68
|
|
69
|
+
function restake(
|
70
|
+
StakingReader stakingReader,
|
71
|
+
StakingStore stakingStore,
|
72
|
+
NftId oldStakeNftId,
|
73
|
+
NftId newStakeNftId
|
74
|
+
)
|
75
|
+
external
|
76
|
+
returns (Amount newStakeBalance)
|
77
|
+
{
|
78
|
+
checkUnstakeParameters(stakingReader, oldStakeNftId);
|
79
|
+
(NftId oldTargetNftId, UFixed oldRewardRate) = stakingReader.getTargetRewardRate(oldStakeNftId);
|
80
|
+
|
81
|
+
// calculate new rewards update and unstake full amount
|
82
|
+
(
|
83
|
+
Amount rewardIncrementAmount,
|
84
|
+
) = calculateRewardIncrease(
|
85
|
+
stakingReader,
|
86
|
+
oldStakeNftId,
|
87
|
+
oldRewardRate);
|
88
|
+
stakingStore.updateRewards(
|
89
|
+
oldStakeNftId,
|
90
|
+
oldTargetNftId,
|
91
|
+
rewardIncrementAmount);
|
92
|
+
(
|
93
|
+
Amount unstakedAmount,
|
94
|
+
Amount rewardsAmount
|
95
|
+
) = stakingStore.unstakeUpTo(
|
96
|
+
oldStakeNftId,
|
97
|
+
oldTargetNftId,
|
98
|
+
AmountLib.max(), // unstake all stakes
|
99
|
+
AmountLib.max()); // claim all rewards
|
100
|
+
|
101
|
+
// calculate full restake amount
|
102
|
+
newStakeBalance = unstakedAmount + rewardsAmount;
|
103
|
+
NftId newTargetNftId = stakingReader.getTargetNftId(newStakeNftId);
|
104
|
+
|
105
|
+
// create new staking target and increase stake
|
106
|
+
Timestamp newLockedUntil = _checkCreateParameters(stakingReader, newTargetNftId, newStakeBalance);
|
107
|
+
stakingStore.create(
|
108
|
+
newStakeNftId,
|
109
|
+
IStaking.StakeInfo({
|
110
|
+
lockedUntil: newLockedUntil
|
111
|
+
}));
|
112
|
+
stakingStore.increaseStake(
|
113
|
+
newStakeNftId,
|
114
|
+
newTargetNftId,
|
115
|
+
newStakeBalance);
|
116
|
+
}
|
117
|
+
|
75
118
|
function checkCreateParameters(
|
76
119
|
StakingReader stakingReader,
|
77
120
|
NftId targetNftId,
|
@@ -82,6 +125,19 @@ library StakeManagerLib {
|
|
82
125
|
returns (
|
83
126
|
Timestamp lockedUntil
|
84
127
|
)
|
128
|
+
{
|
129
|
+
return _checkCreateParameters(stakingReader, targetNftId, dipAmount);
|
130
|
+
}
|
131
|
+
|
132
|
+
function _checkCreateParameters(
|
133
|
+
StakingReader stakingReader,
|
134
|
+
NftId targetNftId,
|
135
|
+
Amount dipAmount
|
136
|
+
)
|
137
|
+
internal view
|
138
|
+
returns (
|
139
|
+
Timestamp lockedUntil
|
140
|
+
)
|
85
141
|
{
|
86
142
|
Seconds lockingPeriod = checkTarget(stakingReader, targetNftId);
|
87
143
|
checkDipAmount(stakingReader, targetNftId, dipAmount);
|
@@ -104,16 +160,33 @@ library StakeManagerLib {
|
|
104
160
|
{
|
105
161
|
NftId targetNftId = stakingReader.getTargetNftId(stakeNftId);
|
106
162
|
|
107
|
-
//
|
108
|
-
if (!stakingReader.
|
109
|
-
revert IStaking.
|
163
|
+
// target nft id must be registered
|
164
|
+
if (!stakingReader.isTarget(targetNftId)) {
|
165
|
+
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
110
166
|
}
|
111
|
-
|
167
|
+
|
112
168
|
IStaking.TargetInfo memory info = stakingReader.getTargetInfo(targetNftId);
|
113
169
|
rewardRate = info.rewardRate;
|
114
170
|
lockingPeriod = info.lockingPeriod;
|
115
171
|
}
|
116
172
|
|
173
|
+
function checkUnstakeParameters(
|
174
|
+
StakingReader stakingReader,
|
175
|
+
NftId stakeNftId
|
176
|
+
)
|
177
|
+
public
|
178
|
+
view
|
179
|
+
returns (
|
180
|
+
Seconds lockingPeriod
|
181
|
+
)
|
182
|
+
{
|
183
|
+
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
184
|
+
|
185
|
+
if (stakeInfo.lockedUntil > TimestampLib.blockTimestamp()) {
|
186
|
+
revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
|
117
190
|
|
118
191
|
function checkTarget(
|
119
192
|
StakingReader stakingReader,
|
@@ -128,11 +201,6 @@ library StakeManagerLib {
|
|
128
201
|
revert IStaking.ErrorStakingNotTarget(targetNftId);
|
129
202
|
}
|
130
203
|
|
131
|
-
// only accept stakes for active targets
|
132
|
-
if (!stakingReader.isActive(targetNftId)) {
|
133
|
-
revert IStaking.ErrorStakingTargetNotActive(targetNftId);
|
134
|
-
}
|
135
|
-
|
136
204
|
lockingPeriod = stakingReader.getTargetInfo(targetNftId).lockingPeriod;
|
137
205
|
}
|
138
206
|
|
@@ -153,31 +221,6 @@ library StakeManagerLib {
|
|
153
221
|
// TODO add check for target specific max dip amount (min stake + tvl * stake rate + buffer)
|
154
222
|
}
|
155
223
|
|
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);
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
224
|
function calculateRewardIncrease(
|
182
225
|
StakingReader stakingReader,
|
183
226
|
NftId stakeNftId,
|
@@ -203,11 +246,10 @@ library StakeManagerLib {
|
|
203
246
|
rewardRate,
|
204
247
|
duration,
|
205
248
|
stakeAmount);
|
206
|
-
|
249
|
+
|
207
250
|
totalDipAmount = stakeAmount + rewardAmount + rewardIncreaseAmount;
|
208
251
|
}
|
209
252
|
|
210
|
-
|
211
253
|
function calculateRewardAmount(
|
212
254
|
UFixed rewardRate,
|
213
255
|
Seconds duration,
|
@@ -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 {
|
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";
|
17
19
|
import {StakeManagerLib} from "./StakeManagerLib.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,12 +56,37 @@ 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
|
+
{
|
68
|
+
if (msg.sender != address(getRegistry())) {
|
69
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
70
|
+
}
|
71
|
+
|
72
|
+
StakingStorage storage $ = _getStakingStorage();
|
73
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
74
|
+
address(getRegistry()),
|
75
|
+
address(this),
|
76
|
+
address(getToken()),
|
77
|
+
getRegistry().getAuthority());
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
82
|
+
public
|
83
|
+
restricted()
|
84
|
+
onlyOwner()
|
85
|
+
{
|
86
|
+
_approveTokenHandler(token, amount);
|
87
|
+
}
|
88
|
+
|
89
|
+
|
63
90
|
// set/update staking reader
|
64
91
|
function setStakingReader(StakingReader stakingReader)
|
65
92
|
external
|
@@ -289,20 +316,25 @@ contract Staking is
|
|
289
316
|
|
290
317
|
function restake(
|
291
318
|
NftId stakeNftId,
|
292
|
-
NftId
|
319
|
+
NftId newStakeNftId
|
293
320
|
)
|
294
321
|
external
|
295
322
|
virtual
|
296
323
|
restricted() // only staking service
|
297
324
|
onlyStake(stakeNftId)
|
298
|
-
returns (
|
325
|
+
returns (Amount newStakeBalance)
|
299
326
|
{
|
327
|
+
_checkNftType(stakeNftId, STAKE());
|
328
|
+
_checkNftType(newStakeNftId, STAKE());
|
329
|
+
|
300
330
|
// TODO add check that allows additional staking amount
|
301
331
|
StakingStorage storage $ = _getStakingStorage();
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
332
|
+
newStakeBalance = StakeManagerLib.restake(
|
333
|
+
$._reader,
|
334
|
+
$._store,
|
335
|
+
stakeNftId,
|
336
|
+
newStakeNftId);
|
337
|
+
}
|
306
338
|
|
307
339
|
function updateRewards(NftId stakeNftId)
|
308
340
|
external
|
@@ -350,9 +382,10 @@ contract Staking is
|
|
350
382
|
Amount rewardsClaimedAmount
|
351
383
|
)
|
352
384
|
{
|
353
|
-
// TODO add check that stake locking is in the past
|
354
385
|
StakingStorage storage $ = _getStakingStorage();
|
355
|
-
|
386
|
+
|
387
|
+
StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
|
388
|
+
|
356
389
|
// update rewards since last update
|
357
390
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
358
391
|
|
@@ -371,43 +404,6 @@ contract Staking is
|
|
371
404
|
}
|
372
405
|
|
373
406
|
|
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
407
|
//--- view functions ----------------------------------------------------//
|
412
408
|
|
413
409
|
function getStakingReader() public view returns (StakingReader reader) {
|
@@ -422,15 +418,28 @@ contract Staking is
|
|
422
418
|
return address(_getStakingStorage()._tokenRegistry);
|
423
419
|
}
|
424
420
|
|
421
|
+
function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
|
422
|
+
return _getStakingStorage()._tokenHandler;
|
423
|
+
}
|
425
424
|
|
426
|
-
// from
|
425
|
+
// from IRegisterable
|
426
|
+
function getRelease()
|
427
|
+
public
|
428
|
+
pure
|
429
|
+
virtual override (IRelease, Registerable)
|
430
|
+
returns(VersionPart)
|
431
|
+
{
|
432
|
+
return VersionPartLib.toVersionPart(3);
|
433
|
+
}
|
434
|
+
|
435
|
+
// from IVersionable
|
427
436
|
function getVersion()
|
428
437
|
public
|
429
438
|
pure
|
430
|
-
virtual override (IVersionable, Versionable)
|
439
|
+
virtual override (Component, IVersionable, Versionable)
|
431
440
|
returns(Version)
|
432
441
|
{
|
433
|
-
return VersionLib.toVersion(
|
442
|
+
return VersionLib.toVersion(3,0,0);
|
434
443
|
}
|
435
444
|
|
436
445
|
//--- internal functions ------------------------------------------------//
|
@@ -459,13 +468,23 @@ contract Staking is
|
|
459
468
|
}
|
460
469
|
|
461
470
|
|
471
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
472
|
+
internal
|
473
|
+
virtual override
|
474
|
+
{
|
475
|
+
IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
|
476
|
+
token,
|
477
|
+
amount);
|
478
|
+
}
|
479
|
+
|
480
|
+
|
462
481
|
function _initialize(
|
463
482
|
address owner,
|
464
483
|
bytes memory data
|
465
484
|
)
|
466
485
|
internal
|
467
486
|
virtual override
|
468
|
-
initializer
|
487
|
+
initializer()
|
469
488
|
{
|
470
489
|
(
|
471
490
|
address registryAddress,
|
@@ -480,10 +499,17 @@ contract Staking is
|
|
480
499
|
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
481
500
|
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
482
501
|
|
483
|
-
|
502
|
+
// wiring to external contracts
|
503
|
+
StakingStorage storage $ = _getStakingStorage();
|
504
|
+
$._protocolNftId = registry.getProtocolNftId();
|
505
|
+
$._store = StakingStore(stakingStoreAddress);
|
506
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
507
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
508
|
+
|
509
|
+
_initializeComponent(
|
484
510
|
authority,
|
485
511
|
registryAddress,
|
486
|
-
registry.getNftId(),
|
512
|
+
registry.getNftId(), // parent nft id
|
487
513
|
CONTRACT_NAME,
|
488
514
|
dipTokenAddress,
|
489
515
|
STAKING(),
|
@@ -492,16 +518,7 @@ contract Staking is
|
|
492
518
|
"", // registry data
|
493
519
|
""); // component data
|
494
520
|
|
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);
|
521
|
+
_registerInterface(type(IStaking).interfaceId);
|
505
522
|
}
|
506
523
|
|
507
524
|
|
@@ -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
|
}
|