@etherisc/gif-next 0.0.2-e4b632c-016 → 0.0.2-e4d7e1c-013
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 +205 -21
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +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 +1037 -329
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +741 -139
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +561 -2778
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1997 -634
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +789 -216
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +413 -73
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +931 -154
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +409 -209
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1259 -258
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -323
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +384 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Component.sol/Component.json} +374 -150
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +319 -250
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +247 -0
- package/contracts/distribution/DistributionService.sol +448 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +45 -0
- package/contracts/distribution/IDistributionService.sol +115 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +131 -19
- package/contracts/instance/IInstanceService.sol +104 -17
- package/contracts/instance/Instance.sol +246 -341
- package/contracts/instance/InstanceAdmin.sol +383 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
- package/contracts/instance/InstanceReader.sol +531 -189
- package/contracts/instance/InstanceService.sol +451 -89
- package/contracts/instance/InstanceServiceManager.sol +14 -31
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +10 -8
- package/contracts/instance/module/IComponents.sol +62 -0
- package/contracts/instance/module/IDistribution.sol +25 -10
- package/contracts/instance/module/IPolicy.sol +81 -21
- package/contracts/instance/module/IRisk.sol +6 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +162 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +386 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +116 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +170 -0
- package/contracts/pool/Pool.sol +333 -0
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +614 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +327 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +630 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +88 -0
- package/contracts/product/IClaimService.sol +136 -0
- package/contracts/product/IPolicyService.sol +102 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +645 -0
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +306 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +493 -0
- package/contracts/product/RiskService.sol +190 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +82 -35
- package/contracts/registry/IRegistry.sol +134 -20
- package/contracts/registry/IRegistryService.sol +44 -17
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +580 -267
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +123 -326
- package/contracts/registry/RegistryServiceManager.sol +27 -38
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +317 -0
- package/contracts/shared/Component.sol +214 -0
- package/contracts/shared/ComponentService.sol +687 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +17 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +24 -5
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +77 -84
- package/contracts/shared/PolicyHolder.sol +63 -0
- package/contracts/shared/Registerable.sol +54 -37
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +46 -33
- package/contracts/shared/TokenHandler.sol +327 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +367 -0
- package/contracts/staking/IStakingService.sol +127 -0
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +798 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +321 -0
- package/contracts/staking/StakingServiceManager.sol +46 -0
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +154 -0
- package/contracts/{types → type}/Blocknumber.sol +36 -12
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +28 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +307 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +180 -0
- package/contracts/type/Seconds.sol +120 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +65 -0
- package/contracts/{types → type}/Timestamp.sol +36 -20
- package/contracts/type/UFixed.sol +263 -0
- package/contracts/{types → type}/Version.sol +61 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
- package/contracts/upgradeability/ProxyManager.sol +246 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/upgradeability/Versionable.sol +62 -0
- package/package.json +12 -8
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -754
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -604
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/Distribution.sol +0 -166
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/components/IDistributionComponent.sol +0 -43
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -259
- package/contracts/components/Product.sol +0 -297
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -122
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -39
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/IAccess.sol +0 -38
- package/contracts/instance/module/ISetup.sol +0 -43
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -70
- package/contracts/instance/service/DistributionServiceManager.sol +0 -53
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -21
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -56
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -82
- package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,132 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
6
|
+
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
|
9
|
+
|
10
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
11
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {StakingStore} from "./StakingStore.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
|
16
|
+
|
17
|
+
contract TargetHandler is
|
18
|
+
Initializable,
|
19
|
+
AccessManaged,
|
20
|
+
ITargetLimitHandler
|
21
|
+
{
|
22
|
+
|
23
|
+
event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
|
24
|
+
|
25
|
+
IRegistry private _registry;
|
26
|
+
StakingStore private _store;
|
27
|
+
|
28
|
+
/// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
|
29
|
+
uint16 private _tvlUpdatesTrigger;
|
30
|
+
/// @dev Maximum TVL ratio: Any ratio above this value will trigger a limit update
|
31
|
+
UFixed private _minTvlRatioTrigger;
|
32
|
+
Blocknumber private _lastUpdateIn;
|
33
|
+
|
34
|
+
|
35
|
+
constructor (
|
36
|
+
IRegistry registry,
|
37
|
+
StakingStore stakingStore
|
38
|
+
)
|
39
|
+
AccessManaged(msg.sender)
|
40
|
+
{
|
41
|
+
// set final authority and registry
|
42
|
+
setAuthority(registry.getAuthority());
|
43
|
+
_registry = registry;
|
44
|
+
_store = stakingStore;
|
45
|
+
|
46
|
+
// set default trigger values
|
47
|
+
_setUpdateTriggers(
|
48
|
+
10, // check after 2 TVL updates
|
49
|
+
UFixedLib.toUFixed(1, -1)); // 10% deviation from baseline TVL
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
// TODO do we really need this?
|
54
|
+
// if so: add onlyDeployer (new base contract? also for reader)
|
55
|
+
// if not: remove oz intializer/initializable
|
56
|
+
function initialize()
|
57
|
+
external
|
58
|
+
initializer()
|
59
|
+
{ }
|
60
|
+
|
61
|
+
//--- staking functions -------------------------------------------------------//
|
62
|
+
|
63
|
+
/// @dev Sets the TVL update triggers.
|
64
|
+
function setUpdateTriggers(
|
65
|
+
uint16 tvlUpdatesTrigger,
|
66
|
+
UFixed minTvlRatioTrigger
|
67
|
+
)
|
68
|
+
external
|
69
|
+
restricted()
|
70
|
+
{
|
71
|
+
_setUpdateTriggers(tvlUpdatesTrigger, minTvlRatioTrigger);
|
72
|
+
}
|
73
|
+
|
74
|
+
//--- ITargetLimitHandler -----------------------------------------------------//
|
75
|
+
|
76
|
+
/// @inheritdoc ITargetLimitHandler
|
77
|
+
// Current implementation only considers the TVL amounts.
|
78
|
+
// Future implementations may also consider target or token specific factors.
|
79
|
+
function isLimitUpdateRequired(
|
80
|
+
NftId, // targetNftId
|
81
|
+
address , // token
|
82
|
+
uint16 tvlUpdatesCount,
|
83
|
+
Amount baselineTvlAmount,
|
84
|
+
Amount currentTvlAmount
|
85
|
+
)
|
86
|
+
external
|
87
|
+
virtual
|
88
|
+
view
|
89
|
+
returns (bool updateIsRequired)
|
90
|
+
{
|
91
|
+
// no update required if below the TVL updates trigger
|
92
|
+
if (tvlUpdatesCount < _tvlUpdatesTrigger) {
|
93
|
+
return false;
|
94
|
+
}
|
95
|
+
|
96
|
+
// no update required if both amounts are zero
|
97
|
+
Amount zero = AmountLib.zero();
|
98
|
+
if (baselineTvlAmount == zero && currentTvlAmount == zero) {
|
99
|
+
return false;
|
100
|
+
|
101
|
+
// update required if one amount is zero
|
102
|
+
} else if (baselineTvlAmount == zero || currentTvlAmount == zero) {
|
103
|
+
return true;
|
104
|
+
}
|
105
|
+
|
106
|
+
// calculate the ratio of the current TVL amount to the baseline TVL amount
|
107
|
+
UFixed baseline = baselineTvlAmount.toUFixed();
|
108
|
+
UFixed current = currentTvlAmount.toUFixed();
|
109
|
+
UFixed ratio;
|
110
|
+
|
111
|
+
if (baseline > current) { ratio = baseline / current; }
|
112
|
+
else { ratio = current / baseline; }
|
113
|
+
|
114
|
+
// update required if the ratio is above the maximum TVL ratio
|
115
|
+
return ratio >= _minTvlRatioTrigger;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
function _setUpdateTriggers(
|
120
|
+
uint16 tvlUpdatesTrigger,
|
121
|
+
UFixed minTvlRatioTrigger
|
122
|
+
)
|
123
|
+
internal
|
124
|
+
{
|
125
|
+
Blocknumber lastUpdateIn = _lastUpdateIn;
|
126
|
+
_tvlUpdatesTrigger = tvlUpdatesTrigger;
|
127
|
+
_minTvlRatioTrigger = minTvlRatioTrigger;
|
128
|
+
_lastUpdateIn = BlocknumberLib.current();
|
129
|
+
|
130
|
+
emit LogTargetHandlerUpdateTriggersSet(tvlUpdatesTrigger, minTvlRatioTrigger, lastUpdateIn);
|
131
|
+
}
|
132
|
+
}
|
@@ -0,0 +1,234 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IStaking} from "./IStaking.sol";
|
7
|
+
|
8
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
9
|
+
import {ChainIdLib} from "../type/ChainId.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
|
+
import {IStaking} from "./IStaking.sol";
|
13
|
+
import {Key32} from "../type/Key32.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
15
|
+
import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
|
16
|
+
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
17
|
+
import {StakingReader} from "./StakingReader.sol";
|
18
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
|
20
|
+
|
21
|
+
library TargetManagerLib {
|
22
|
+
|
23
|
+
function updateLockingPeriod(
|
24
|
+
IStaking staking,
|
25
|
+
NftId targetNftId,
|
26
|
+
Seconds lockingPeriod
|
27
|
+
)
|
28
|
+
external
|
29
|
+
view
|
30
|
+
returns (
|
31
|
+
Seconds oldLockingPeriod,
|
32
|
+
IStaking.TargetInfo memory targetInfo
|
33
|
+
)
|
34
|
+
{
|
35
|
+
StakingReader reader = staking.getStakingReader();
|
36
|
+
|
37
|
+
// check target exists
|
38
|
+
if(!reader.isTarget(targetNftId)) {
|
39
|
+
revert IStaking.ErrorStakingTargetNotFound(targetNftId);
|
40
|
+
}
|
41
|
+
|
42
|
+
ObjectType targetType = reader.getTargetInfo(targetNftId).objectType;
|
43
|
+
checkLockingPeriod(reader, targetNftId, targetType, lockingPeriod);
|
44
|
+
|
45
|
+
targetInfo = reader.getTargetInfo(targetNftId);
|
46
|
+
oldLockingPeriod = targetInfo.lockingPeriod;
|
47
|
+
|
48
|
+
targetInfo.lockingPeriod = lockingPeriod;
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
function updateRewardRate(
|
53
|
+
IStaking staking,
|
54
|
+
NftId targetNftId,
|
55
|
+
UFixed rewardRate
|
56
|
+
)
|
57
|
+
external
|
58
|
+
view
|
59
|
+
returns (
|
60
|
+
UFixed oldRewardRate,
|
61
|
+
IStaking.TargetInfo memory targetInfo
|
62
|
+
)
|
63
|
+
{
|
64
|
+
StakingReader reader = staking.getStakingReader();
|
65
|
+
|
66
|
+
// check target exists
|
67
|
+
if(!reader.isTarget(targetNftId)) {
|
68
|
+
revert IStaking.ErrorStakingTargetNotFound(targetNftId);
|
69
|
+
}
|
70
|
+
|
71
|
+
ObjectType targetType = reader.getTargetInfo(targetNftId).objectType;
|
72
|
+
checkRewardRate(reader, targetNftId, targetType, rewardRate);
|
73
|
+
|
74
|
+
targetInfo = reader.getTargetInfo(targetNftId);
|
75
|
+
oldRewardRate = targetInfo.rewardRate;
|
76
|
+
|
77
|
+
targetInfo.rewardRate = rewardRate;
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
function checkTargetParameters(
|
82
|
+
IRegistry registry,
|
83
|
+
StakingReader stakingReader,
|
84
|
+
NftId targetNftId,
|
85
|
+
ObjectType expectedObjectType,
|
86
|
+
Seconds lockingPeriod,
|
87
|
+
UFixed rewardRate
|
88
|
+
)
|
89
|
+
external
|
90
|
+
view
|
91
|
+
{
|
92
|
+
// target nft id must not be zero
|
93
|
+
if (targetNftId.eqz()) {
|
94
|
+
revert IStaking.ErrorStakingTargetNftIdZero();
|
95
|
+
}
|
96
|
+
|
97
|
+
// only accept "new" targets to be registered
|
98
|
+
if (stakingReader.isTarget(targetNftId)) {
|
99
|
+
revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
|
100
|
+
}
|
101
|
+
|
102
|
+
// get setup info for additional checks
|
103
|
+
IStaking.SupportInfo memory supportInfo = stakingReader.getSupportInfo(expectedObjectType);
|
104
|
+
|
105
|
+
// check if type is supported and new targets of that type are allowed
|
106
|
+
if (!(supportInfo.isSupported && supportInfo.allowNewTargets)) {
|
107
|
+
revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
|
108
|
+
}
|
109
|
+
|
110
|
+
// check if cross chain targets are allowed (if applicable)
|
111
|
+
bool isCurrentChain = ChainIdLib.isCurrentChain(targetNftId);
|
112
|
+
if (!supportInfo.allowCrossChain && !isCurrentChain) {
|
113
|
+
revert IStaking.ErrorStakingCrossChainTargetsNotSupported(targetNftId, expectedObjectType);
|
114
|
+
}
|
115
|
+
|
116
|
+
// additional check for current chain target: target nft id must be known and registered with the expected object type
|
117
|
+
if (isCurrentChain) {
|
118
|
+
if (!registry.isRegistered(targetNftId)) {
|
119
|
+
revert IStaking.ErrorStakingTargetNotFound(targetNftId);
|
120
|
+
} else {
|
121
|
+
// check that expected object type matches with registered object type
|
122
|
+
ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
|
123
|
+
if (actualObjectType != expectedObjectType) {
|
124
|
+
revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
// check locking period and reward rate
|
130
|
+
_checkLockingPeriod(targetNftId, lockingPeriod, supportInfo);
|
131
|
+
_checkRewardRate(targetNftId, rewardRate, supportInfo);
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
function checkLockingPeriod(StakingReader reader, NftId targetNftId, ObjectType targetType, Seconds lockingPeriod)
|
136
|
+
public
|
137
|
+
view
|
138
|
+
{
|
139
|
+
IStaking.SupportInfo memory supportInfo = reader.getSupportInfo(targetType);
|
140
|
+
_checkLockingPeriod(targetNftId, lockingPeriod, supportInfo);
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
function checkRewardRate(StakingReader reader, NftId targetNftId, ObjectType targetType, UFixed rewardRate)
|
145
|
+
public
|
146
|
+
view
|
147
|
+
{
|
148
|
+
IStaking.SupportInfo memory supportInfo = reader.getSupportInfo(targetType);
|
149
|
+
_checkRewardRate(targetNftId, rewardRate, supportInfo);
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
function calculateRequiredDipAmount(
|
154
|
+
Amount tokenAmount,
|
155
|
+
UFixed stakingRate
|
156
|
+
)
|
157
|
+
public
|
158
|
+
pure
|
159
|
+
returns (Amount dipAmount)
|
160
|
+
{
|
161
|
+
dipAmount = tokenAmount.multiplyWith(stakingRate);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function calculateStakingRate(
|
166
|
+
IERC20Metadata dipToken,
|
167
|
+
IERC20Metadata token,
|
168
|
+
UFixed requiredDipPerToken
|
169
|
+
)
|
170
|
+
public
|
171
|
+
view
|
172
|
+
returns (UFixed stakingRate)
|
173
|
+
{
|
174
|
+
UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
|
175
|
+
stakingRate = requiredDipPerToken * decimalsFactor;
|
176
|
+
}
|
177
|
+
|
178
|
+
|
179
|
+
function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
|
180
|
+
return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
|
181
|
+
}
|
182
|
+
|
183
|
+
|
184
|
+
function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
|
185
|
+
return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
|
186
|
+
}
|
187
|
+
|
188
|
+
/// @dev the minimum locking period is 24 hours
|
189
|
+
function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
|
190
|
+
return SecondsLib.toSeconds(24 * 3600);
|
191
|
+
}
|
192
|
+
|
193
|
+
function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
|
194
|
+
return UFixedLib.toUFixed(33, -2);
|
195
|
+
}
|
196
|
+
|
197
|
+
|
198
|
+
function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
|
199
|
+
return UFixedLib.toUFixed(5, -2);
|
200
|
+
}
|
201
|
+
|
202
|
+
|
203
|
+
function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
|
204
|
+
return targetNftId.toKey32(TARGET());
|
205
|
+
}
|
206
|
+
|
207
|
+
|
208
|
+
function _checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod, IStaking.SupportInfo memory supportInfo)
|
209
|
+
private
|
210
|
+
pure
|
211
|
+
{
|
212
|
+
if (lockingPeriod < supportInfo.minLockingPeriod || lockingPeriod > supportInfo.maxLockingPeriod) {
|
213
|
+
revert IStaking.ErrorStakingLockingPeriodInvalid(
|
214
|
+
targetNftId,
|
215
|
+
lockingPeriod,
|
216
|
+
supportInfo.minLockingPeriod,
|
217
|
+
supportInfo.maxLockingPeriod);
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
function _checkRewardRate(NftId targetNftId, UFixed rewardRate, IStaking.SupportInfo memory supportInfo)
|
223
|
+
private
|
224
|
+
pure
|
225
|
+
{
|
226
|
+
if (rewardRate < supportInfo.minRewardRate || rewardRate > supportInfo.maxRewardRate) {
|
227
|
+
revert IStaking.ErrorStakingRewardRateInvalid(
|
228
|
+
targetNftId,
|
229
|
+
rewardRate,
|
230
|
+
supportInfo.minRewardRate,
|
231
|
+
supportInfo.maxRewardRate);
|
232
|
+
}
|
233
|
+
}
|
234
|
+
}
|
@@ -0,0 +1,154 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {UFixed, UFixedLib} from "./UFixed.sol";
|
5
|
+
|
6
|
+
/// @dev Targets: 100 trillion (worlds GDP) with 6 decimal places
|
7
|
+
/// 3 trillion USD (total crypto market cap) with 12 decimal places.
|
8
|
+
/// 2023 100 trillion USD => 100e12 * 1e6 = 1e20
|
9
|
+
/// 2024 2 trillion crypto market cap => 2e12 * 1e18 = 2e30
|
10
|
+
type Amount is uint96;
|
11
|
+
|
12
|
+
using {
|
13
|
+
addAmount as +,
|
14
|
+
subAmount as -,
|
15
|
+
eqAmount as ==,
|
16
|
+
nqAmount as !=,
|
17
|
+
ltAmount as <,
|
18
|
+
ltAmount as <=,
|
19
|
+
gtAmount as >,
|
20
|
+
gteAmount as >=,
|
21
|
+
AmountLib.add,
|
22
|
+
AmountLib.eq,
|
23
|
+
AmountLib.eqz,
|
24
|
+
AmountLib.gtz,
|
25
|
+
AmountLib.gt,
|
26
|
+
AmountLib.gte,
|
27
|
+
AmountLib.multiplyWith,
|
28
|
+
AmountLib.toInt,
|
29
|
+
AmountLib.toUFixed
|
30
|
+
} for Amount global;
|
31
|
+
|
32
|
+
function addAmount(Amount a, Amount b) pure returns (Amount) {
|
33
|
+
return AmountLib.add(a, b);
|
34
|
+
}
|
35
|
+
|
36
|
+
function subAmount(Amount a, Amount b) pure returns (Amount) {
|
37
|
+
return AmountLib.sub(a, b);
|
38
|
+
}
|
39
|
+
|
40
|
+
function eqAmount(Amount a, Amount b) pure returns (bool) {
|
41
|
+
return AmountLib.eq(a, b);
|
42
|
+
}
|
43
|
+
|
44
|
+
function nqAmount(Amount a, Amount b) pure returns (bool) {
|
45
|
+
return !AmountLib.eq(a, b);
|
46
|
+
}
|
47
|
+
|
48
|
+
function ltAmount(Amount a, Amount b) pure returns (bool) {
|
49
|
+
return AmountLib.lt(a, b);
|
50
|
+
}
|
51
|
+
|
52
|
+
function lteAmount(Amount a, Amount b) pure returns (bool) {
|
53
|
+
return AmountLib.lte(a, b);
|
54
|
+
}
|
55
|
+
|
56
|
+
function gtAmount(Amount a, Amount b) pure returns (bool) {
|
57
|
+
return AmountLib.gt(a, b);
|
58
|
+
}
|
59
|
+
|
60
|
+
function gteAmount(Amount a, Amount b) pure returns (bool) {
|
61
|
+
return AmountLib.gte(a, b);
|
62
|
+
}
|
63
|
+
|
64
|
+
library AmountLib {
|
65
|
+
|
66
|
+
error ErrorAmountLibValueTooBig(uint256 amount);
|
67
|
+
|
68
|
+
function zero() public pure returns (Amount) {
|
69
|
+
return Amount.wrap(0);
|
70
|
+
}
|
71
|
+
|
72
|
+
function max() public pure returns (Amount) {
|
73
|
+
return Amount.wrap(_max());
|
74
|
+
}
|
75
|
+
|
76
|
+
/// @dev converts the uint amount into Amount
|
77
|
+
/// function reverts if value is exceeding max Amount value
|
78
|
+
function toAmount(uint256 amount) public pure returns (Amount) {
|
79
|
+
if(amount > _max()) {
|
80
|
+
revert ErrorAmountLibValueTooBig(amount);
|
81
|
+
}
|
82
|
+
|
83
|
+
return Amount.wrap(uint96(amount));
|
84
|
+
}
|
85
|
+
|
86
|
+
/// @dev return true if amount equals 0
|
87
|
+
function eqz(Amount amount) public pure returns (bool) {
|
88
|
+
return Amount.unwrap(amount) == 0;
|
89
|
+
}
|
90
|
+
|
91
|
+
/// @dev return true if amount1 equals amount2
|
92
|
+
function eq(Amount amount1, Amount amount2) public pure returns (bool) {
|
93
|
+
return Amount.unwrap(amount1) == Amount.unwrap(amount2);
|
94
|
+
}
|
95
|
+
|
96
|
+
/// @dev return true if amount a1 is less than a2
|
97
|
+
function lt(Amount a1, Amount a2) public pure returns (bool) {
|
98
|
+
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
99
|
+
}
|
100
|
+
|
101
|
+
/// @dev return true if amount a1 is less or equal than a2
|
102
|
+
function lte(Amount a1, Amount a2) public pure returns (bool) {
|
103
|
+
return Amount.unwrap(a1) <= Amount.unwrap(a2);
|
104
|
+
}
|
105
|
+
|
106
|
+
/// @dev return true if amount a1 is greater than a2
|
107
|
+
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
108
|
+
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
109
|
+
}
|
110
|
+
|
111
|
+
/// @dev return true if amount a1 is greater or equal than a2
|
112
|
+
function gte(Amount a1, Amount a2) public pure returns (bool) {
|
113
|
+
return Amount.unwrap(a1) >= Amount.unwrap(a2);
|
114
|
+
}
|
115
|
+
|
116
|
+
/// @dev return minimum of a1 and a2.
|
117
|
+
function min(Amount a1, Amount a2) public pure returns (Amount) {
|
118
|
+
if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
|
119
|
+
return a1;
|
120
|
+
}
|
121
|
+
|
122
|
+
return a2;
|
123
|
+
}
|
124
|
+
|
125
|
+
/// @dev return true if amount is larger than 0
|
126
|
+
function gtz(Amount amount) public pure returns (bool) {
|
127
|
+
return Amount.unwrap(amount) > 0;
|
128
|
+
}
|
129
|
+
|
130
|
+
function add(Amount a1, Amount a2) public pure returns (Amount) {
|
131
|
+
return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
|
132
|
+
}
|
133
|
+
|
134
|
+
function sub(Amount a1, Amount a2) public pure returns (Amount) {
|
135
|
+
return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
|
136
|
+
}
|
137
|
+
|
138
|
+
function toInt(Amount amount) public pure returns (uint256) {
|
139
|
+
return uint256(uint96(Amount.unwrap(amount)));
|
140
|
+
}
|
141
|
+
|
142
|
+
function toUFixed(Amount amount) public pure returns (UFixed) {
|
143
|
+
return UFixedLib.toUFixed(Amount.unwrap(amount));
|
144
|
+
}
|
145
|
+
|
146
|
+
function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
|
147
|
+
return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
|
148
|
+
}
|
149
|
+
|
150
|
+
function _max() internal pure returns (uint96) {
|
151
|
+
// IMPORTANT: type nees to match with actual definition for Amount
|
152
|
+
return type(uint96).max;
|
153
|
+
}
|
154
|
+
}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
|
4
|
+
/// @dev Target: Cover 10 years with 1 ms block times.
|
5
|
+
/// Typical block times are a few seconds.
|
6
|
+
type Blocknumber is uint40;
|
5
7
|
|
6
8
|
using {
|
7
9
|
gtBlocknumber as >,
|
@@ -10,7 +12,15 @@ using {
|
|
10
12
|
lteBlocknumber as <=,
|
11
13
|
eqBlocknumber as ==,
|
12
14
|
neBlocknumber as !=,
|
13
|
-
BlocknumberLib.toInt
|
15
|
+
BlocknumberLib.toInt,
|
16
|
+
BlocknumberLib.eq,
|
17
|
+
BlocknumberLib.ne,
|
18
|
+
BlocknumberLib.eqz,
|
19
|
+
BlocknumberLib.gtz,
|
20
|
+
BlocknumberLib.gt,
|
21
|
+
BlocknumberLib.gte,
|
22
|
+
BlocknumberLib.lt,
|
23
|
+
BlocknumberLib.lte
|
14
24
|
} for Blocknumber global;
|
15
25
|
|
16
26
|
/// @dev return true if Blocknumber a is greater than Blocknumber b
|
@@ -48,21 +58,35 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
|
|
48
58
|
return Blocknumber.wrap(uint32(blocknum));
|
49
59
|
}
|
50
60
|
|
51
|
-
function blockBlocknumber() view returns (Blocknumber) {
|
52
|
-
return toBlocknumber(block.number);
|
53
|
-
}
|
54
|
-
|
55
|
-
/// @dev Return the Blocknumber zero (0)
|
56
|
-
function zeroBlocknumber() pure returns (Blocknumber) {
|
57
|
-
return toBlocknumber(0);
|
58
|
-
}
|
59
|
-
|
60
61
|
/// @dev Return the current block number
|
61
62
|
function blockNumber() view returns (Blocknumber) {
|
62
63
|
return toBlocknumber(block.number);
|
63
64
|
}
|
64
65
|
|
65
66
|
library BlocknumberLib {
|
67
|
+
|
68
|
+
function zero() public pure returns (Blocknumber) {
|
69
|
+
return Blocknumber.wrap(0);
|
70
|
+
}
|
71
|
+
|
72
|
+
function max() public pure returns (Blocknumber) {
|
73
|
+
return Blocknumber.wrap(type(uint40).max);
|
74
|
+
}
|
75
|
+
|
76
|
+
function current() public view returns (Blocknumber) {
|
77
|
+
return Blocknumber.wrap(uint40(block.number));
|
78
|
+
}
|
79
|
+
|
80
|
+
/// @dev return true iff blocknumber is 0
|
81
|
+
function eqz(Blocknumber blocknumber) public pure returns (bool) {
|
82
|
+
return Blocknumber.unwrap(blocknumber) == 0;
|
83
|
+
}
|
84
|
+
|
85
|
+
/// @dev return true iff blocknumber is > 0
|
86
|
+
function gtz(Blocknumber blocknumber) public pure returns (bool) {
|
87
|
+
return Blocknumber.unwrap(blocknumber) > 0;
|
88
|
+
}
|
89
|
+
|
66
90
|
/// @dev return true if Blocknumber a is greater than Blocknumber b
|
67
91
|
function gt(
|
68
92
|
Blocknumber a,
|
@@ -0,0 +1,101 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {NftId} from "./NftId.sol";
|
5
|
+
|
6
|
+
/// @dev Target: Cover chain IDs up to 26 decimal places.
|
7
|
+
/// Current longest chain ID seems to be DCHAIN Testnet: 2713017997578000 with 16 decimal places
|
8
|
+
type ChainId is uint96;
|
9
|
+
|
10
|
+
using {
|
11
|
+
eqChainId as ==,
|
12
|
+
neChainId as !=,
|
13
|
+
ChainIdLib.toInt,
|
14
|
+
ChainIdLib.eqz,
|
15
|
+
ChainIdLib.gtz
|
16
|
+
} for ChainId global;
|
17
|
+
|
18
|
+
|
19
|
+
/// @dev return true if ChainId a is equal to ChainId b
|
20
|
+
function eqChainId(ChainId a, ChainId b) pure returns (bool) {
|
21
|
+
return ChainId.unwrap(a) == ChainId.unwrap(b);
|
22
|
+
}
|
23
|
+
|
24
|
+
/// @dev return true if ChainId a is not equal to ChainId b
|
25
|
+
function neChainId(ChainId a, ChainId b) pure returns (bool) {
|
26
|
+
return ChainId.unwrap(a) != ChainId.unwrap(b);
|
27
|
+
}
|
28
|
+
|
29
|
+
|
30
|
+
library ChainIdLib {
|
31
|
+
|
32
|
+
error ErrorChainIdLibValueTooBig(uint256 chainId);
|
33
|
+
|
34
|
+
|
35
|
+
function zero() public pure returns (ChainId) {
|
36
|
+
return ChainId.wrap(0);
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
function max() public pure returns (ChainId) {
|
41
|
+
return ChainId.wrap(_max());
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
function current() public view returns (ChainId) {
|
46
|
+
return toChainId(block.chainid);
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
/// @dev return true iff chainId is 0
|
51
|
+
function eqz(ChainId chainId) public pure returns (bool) {
|
52
|
+
return ChainId.unwrap(chainId) == 0;
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
/// @dev return true iff chainId is > 0
|
57
|
+
function gtz(ChainId chainId) public pure returns (bool) {
|
58
|
+
return ChainId.unwrap(chainId) > 0;
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
/// @dev converts the uint into ChainId
|
63
|
+
/// function reverts if value is exceeding max ChainId value
|
64
|
+
function toChainId(uint256 chainId) public pure returns (ChainId) {
|
65
|
+
if(chainId > _max()) {
|
66
|
+
revert ErrorChainIdLibValueTooBig(chainId);
|
67
|
+
}
|
68
|
+
|
69
|
+
return ChainId.wrap(uint96(chainId));
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
/// @dev returns true iff NFT ID is from the current chain.
|
74
|
+
function isCurrentChain(NftId nftId) public view returns (bool) {
|
75
|
+
return _fromNftId(nftId) == block.chainid;
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
function fromNftId(NftId nftId) public pure returns (ChainId) {
|
80
|
+
return toChainId(_fromNftId(nftId));
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
/// @dev converts the ChainId to a uint256
|
85
|
+
function toInt(ChainId chainId) public pure returns (uint256) {
|
86
|
+
return uint256(uint96(ChainId.unwrap(chainId)));
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
function _fromNftId(NftId nftId) internal pure returns (uint256 chainIdInt) {
|
91
|
+
uint256 nftIdInt = nftId.toInt();
|
92
|
+
uint256 chainIdDigits = nftIdInt % 100; // Extract the last two digits
|
93
|
+
chainIdInt = nftIdInt % 10**(chainIdDigits + 2) / 100; // Extract the chainId
|
94
|
+
}
|
95
|
+
|
96
|
+
|
97
|
+
function _max() internal pure returns (uint96) {
|
98
|
+
// IMPORTANT: type nees to match with actual definition for Amount
|
99
|
+
return type(uint96).max;
|
100
|
+
}
|
101
|
+
}
|