@etherisc/gif-next 0.0.2-d67ce7f-686 → 0.0.2-d6a50e7-658
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 +32 -8
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -371
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -295
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +239 -295
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
- 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 +502 -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 +470 -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 +470 -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 +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +927 -262
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +692 -443
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -323
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
- 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 +103 -283
- 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 +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +125 -305
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -337
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +86 -67
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +122 -313
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +384 -410
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +122 -104
- 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 +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +238 -357
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +421 -222
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -108
- 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 +303 -9
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +302 -150
- 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 +235 -202
- 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 +347 -378
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +115 -109
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
- 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 +236 -355
- 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 +315 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
- 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 +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +89 -240
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +502 -617
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -133
- 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 +448 -260
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -282
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +217 -359
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +119 -104
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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 +2 -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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- 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 +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.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/authorization/AccessAdmin.sol +192 -124
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +10 -6
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +33 -41
- package/contracts/distribution/DistributionService.sol +112 -91
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -11
- 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 +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +16 -36
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +47 -66
- package/contracts/instance/InstanceAdmin.sol +133 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
- package/contracts/instance/InstanceReader.sol +218 -27
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -1
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +14 -10
- package/contracts/instance/module/IPolicy.sol +25 -24
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +7 -17
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +14 -4
- package/contracts/pool/BundleService.sol +105 -117
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +8 -20
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +52 -48
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +297 -207
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +72 -43
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +422 -138
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +43 -7
- package/contracts/product/IPolicyService.sol +42 -37
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +477 -283
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +143 -91
- package/contracts/product/RiskService.sol +151 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +58 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +353 -203
- package/contracts/registry/RegistryAdmin.sol +161 -182
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -232
- package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +72 -127
- package/contracts/shared/ComponentService.sol +427 -377
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +252 -0
- package/contracts/shared/IComponent.sol +8 -18
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- 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 +3 -5
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -47
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +356 -29
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +71 -61
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +57 -25
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- 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 +36 -17
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +4 -13
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,26 +1,32 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
8
|
+
import {IRelease} from "../registry/IRelease.sol";
|
6
9
|
import {IStaking} from "./IStaking.sol";
|
7
10
|
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
11
|
|
9
12
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
13
|
import {Component} from "../shared/Component.sol";
|
11
14
|
import {IComponent} from "../shared/IComponent.sol";
|
15
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
16
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
17
|
+
import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
|
14
18
|
import {Seconds} from "../type/Seconds.sol";
|
19
|
+
import {Registerable} from "../shared/Registerable.sol";
|
15
20
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
16
21
|
import {StakingReader} from "./StakingReader.sol";
|
17
22
|
import {StakingStore} from "./StakingStore.sol";
|
18
23
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
19
24
|
import {Timestamp} from "../type/Timestamp.sol";
|
20
25
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
21
27
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
22
28
|
import {UFixed} from "../type/UFixed.sol";
|
23
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
29
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
24
30
|
import {Versionable} from "../upgradeability/Versionable.sol";
|
25
31
|
|
26
32
|
contract Staking is
|
@@ -29,13 +35,11 @@ contract Staking is
|
|
29
35
|
IStaking
|
30
36
|
{
|
31
37
|
string public constant CONTRACT_NAME = "Staking";
|
32
|
-
uint8 private constant GIF_MAJOR_VERSION = 3;
|
33
38
|
|
34
39
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
|
35
40
|
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
36
41
|
|
37
42
|
struct StakingStorage {
|
38
|
-
IRegistryService _registryService;
|
39
43
|
TokenRegistry _tokenRegistry;
|
40
44
|
TokenHandler _tokenHandler;
|
41
45
|
StakingStore _store;
|
@@ -59,6 +63,31 @@ contract Staking is
|
|
59
63
|
_;
|
60
64
|
}
|
61
65
|
|
66
|
+
function initializeTokenHandler()
|
67
|
+
external
|
68
|
+
{
|
69
|
+
if (msg.sender != address(getRegistry())) {
|
70
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
71
|
+
}
|
72
|
+
|
73
|
+
StakingStorage storage $ = _getStakingStorage();
|
74
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
75
|
+
address(getRegistry()),
|
76
|
+
address(this),
|
77
|
+
address(getToken()),
|
78
|
+
getRegistry().getAuthority());
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
83
|
+
public
|
84
|
+
restricted()
|
85
|
+
onlyOwner()
|
86
|
+
{
|
87
|
+
_approveTokenHandler(token, amount);
|
88
|
+
}
|
89
|
+
|
90
|
+
|
62
91
|
// set/update staking reader
|
63
92
|
function setStakingReader(StakingReader stakingReader)
|
64
93
|
external
|
@@ -300,7 +329,7 @@ contract Staking is
|
|
300
329
|
StakingStorage storage $ = _getStakingStorage();
|
301
330
|
|
302
331
|
// TODO implement
|
303
|
-
|
332
|
+
}
|
304
333
|
|
305
334
|
|
306
335
|
function updateRewards(NftId stakeNftId)
|
@@ -349,9 +378,10 @@ contract Staking is
|
|
349
378
|
Amount rewardsClaimedAmount
|
350
379
|
)
|
351
380
|
{
|
352
|
-
// TODO add check that stake locking is in the past
|
353
381
|
StakingStorage storage $ = _getStakingStorage();
|
354
|
-
|
382
|
+
|
383
|
+
StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
|
384
|
+
|
355
385
|
// update rewards since last update
|
356
386
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
357
387
|
|
@@ -370,45 +400,6 @@ contract Staking is
|
|
370
400
|
}
|
371
401
|
|
372
402
|
|
373
|
-
|
374
|
-
//--- other functions ---------------------------------------------------//
|
375
|
-
|
376
|
-
function collectDipAmount(address from, Amount dipAmount)
|
377
|
-
external
|
378
|
-
restricted() // only staking service
|
379
|
-
{
|
380
|
-
TokenHandler tokenHandler = getTokenHandler();
|
381
|
-
address stakingWallet = getWallet();
|
382
|
-
|
383
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
384
|
-
getToken(),
|
385
|
-
from,
|
386
|
-
address(tokenHandler),
|
387
|
-
dipAmount);
|
388
|
-
|
389
|
-
// TODO: centralize token handling (issue #471)
|
390
|
-
tokenHandler.transfer(from, stakingWallet, dipAmount);
|
391
|
-
}
|
392
|
-
|
393
|
-
|
394
|
-
function transferDipAmount(address to, Amount dipAmount)
|
395
|
-
external
|
396
|
-
restricted() // only staking service
|
397
|
-
{
|
398
|
-
TokenHandler tokenHandler = getTokenHandler();
|
399
|
-
address stakingWallet = getWallet();
|
400
|
-
|
401
|
-
StakeManagerLib.checkDipBalanceAndAllowance(
|
402
|
-
getToken(),
|
403
|
-
stakingWallet,
|
404
|
-
address(tokenHandler),
|
405
|
-
dipAmount);
|
406
|
-
|
407
|
-
// TODO: centralize token handling (issue #471)
|
408
|
-
tokenHandler.transfer(stakingWallet, to, dipAmount);
|
409
|
-
}
|
410
|
-
|
411
|
-
|
412
403
|
//--- view functions ----------------------------------------------------//
|
413
404
|
|
414
405
|
function getStakingReader() public view returns (StakingReader reader) {
|
@@ -427,14 +418,24 @@ contract Staking is
|
|
427
418
|
return _getStakingStorage()._tokenHandler;
|
428
419
|
}
|
429
420
|
|
430
|
-
// from
|
421
|
+
// from IRegisterable
|
422
|
+
function getRelease()
|
423
|
+
public
|
424
|
+
pure
|
425
|
+
virtual override (IRelease, Registerable)
|
426
|
+
returns(VersionPart)
|
427
|
+
{
|
428
|
+
return VersionPartLib.toVersionPart(3);
|
429
|
+
}
|
430
|
+
|
431
|
+
// from IVersionable
|
431
432
|
function getVersion()
|
432
433
|
public
|
433
434
|
pure
|
434
|
-
virtual override (IVersionable, Versionable)
|
435
|
+
virtual override (Component, IVersionable, Versionable)
|
435
436
|
returns(Version)
|
436
437
|
{
|
437
|
-
return VersionLib.toVersion(
|
438
|
+
return VersionLib.toVersion(3,0,0);
|
438
439
|
}
|
439
440
|
|
440
441
|
//--- internal functions ------------------------------------------------//
|
@@ -463,13 +464,23 @@ contract Staking is
|
|
463
464
|
}
|
464
465
|
|
465
466
|
|
467
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
468
|
+
internal
|
469
|
+
virtual override
|
470
|
+
{
|
471
|
+
IComponentService(_getServiceAddress(COMPONENT())).approveStakingTokenHandler(
|
472
|
+
token,
|
473
|
+
amount);
|
474
|
+
}
|
475
|
+
|
476
|
+
|
466
477
|
function _initialize(
|
467
478
|
address owner,
|
468
479
|
bytes memory data
|
469
480
|
)
|
470
481
|
internal
|
471
482
|
virtual override
|
472
|
-
initializer
|
483
|
+
initializer()
|
473
484
|
{
|
474
485
|
(
|
475
486
|
address registryAddress,
|
@@ -484,10 +495,17 @@ contract Staking is
|
|
484
495
|
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
485
496
|
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
486
497
|
|
487
|
-
|
498
|
+
// wiring to external contracts
|
499
|
+
StakingStorage storage $ = _getStakingStorage();
|
500
|
+
$._protocolNftId = registry.getProtocolNftId();
|
501
|
+
$._store = StakingStore(stakingStoreAddress);
|
502
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
503
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
504
|
+
|
505
|
+
_initializeComponent(
|
488
506
|
authority,
|
489
507
|
registryAddress,
|
490
|
-
registry.getNftId(),
|
508
|
+
registry.getNftId(), // parent nft id
|
491
509
|
CONTRACT_NAME,
|
492
510
|
dipTokenAddress,
|
493
511
|
STAKING(),
|
@@ -496,15 +514,7 @@ contract Staking is
|
|
496
514
|
"", // registry data
|
497
515
|
""); // component data
|
498
516
|
|
499
|
-
|
500
|
-
StakingStorage storage $ = _getStakingStorage();
|
501
|
-
$._protocolNftId = getRegistry().getProtocolNftId();
|
502
|
-
$._store = StakingStore(stakingStoreAddress);
|
503
|
-
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
504
|
-
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
505
|
-
$._tokenHandler = new TokenHandler(address(getToken()));
|
506
|
-
|
507
|
-
registerInterface(type(IStaking).interfaceId);
|
517
|
+
_registerInterface(type(IStaking).interfaceId);
|
508
518
|
}
|
509
519
|
|
510
520
|
|
@@ -18,9 +18,9 @@ contract StakingManager is
|
|
18
18
|
address registry,
|
19
19
|
address tokenRegistry,
|
20
20
|
address stakingStore,
|
21
|
-
address initialOwner
|
21
|
+
address initialOwner,
|
22
|
+
bytes32 salt
|
22
23
|
)
|
23
|
-
ProxyManager(registry)
|
24
24
|
{
|
25
25
|
Staking stakingImplementation = new Staking();
|
26
26
|
|
@@ -30,10 +30,12 @@ contract StakingManager is
|
|
30
30
|
tokenRegistry,
|
31
31
|
stakingStore,
|
32
32
|
initialOwner);
|
33
|
-
|
34
|
-
IVersionable versionable =
|
35
|
-
|
36
|
-
|
33
|
+
|
34
|
+
IVersionable versionable = initialize(
|
35
|
+
registry,
|
36
|
+
_initialImplementation,
|
37
|
+
_initializationData,
|
38
|
+
salt);
|
37
39
|
|
38
40
|
_staking = Staking(address(versionable));
|
39
41
|
}
|
@@ -1,13 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
6
8
|
import {IStaking} from "../staking/IStaking.sol";
|
7
9
|
|
8
10
|
import {Amount} from "../type/Amount.sol";
|
9
11
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
10
|
-
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
11
12
|
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
13
14
|
import {StakingStore} from "./StakingStore.sol";
|
@@ -16,16 +17,18 @@ import {UFixed} from "../type/UFixed.sol";
|
|
16
17
|
|
17
18
|
contract StakingReader is
|
18
19
|
IRegistryLinked,
|
19
|
-
|
20
|
+
Initializable
|
20
21
|
{
|
21
22
|
|
22
|
-
error
|
23
|
+
error ErrorStakingReaderUnauthorizedCaler();
|
23
24
|
|
25
|
+
address private _initializeOwner;
|
24
26
|
IRegistry private _registry;
|
25
27
|
IStaking private _staking;
|
26
28
|
StakingStore private _store;
|
27
29
|
|
28
|
-
constructor(IRegistry registry)
|
30
|
+
constructor(IRegistry registry) {
|
31
|
+
_initializeOwner = msg.sender;
|
29
32
|
_registry = registry;
|
30
33
|
}
|
31
34
|
|
@@ -34,8 +37,12 @@ contract StakingReader is
|
|
34
37
|
address stakingStoreAddress
|
35
38
|
)
|
36
39
|
external
|
37
|
-
initializer
|
40
|
+
initializer()
|
38
41
|
{
|
42
|
+
if (msg.sender != _initializeOwner) {
|
43
|
+
revert ErrorStakingReaderUnauthorizedCaler();
|
44
|
+
}
|
45
|
+
|
39
46
|
_staking = IStaking(stakingAddress);
|
40
47
|
_store = StakingStore(stakingStoreAddress);
|
41
48
|
}
|
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
8
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
9
7
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
10
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
9
|
import {RegistryService} from "../registry/RegistryService.sol";
|
12
10
|
import {IStaking} from "./IStaking.sol";
|
13
11
|
import {IStakingService} from "./IStakingService.sol";
|
14
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
-
import {ObjectType, INSTANCE,
|
13
|
+
import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
16
14
|
import {Seconds} from "../type/Seconds.sol";
|
17
15
|
import {Service} from "../shared/Service.sol";
|
18
|
-
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
|
-
import {StakingReader} from "./StakingReader.sol";
|
20
|
-
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
21
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
22
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
17
|
import {UFixed} from "../type/UFixed.sol";
|
24
18
|
|
@@ -38,14 +32,6 @@ contract StakingService is
|
|
38
32
|
TokenHandler _tokenHandler;
|
39
33
|
}
|
40
34
|
|
41
|
-
modifier onlyNftOwner(NftId nftId) {
|
42
|
-
if(msg.sender != getRegistry().ownerOf(nftId)) {
|
43
|
-
revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
|
44
|
-
}
|
45
|
-
_;
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
35
|
function createInstanceTarget(
|
50
36
|
NftId targetNftId,
|
51
37
|
Seconds initialLockingPeriod,
|
@@ -72,6 +58,7 @@ contract StakingService is
|
|
72
58
|
virtual
|
73
59
|
restricted()
|
74
60
|
{
|
61
|
+
_checkNftType(instanceNftId, INSTANCE());
|
75
62
|
_getStakingServiceStorage()._staking.setLockingPeriod(
|
76
63
|
instanceNftId,
|
77
64
|
lockingPeriod);
|
@@ -83,6 +70,7 @@ contract StakingService is
|
|
83
70
|
virtual
|
84
71
|
restricted()
|
85
72
|
{
|
73
|
+
_checkNftType(instanceNftId, INSTANCE());
|
86
74
|
_getStakingServiceStorage()._staking.setRewardRate(
|
87
75
|
instanceNftId,
|
88
76
|
rewardRate);
|
@@ -95,6 +83,7 @@ contract StakingService is
|
|
95
83
|
restricted()
|
96
84
|
returns (Amount newBalance)
|
97
85
|
{
|
86
|
+
_checkNftType(instanceNftId, INSTANCE());
|
98
87
|
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
99
88
|
}
|
100
89
|
|
@@ -116,6 +105,7 @@ contract StakingService is
|
|
116
105
|
restricted()
|
117
106
|
returns (Amount newBalance)
|
118
107
|
{
|
108
|
+
_checkNftType(instanceNftId, INSTANCE());
|
119
109
|
// update reward reserve book keeping
|
120
110
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
121
111
|
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
@@ -123,7 +113,8 @@ contract StakingService is
|
|
123
113
|
// transfer withdrawal amount to target owner
|
124
114
|
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
125
115
|
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
126
|
-
|
116
|
+
_distributeToken(
|
117
|
+
$._staking.getTokenHandler(),
|
127
118
|
instanceOwner,
|
128
119
|
dipAmount);
|
129
120
|
}
|
@@ -171,11 +162,38 @@ contract StakingService is
|
|
171
162
|
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
172
163
|
|
173
164
|
// collect staked dip by staking
|
174
|
-
|
175
|
-
|
165
|
+
_collectToken(
|
166
|
+
$._staking.getTokenHandler(),
|
167
|
+
stakeOwner,
|
176
168
|
dipAmount);
|
177
169
|
}
|
178
170
|
|
171
|
+
function _collectToken(
|
172
|
+
TokenHandler tokenHandler,
|
173
|
+
address from,
|
174
|
+
Amount amount
|
175
|
+
)
|
176
|
+
internal
|
177
|
+
virtual
|
178
|
+
{
|
179
|
+
tokenHandler.collectTokens(
|
180
|
+
from,
|
181
|
+
amount);
|
182
|
+
}
|
183
|
+
|
184
|
+
function _distributeToken(
|
185
|
+
TokenHandler tokenHandler,
|
186
|
+
address to,
|
187
|
+
Amount amount
|
188
|
+
)
|
189
|
+
internal
|
190
|
+
virtual
|
191
|
+
{
|
192
|
+
tokenHandler.pushToken(
|
193
|
+
to,
|
194
|
+
amount);
|
195
|
+
}
|
196
|
+
|
179
197
|
|
180
198
|
function stake(
|
181
199
|
NftId stakeNftId,
|
@@ -186,6 +204,8 @@ contract StakingService is
|
|
186
204
|
restricted()
|
187
205
|
onlyNftOwner(stakeNftId)
|
188
206
|
{
|
207
|
+
_checkNftType(stakeNftId, STAKE());
|
208
|
+
|
189
209
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
190
210
|
address stakeOwner = msg.sender;
|
191
211
|
|
@@ -197,7 +217,8 @@ contract StakingService is
|
|
197
217
|
// collect staked dip by staking
|
198
218
|
if (dipAmount.gtz()) {
|
199
219
|
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
200
|
-
|
220
|
+
_collectToken(
|
221
|
+
$._staking.getTokenHandler(),
|
201
222
|
stakeOwner,
|
202
223
|
dipAmount);
|
203
224
|
}
|
@@ -216,6 +237,8 @@ contract StakingService is
|
|
216
237
|
NftId newStakeNftId
|
217
238
|
)
|
218
239
|
{
|
240
|
+
_checkNftType(stakeNftId, STAKE());
|
241
|
+
|
219
242
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
220
243
|
// TODO implement
|
221
244
|
}
|
@@ -228,6 +251,8 @@ contract StakingService is
|
|
228
251
|
virtual
|
229
252
|
restricted()
|
230
253
|
{
|
254
|
+
_checkNftType(stakeNftId, STAKE());
|
255
|
+
|
231
256
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
232
257
|
$._staking.updateRewards(stakeNftId);
|
233
258
|
|
@@ -241,12 +266,15 @@ contract StakingService is
|
|
241
266
|
restricted()
|
242
267
|
onlyNftOwner(stakeNftId)
|
243
268
|
{
|
269
|
+
_checkNftType(stakeNftId, STAKE());
|
270
|
+
|
244
271
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
245
272
|
address stakeOwner = msg.sender;
|
246
273
|
|
247
274
|
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
248
275
|
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
249
|
-
|
276
|
+
_distributeToken(
|
277
|
+
$._staking.getTokenHandler(),
|
250
278
|
stakeOwner,
|
251
279
|
rewardsClaimedAmount);
|
252
280
|
}
|
@@ -258,6 +286,8 @@ contract StakingService is
|
|
258
286
|
restricted()
|
259
287
|
onlyNftOwner(stakeNftId)
|
260
288
|
{
|
289
|
+
_checkNftType(stakeNftId, STAKE());
|
290
|
+
|
261
291
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
262
292
|
address stakeOwner = msg.sender;
|
263
293
|
|
@@ -268,8 +298,9 @@ contract StakingService is
|
|
268
298
|
|
269
299
|
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
270
300
|
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
271
|
-
|
272
|
-
|
301
|
+
|
302
|
+
$._staking.getTokenHandler().pushToken(
|
303
|
+
stakeOwner,
|
273
304
|
totalAmount);
|
274
305
|
}
|
275
306
|
|
@@ -331,7 +362,7 @@ contract StakingService is
|
|
331
362
|
address stakingAddress
|
332
363
|
) = abi.decode(data, (address, address, address));
|
333
364
|
|
334
|
-
|
365
|
+
__Service_init(authority, registryAddress, owner);
|
335
366
|
|
336
367
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
337
368
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
@@ -339,7 +370,7 @@ contract StakingService is
|
|
339
370
|
$._dip = $._staking.getToken();
|
340
371
|
$._tokenHandler = $._staking.getTokenHandler();
|
341
372
|
|
342
|
-
|
373
|
+
_registerInterface(type(IStakingService).interfaceId);
|
343
374
|
}
|
344
375
|
|
345
376
|
|
@@ -388,7 +419,8 @@ contract StakingService is
|
|
388
419
|
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
389
420
|
|
390
421
|
// collect reward dip from provider
|
391
|
-
|
422
|
+
_collectToken(
|
423
|
+
$._staking.getTokenHandler(),
|
392
424
|
rewardProvider,
|
393
425
|
dipAmount);
|
394
426
|
}
|
@@ -18,14 +18,14 @@ contract StakingServiceManager is
|
|
18
18
|
address registryAddress,
|
19
19
|
bytes32 salt
|
20
20
|
)
|
21
|
-
ProxyManager(registryAddress)
|
22
21
|
{
|
23
22
|
StakingService svc = new StakingService();
|
24
23
|
bytes memory data = abi.encode(
|
25
24
|
authority,
|
26
25
|
registryAddress,
|
27
26
|
IRegistry(registryAddress).getStakingAddress());
|
28
|
-
IVersionable versionable =
|
27
|
+
IVersionable versionable = initialize(
|
28
|
+
registryAddress,
|
29
29
|
address(svc),
|
30
30
|
data,
|
31
31
|
salt);
|
@@ -132,9 +132,9 @@ library TargetManagerLib {
|
|
132
132
|
public
|
133
133
|
pure
|
134
134
|
{
|
135
|
-
// check locking period is
|
136
|
-
if (lockingPeriod.
|
137
|
-
revert IStaking.
|
135
|
+
// check locking period is >= min locking period
|
136
|
+
if (lockingPeriod.lt(getMinimumLockingPeriod())) {
|
137
|
+
revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
|
138
138
|
}
|
139
139
|
|
140
140
|
// check locking period <= max locking period
|
@@ -190,6 +190,10 @@ library TargetManagerLib {
|
|
190
190
|
return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
|
191
191
|
}
|
192
192
|
|
193
|
+
/// @dev the minimum locking period is 24 hours
|
194
|
+
function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
|
195
|
+
return SecondsLib.toSeconds(24 * 3600);
|
196
|
+
}
|
193
197
|
|
194
198
|
function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
|
195
199
|
return UFixedLib.toUFixed(33, -2);
|
@@ -11,7 +11,9 @@ using {
|
|
11
11
|
eqAmount as ==,
|
12
12
|
nqAmount as !=,
|
13
13
|
ltAmount as <,
|
14
|
+
ltAmount as <=,
|
14
15
|
gtAmount as >,
|
16
|
+
gteAmount as >=,
|
15
17
|
AmountLib.add,
|
16
18
|
AmountLib.eq,
|
17
19
|
AmountLib.eqz,
|
@@ -43,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
|
|
43
45
|
return AmountLib.lt(a, b);
|
44
46
|
}
|
45
47
|
|
48
|
+
function lteAmount(Amount a, Amount b) pure returns (bool) {
|
49
|
+
return AmountLib.lte(a, b);
|
50
|
+
}
|
51
|
+
|
46
52
|
function gtAmount(Amount a, Amount b) pure returns (bool) {
|
47
53
|
return AmountLib.gt(a, b);
|
48
54
|
}
|
49
55
|
|
56
|
+
function gteAmount(Amount a, Amount b) pure returns (bool) {
|
57
|
+
return AmountLib.gte(a, b);
|
58
|
+
}
|
59
|
+
|
50
60
|
library AmountLib {
|
51
61
|
|
52
62
|
error ErrorAmountLibValueTooBig(uint256 amount);
|
@@ -84,6 +94,11 @@ library AmountLib {
|
|
84
94
|
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
85
95
|
}
|
86
96
|
|
97
|
+
/// @dev return true if amount a1 is less or equal than a2
|
98
|
+
function lte(Amount a1, Amount a2) public pure returns (bool) {
|
99
|
+
return Amount.unwrap(a1) <= Amount.unwrap(a2);
|
100
|
+
}
|
101
|
+
|
87
102
|
/// @dev return true if amount a1 is greater than a2
|
88
103
|
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
89
104
|
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
@@ -12,6 +12,7 @@ import {NftId} from "./NftId.sol";
|
|
12
12
|
using {
|
13
13
|
eqClaimId as ==,
|
14
14
|
neClaimId as !=,
|
15
|
+
ClaimIdLib.eq,
|
15
16
|
ClaimIdLib.eqz,
|
16
17
|
ClaimIdLib.gtz,
|
17
18
|
ClaimIdLib.toInt,
|
@@ -21,7 +22,7 @@ using {
|
|
21
22
|
|
22
23
|
// pure free functions for operators
|
23
24
|
function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
|
24
|
-
return
|
25
|
+
return ClaimIdLib.eq(a, b);
|
25
26
|
}
|
26
27
|
|
27
28
|
function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
|
@@ -68,6 +69,10 @@ library ClaimIdLib {
|
|
68
69
|
return ClaimId.unwrap(a) > 0;
|
69
70
|
}
|
70
71
|
|
72
|
+
function eq(ClaimId a, ClaimId b) public pure returns (bool) {
|
73
|
+
return ClaimId.unwrap(a) == ClaimId.unwrap(b);
|
74
|
+
}
|
75
|
+
|
71
76
|
/// @dev Returns true if the value is zero (== 0).
|
72
77
|
function eqz(ClaimId a) public pure returns (bool) {
|
73
78
|
return ClaimId.unwrap(a) == 0;
|
package/contracts/type/Key32.sol
CHANGED
@@ -28,8 +28,8 @@ library Key32Lib {
|
|
28
28
|
|
29
29
|
uint8 public constant TYPE_SHIFT = 31 * 8;
|
30
30
|
uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
|
31
|
-
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); //
|
32
|
-
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); //
|
31
|
+
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // [32] byte in bytes32
|
32
|
+
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // [0..31] bytes in bytes32
|
33
33
|
|
34
34
|
function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
|
35
35
|
uint256 uintObjectType = ObjectType.unwrap(objectType);
|