@etherisc/gif-next 0.0.2-e79d227-681 → 0.0.2-e7a5428-226
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 +57 -1
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -185
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -127
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -106
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +183 -128
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -250
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +191 -182
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -100
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -155
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +600 -296
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +482 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -13
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +493 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1017 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +914 -554
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -80
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +690 -566
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -81
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +41 -45
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -65
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -114
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -63
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -76
- 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 +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -182
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -157
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -85
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +187 -176
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -479
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -50
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -531
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +111 -95
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +41 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -45
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- 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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1026 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1218 -214
- 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/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -61
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -217
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +957 -603
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +101 -51
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- 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 +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- 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 +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -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 +422 -258
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +16 -14
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +38 -75
- package/contracts/distribution/DistributionService.sol +181 -87
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +6 -6
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +15 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +92 -19
- package/contracts/instance/IInstanceService.sol +52 -9
- package/contracts/instance/Instance.sol +163 -57
- package/contracts/instance/InstanceAdmin.sol +271 -166
- package/contracts/instance/InstanceAuthorizationV3.sol +89 -40
- package/contracts/instance/InstanceReader.sol +422 -369
- package/contracts/instance/InstanceService.sol +252 -176
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +21 -14
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -7
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +3 -5
- package/contracts/oracle/OracleService.sol +24 -23
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +3 -16
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +67 -104
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -33
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +13 -25
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +203 -201
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +86 -18
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +187 -171
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +110 -198
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +93 -27
- package/contracts/product/RiskService.sol +119 -36
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +23 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +22 -11
- package/contracts/registry/RegistryAdmin.sol +100 -363
- package/contracts/registry/RegistryAuthorization.sol +309 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +157 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -27
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +34 -37
- package/contracts/shared/ComponentService.sol +314 -433
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +164 -76
- package/contracts/shared/IComponent.sol +1 -10
- package/contracts/shared/IComponentService.sol +22 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +7 -18
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +155 -64
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/Staking.sol +444 -203
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +1 -2
- package/contracts/staking/StakingReader.sol +41 -80
- package/contracts/staking/StakingService.sol +62 -181
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +697 -329
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +67 -38
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +14 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -3,6 +3,10 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {UFixed, UFixedLib} from "./UFixed.sol";
|
5
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
|
6
10
|
type Amount is uint96;
|
7
11
|
|
8
12
|
using {
|
@@ -1,7 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
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 >,
|
@@ -56,25 +58,23 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
|
|
56
58
|
return Blocknumber.wrap(uint32(blocknum));
|
57
59
|
}
|
58
60
|
|
59
|
-
function blockBlocknumber() view returns (Blocknumber) {
|
60
|
-
return BlocknumberLib.currentBlocknumber();
|
61
|
-
}
|
62
|
-
|
63
|
-
// TODO move to BlocknumberLib and rename to zero()
|
64
|
-
/// @dev Return the Blocknumber zero (0)
|
65
|
-
function zeroBlocknumber() pure returns (Blocknumber) {
|
66
|
-
return toBlocknumber(0);
|
67
|
-
}
|
68
|
-
|
69
61
|
/// @dev Return the current block number
|
70
62
|
function blockNumber() view returns (Blocknumber) {
|
71
63
|
return toBlocknumber(block.number);
|
72
64
|
}
|
73
65
|
|
74
66
|
library BlocknumberLib {
|
75
|
-
|
76
|
-
function
|
77
|
-
return Blocknumber.wrap(
|
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
78
|
}
|
79
79
|
|
80
80
|
/// @dev return true iff blocknumber is 0
|
@@ -82,7 +82,7 @@ library BlocknumberLib {
|
|
82
82
|
return Blocknumber.unwrap(blocknumber) == 0;
|
83
83
|
}
|
84
84
|
|
85
|
-
/// @dev return true iff blocknumber is 0
|
85
|
+
/// @dev return true iff blocknumber is > 0
|
86
86
|
function gtz(Blocknumber blocknumber) public pure returns (bool) {
|
87
87
|
return Blocknumber.unwrap(blocknumber) > 0;
|
88
88
|
}
|
@@ -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
|
+
}
|
package/contracts/type/Fee.sol
CHANGED
@@ -5,16 +5,16 @@ import {Amount, AmountLib} from "./Amount.sol";
|
|
5
5
|
import {UFixed, UFixedLib} from "./UFixed.sol";
|
6
6
|
|
7
7
|
struct Fee {
|
8
|
+
// slot 0
|
8
9
|
UFixed fractionalFee;
|
9
|
-
|
10
|
-
uint256 fixedFee;
|
10
|
+
Amount fixedFee;
|
11
11
|
}
|
12
12
|
|
13
13
|
library FeeLib {
|
14
14
|
|
15
15
|
/// @dev Return a zero fee struct (0, 0)
|
16
16
|
function zero() public pure returns (Fee memory fee) {
|
17
|
-
return Fee(UFixed.wrap(0),
|
17
|
+
return Fee(UFixed.wrap(0), AmountLib.zero());
|
18
18
|
}
|
19
19
|
|
20
20
|
/// @dev Converts the uint256 to a fee struct.
|
@@ -22,7 +22,7 @@ library FeeLib {
|
|
22
22
|
UFixed fractionalFee,
|
23
23
|
uint256 fixedFee
|
24
24
|
) public pure returns (Fee memory fee) {
|
25
|
-
return Fee(fractionalFee, fixedFee);
|
25
|
+
return Fee(fractionalFee, AmountLib.toAmount(fixedFee));
|
26
26
|
}
|
27
27
|
|
28
28
|
/// @dev Calculates fee and net amounts for the provided parameters
|
@@ -41,14 +41,14 @@ library FeeLib {
|
|
41
41
|
if(gtz(fee)) {
|
42
42
|
UFixed fractionalAmount =
|
43
43
|
amount.toUFixed() * fee.fractionalFee;
|
44
|
-
feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee
|
44
|
+
feeAmount = AmountLib.toAmount(fractionalAmount.toInt()) + fee.fixedFee;
|
45
45
|
netAmount = netAmount - feeAmount;
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
49
49
|
/// @dev Return the percent fee struct (x%, 0)
|
50
50
|
function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
|
51
|
-
return Fee(UFixedLib.toUFixed(percent, -2),
|
51
|
+
return Fee(UFixedLib.toUFixed(percent, -2), AmountLib.zero());
|
52
52
|
}
|
53
53
|
|
54
54
|
// pure free functions for operators
|
@@ -57,10 +57,10 @@ library FeeLib {
|
|
57
57
|
}
|
58
58
|
|
59
59
|
function gtz(Fee memory fee) public pure returns (bool) {
|
60
|
-
return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee
|
60
|
+
return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee.gtz();
|
61
61
|
}
|
62
62
|
|
63
63
|
function eqz(Fee memory fee) public pure returns (bool) {
|
64
|
-
return fee.fixedFee
|
64
|
+
return fee.fixedFee.eqz() && UFixed.unwrap(fee.fractionalFee) == 0;
|
65
65
|
}
|
66
66
|
}
|
package/contracts/type/NftId.sol
CHANGED
@@ -78,8 +78,8 @@ library NftIdLib {
|
|
78
78
|
}
|
79
79
|
|
80
80
|
function toNftId(KeyId keyId) public pure returns (NftId nftId) {
|
81
|
-
|
82
|
-
|
83
|
-
|
81
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
82
|
+
assert(keyIdInt < type(uint96).max);
|
83
|
+
return NftId.wrap(uint96(keyIdInt));
|
84
84
|
}
|
85
85
|
}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {VersionPart} from "./Version.sol";
|
5
|
+
|
4
6
|
type ObjectType is uint8;
|
5
7
|
|
6
8
|
// type bindings
|
@@ -8,6 +10,7 @@ using {
|
|
8
10
|
eqObjectType as ==,
|
9
11
|
neObjectType as !=,
|
10
12
|
ObjectTypeLib.toInt,
|
13
|
+
ObjectTypeLib.toName,
|
11
14
|
ObjectTypeLib.eqz,
|
12
15
|
ObjectTypeLib.eq,
|
13
16
|
ObjectTypeLib.gtz
|
@@ -44,10 +47,16 @@ function INSTANCE() pure returns (ObjectType) {
|
|
44
47
|
return ObjectType.wrap(10);
|
45
48
|
}
|
46
49
|
|
50
|
+
/// @dev Generic component object type.
|
51
|
+
/// Component role id range is 11-19.
|
52
|
+
/// Stick to this range for new component object types.
|
47
53
|
function COMPONENT() pure returns (ObjectType) {
|
48
54
|
return ObjectType.wrap(11);
|
49
55
|
}
|
50
56
|
|
57
|
+
/// @dev Product object type.
|
58
|
+
/// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
|
59
|
+
/// Do not change this value without updating the corresponding role id calculation.
|
51
60
|
function PRODUCT() pure returns (ObjectType) {
|
52
61
|
return ObjectType.wrap(12);
|
53
62
|
}
|
@@ -64,6 +73,8 @@ function POOL() pure returns (ObjectType) {
|
|
64
73
|
return ObjectType.wrap(15);
|
65
74
|
}
|
66
75
|
|
76
|
+
/// @dev Application object type.
|
77
|
+
/// Range for NFT objects created thorugh components is 20-29.
|
67
78
|
function APPLICATION() pure returns (ObjectType) {
|
68
79
|
return ObjectType.wrap(20);
|
69
80
|
}
|
@@ -72,52 +83,76 @@ function POLICY() pure returns (ObjectType) {
|
|
72
83
|
return ObjectType.wrap(21);
|
73
84
|
}
|
74
85
|
|
75
|
-
function
|
86
|
+
function BUNDLE() pure returns (ObjectType) {
|
76
87
|
return ObjectType.wrap(22);
|
77
88
|
}
|
78
89
|
|
79
|
-
function
|
90
|
+
function DISTRIBUTOR() pure returns (ObjectType) {
|
80
91
|
return ObjectType.wrap(23);
|
81
92
|
}
|
82
93
|
|
83
|
-
|
84
|
-
|
94
|
+
/// @dev Stake object type.
|
95
|
+
/// NFT object type is 30
|
96
|
+
function STAKE() pure returns (ObjectType) {
|
97
|
+
return ObjectType.wrap(30);
|
85
98
|
}
|
86
99
|
|
87
|
-
|
88
|
-
|
100
|
+
/// @dev Staking target object type.
|
101
|
+
function TARGET() pure returns (ObjectType) {
|
102
|
+
return ObjectType.wrap(31);
|
103
|
+
}
|
104
|
+
|
105
|
+
/// @dev Accounting object type.
|
106
|
+
/// Range for non-NFT types created through components is 40+
|
107
|
+
function ACCOUNTING() pure returns (ObjectType) {
|
108
|
+
return ObjectType.wrap(40);
|
109
|
+
}
|
110
|
+
|
111
|
+
function FEE() pure returns (ObjectType) {
|
112
|
+
return ObjectType.wrap(41);
|
89
113
|
}
|
90
114
|
|
91
115
|
function PRICE() pure returns (ObjectType) {
|
92
|
-
return ObjectType.wrap(
|
116
|
+
return ObjectType.wrap(42);
|
93
117
|
}
|
94
118
|
|
95
|
-
function
|
96
|
-
return ObjectType.wrap(
|
119
|
+
function PREMIUM() pure returns (ObjectType) {
|
120
|
+
return ObjectType.wrap(43);
|
97
121
|
}
|
98
122
|
|
99
|
-
function
|
100
|
-
return ObjectType.wrap(
|
123
|
+
function RISK() pure returns (ObjectType) {
|
124
|
+
return ObjectType.wrap(44);
|
101
125
|
}
|
102
126
|
|
103
|
-
function
|
104
|
-
return ObjectType.wrap(
|
127
|
+
function CLAIM() pure returns (ObjectType) {
|
128
|
+
return ObjectType.wrap(45);
|
105
129
|
}
|
106
130
|
|
107
|
-
function
|
108
|
-
return ObjectType.wrap(
|
131
|
+
function PAYOUT() pure returns (ObjectType) {
|
132
|
+
return ObjectType.wrap(46);
|
109
133
|
}
|
110
134
|
|
111
|
-
function
|
112
|
-
return ObjectType.wrap(
|
135
|
+
function REQUEST() pure returns (ObjectType) {
|
136
|
+
return ObjectType.wrap(47);
|
113
137
|
}
|
114
138
|
|
115
|
-
function
|
116
|
-
return ObjectType.wrap(
|
139
|
+
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
140
|
+
return ObjectType.wrap(48);
|
117
141
|
}
|
118
142
|
|
119
|
-
function
|
120
|
-
return ObjectType.wrap(
|
143
|
+
function REFERRAL() pure returns (ObjectType) {
|
144
|
+
return ObjectType.wrap(49);
|
145
|
+
}
|
146
|
+
|
147
|
+
/// @dev Object type for GIF core target roles.
|
148
|
+
function CORE() pure returns (ObjectType) {
|
149
|
+
return ObjectType.wrap(97);
|
150
|
+
}
|
151
|
+
|
152
|
+
/// @dev Object type for target roles of contracts outside the GIF framework.
|
153
|
+
/// Example: Custom supporting contracts for a product component.
|
154
|
+
function CUSTOM() pure returns (ObjectType) {
|
155
|
+
return ObjectType.wrap(98);
|
121
156
|
}
|
122
157
|
|
123
158
|
/// @dev Object type that includes any other object type.
|
@@ -138,8 +173,6 @@ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
|
|
138
173
|
// library functions that operate on user defined type
|
139
174
|
library ObjectTypeLib {
|
140
175
|
|
141
|
-
error ErrorVersionTooBig(uint256 version);
|
142
|
-
|
143
176
|
function zero() public pure returns (ObjectType) {
|
144
177
|
return ObjectType.wrap(0);
|
145
178
|
}
|
@@ -180,6 +213,8 @@ library ObjectTypeLib {
|
|
180
213
|
return "Registry";
|
181
214
|
} else if (objectType == STAKING()) {
|
182
215
|
return "Staking";
|
216
|
+
} else if (objectType == RELEASE()) {
|
217
|
+
return "Release";
|
183
218
|
} else if (objectType == INSTANCE()) {
|
184
219
|
return "Instance";
|
185
220
|
} else if (objectType == COMPONENT()) {
|
@@ -204,6 +239,8 @@ library ObjectTypeLib {
|
|
204
239
|
return "Bundle";
|
205
240
|
} else if (objectType == RISK()) {
|
206
241
|
return "Risk";
|
242
|
+
} else if (objectType == ACCOUNTING()) {
|
243
|
+
return "Accounting";
|
207
244
|
}
|
208
245
|
|
209
246
|
// fallback: ObjectType<obect-type-int>
|
@@ -214,23 +251,20 @@ library ObjectTypeLib {
|
|
214
251
|
toInt(objectType))));
|
215
252
|
}
|
216
253
|
|
254
|
+
// TODO move to IService
|
217
255
|
function toVersionedName(
|
218
256
|
string memory name,
|
219
257
|
string memory suffix,
|
220
|
-
|
258
|
+
VersionPart release
|
221
259
|
)
|
222
260
|
external
|
223
261
|
pure
|
224
262
|
returns (string memory versionedName)
|
225
263
|
{
|
226
|
-
|
227
|
-
revert ErrorVersionTooBig(version);
|
228
|
-
}
|
229
|
-
|
230
|
-
string memory versionName = "_v0";
|
264
|
+
string memory versionName = "V0";
|
231
265
|
|
232
|
-
if (
|
233
|
-
versionName = "
|
266
|
+
if (release.toInt() >= 10) {
|
267
|
+
versionName = "V";
|
234
268
|
}
|
235
269
|
|
236
270
|
versionedName = string(
|
@@ -238,12 +272,7 @@ library ObjectTypeLib {
|
|
238
272
|
name,
|
239
273
|
suffix,
|
240
274
|
versionName,
|
241
|
-
toString(
|
242
|
-
}
|
243
|
-
|
244
|
-
/// @dev returns the max number of releases (major versions) this gif setup can handle.
|
245
|
-
function maxNumReleases() public pure returns (uint8) {
|
246
|
-
return 99;
|
275
|
+
release.toString()));
|
247
276
|
}
|
248
277
|
|
249
278
|
/// @dev returns the provied int as a string
|
@@ -261,7 +290,7 @@ library ObjectTypeLib {
|
|
261
290
|
}
|
262
291
|
|
263
292
|
bytes memory buffer = new bytes(digits);
|
264
|
-
|
293
|
+
uint256 index = digits - 1;
|
265
294
|
|
266
295
|
temp = value;
|
267
296
|
while (temp != 0) {
|
@@ -2,6 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {NftId} from "./NftId.sol";
|
5
6
|
import {RISK} from "./ObjectType.sol";
|
6
7
|
|
7
8
|
type RiskId is bytes8;
|
@@ -12,6 +13,7 @@ using {
|
|
12
13
|
neRiskId as !=,
|
13
14
|
RiskIdLib.eq,
|
14
15
|
RiskIdLib.eqz,
|
16
|
+
RiskIdLib.gtz,
|
15
17
|
RiskIdLib.toInt,
|
16
18
|
RiskIdLib.toKeyId,
|
17
19
|
RiskIdLib.toKey32
|
@@ -39,9 +41,9 @@ library RiskIdLib {
|
|
39
41
|
return uint64(RiskId.unwrap(riskId));
|
40
42
|
}
|
41
43
|
|
42
|
-
// @dev Converts a risk id string into a risk id.
|
43
|
-
function toRiskId(
|
44
|
-
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
44
|
+
// @dev Converts a risk id string with a product NftId into a risk id.
|
45
|
+
function toRiskId(NftId productNftId, bytes32 risk) public pure returns (RiskId) {
|
46
|
+
return RiskId.wrap(bytes8(keccak256(abi.encode(productNftId, risk))));
|
45
47
|
}
|
46
48
|
|
47
49
|
/// @dev Returns the key32 value for the specified risk id.
|
@@ -66,4 +68,8 @@ library RiskIdLib {
|
|
66
68
|
function eqz(RiskId a) public pure returns (bool isZero) {
|
67
69
|
return eqRiskId(a, zero());
|
68
70
|
}
|
71
|
+
|
72
|
+
function gtz(RiskId a) public pure returns (bool isZero) {
|
73
|
+
return uint64(RiskId.unwrap(a)) > 0;
|
74
|
+
}
|
69
75
|
}
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
5
|
import {ObjectType, ROLE} from "./ObjectType.sol";
|
6
|
-
import {VersionPart} from "./Version.sol";
|
6
|
+
import {VersionPart, VersionPartLib} from "./Version.sol";
|
7
7
|
|
8
8
|
type RoleId is uint64;
|
9
9
|
|
@@ -11,10 +11,10 @@ type RoleId is uint64;
|
|
11
11
|
using {
|
12
12
|
eqRoleId as ==,
|
13
13
|
neRoleId as !=,
|
14
|
+
RoleIdLib.toInt,
|
15
|
+
RoleIdLib.isServiceRole,
|
14
16
|
RoleIdLib.eqz,
|
15
|
-
RoleIdLib.gtz
|
16
|
-
RoleIdLib.toInt
|
17
|
-
// RoleIdLib.toKey32
|
17
|
+
RoleIdLib.gtz
|
18
18
|
} for RoleId global;
|
19
19
|
|
20
20
|
// general pure free functions
|
@@ -54,6 +54,14 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2)
|
|
54
54
|
/// @dev role for registering remote staking targets and reporting remote total value locked amounts.
|
55
55
|
function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
|
56
56
|
|
57
|
+
// TODO check if/where this is really needed
|
58
|
+
/// @dev role assigned to release registry, release specfic to lock/unlock a release
|
59
|
+
function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
|
60
|
+
|
61
|
+
/// @dev role assigned to every instance owner
|
62
|
+
function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
|
63
|
+
|
64
|
+
// TODO upate role id ranges
|
57
65
|
//--- GIF core contract roles (range: 200 - 9'900) --------------------------//
|
58
66
|
// created and assigned during initial deployment for registry and staking
|
59
67
|
// granting for instances and components in instance service
|
@@ -72,6 +80,8 @@ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRo
|
|
72
80
|
// - application service role (version 3): 2003
|
73
81
|
|
74
82
|
//--- GIF component contract roles (range 12'001 - 19'099) ------------------//
|
83
|
+
// the min value of 12'001 is based on the following calculation:
|
84
|
+
// object type * 1000 + 1 where the lowest object type is 12 (product)
|
75
85
|
// assigned at component registration time
|
76
86
|
// object type * 1000 + instane specific component counter
|
77
87
|
// on any instance a maximum number of 999 components may be deployed
|
@@ -90,54 +100,72 @@ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(100
|
|
90
100
|
|
91
101
|
library RoleIdLib {
|
92
102
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
uint64 public constant
|
103
|
+
error ErrorRoleIdTooBig(uint256 roleId);
|
104
|
+
|
105
|
+
// constant values need to match with AccessAdminLib.SERVICE_ROLE_*
|
106
|
+
uint64 public constant SERVICE_ROLE_MIN = 1000;
|
107
|
+
uint64 public constant SERVICE_ROLE_MAX = 99099; // 99 (max object type) * 1000 + 99
|
108
|
+
|
109
|
+
uint64 public constant SERVICE_ROLE_FACTOR = 1000;
|
97
110
|
|
98
111
|
/// @dev Converts the RoleId to a uint.
|
99
112
|
function zero() public pure returns (RoleId) {
|
100
113
|
return RoleId.wrap(0);
|
101
114
|
}
|
102
115
|
|
116
|
+
|
103
117
|
/// @dev Converts an uint into a role id.
|
104
|
-
function toRoleId(
|
105
|
-
|
106
|
-
|
118
|
+
function toRoleId(uint256 a) public pure returns (RoleId) {
|
119
|
+
if (a > type(uint64).max) {
|
120
|
+
revert ErrorRoleIdTooBig(a);
|
121
|
+
}
|
107
122
|
|
108
|
-
|
109
|
-
function toComponentRoleId(ObjectType objectType, uint64 index) public pure returns (RoleId) {
|
110
|
-
return toRoleId(COMPONENT_ROLE_FACTOR * uint64(objectType.toInt()) + index);
|
123
|
+
return RoleId.wrap(uint64(a));
|
111
124
|
}
|
112
125
|
|
113
|
-
/// @dev Converts an uint into a custom role id.
|
114
|
-
function toCustomRoleId(uint64 index) public pure returns (RoleId) {
|
115
|
-
return toRoleId(CUSTOM_ROLE_MIN + index);
|
116
|
-
}
|
117
126
|
|
118
|
-
|
119
|
-
|
120
|
-
|
127
|
+
function isServiceRole(RoleId roleId)
|
128
|
+
public
|
129
|
+
pure
|
130
|
+
returns (bool)
|
131
|
+
{
|
132
|
+
uint256 roleIdInt = RoleId.unwrap(roleId);
|
133
|
+
return roleIdInt >= SERVICE_ROLE_MIN && roleIdInt <= SERVICE_ROLE_MAX;
|
121
134
|
}
|
122
135
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
136
|
+
|
137
|
+
function toGenericServiceRoleId(
|
138
|
+
ObjectType objectType
|
139
|
+
)
|
140
|
+
public
|
141
|
+
pure
|
142
|
+
returns (RoleId)
|
143
|
+
{
|
144
|
+
return toServiceRoleId(
|
145
|
+
objectType,
|
146
|
+
VersionPartLib.releaseMax());
|
127
147
|
}
|
128
148
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
149
|
+
|
150
|
+
function toServiceRoleId(
|
151
|
+
ObjectType serviceDomain,
|
152
|
+
VersionPart release
|
153
|
+
)
|
154
|
+
public
|
155
|
+
pure
|
156
|
+
returns (RoleId serviceRoleId)
|
157
|
+
{
|
158
|
+
uint256 serviceRoleIdInt =
|
159
|
+
SERVICE_ROLE_MIN
|
160
|
+
+ SERVICE_ROLE_FACTOR * (serviceDomain.toInt() - 1)
|
161
|
+
+ release.toInt();
|
162
|
+
|
163
|
+
return toRoleId(serviceRoleIdInt);
|
134
164
|
}
|
135
165
|
|
136
|
-
/// @dev Converts
|
137
|
-
|
138
|
-
|
139
|
-
return RoleId.wrap(
|
140
|
-
uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + ALL_VERSIONS));
|
166
|
+
/// @dev Converts the role id to a uint.
|
167
|
+
function toInt(RoleId a) public pure returns (uint64) {
|
168
|
+
return uint64(RoleId.unwrap(a));
|
141
169
|
}
|
142
170
|
|
143
171
|
/// @dev Returns true if the value is non-zero (> 0).
|
@@ -149,14 +177,4 @@ library RoleIdLib {
|
|
149
177
|
function eqz(RoleId a) public pure returns (bool) {
|
150
178
|
return RoleId.unwrap(a) == 0;
|
151
179
|
}
|
152
|
-
|
153
|
-
/// @dev Returns the key32 value for the specified id and object type.
|
154
|
-
function toKey32(RoleId a) public pure returns (Key32 key) {
|
155
|
-
return Key32Lib.toKey32(ROLE(), toKeyId(a));
|
156
|
-
}
|
157
|
-
|
158
|
-
/// @dev Returns the key id value for the specified id
|
159
|
-
function toKeyId(RoleId a) public pure returns (KeyId keyId) {
|
160
|
-
return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
|
161
|
-
}
|
162
180
|
}
|