@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
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 +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- 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 +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
- 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 +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- 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 +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- 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 +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- 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 +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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 +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- 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 +19 -31
- 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 +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- 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 +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- 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 +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -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 +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- 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/SelectorSetLib.dbg.json +1 -1
- 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 +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -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 +81 -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 +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- 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 +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,678 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {IAccess} from "./IAccess.sol";
|
7
|
+
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
8
|
+
import {IAuthorization} from "./IAuthorization.sol";
|
9
|
+
import {IComponent} from "../shared/IComponent.sol";
|
10
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
import {IService} from "../shared/IService.sol";
|
13
|
+
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
14
|
+
|
15
|
+
import {BlocknumberLib} from "../type/Blocknumber.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
18
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
19
|
+
import {SelectorLib} from "../type/Selector.sol";
|
20
|
+
import {Str, StrLib} from "../type/String.sol";
|
21
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
22
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
23
|
+
|
24
|
+
|
25
|
+
library AccessAdminLib { // ACCESS_ADMIN_LIB
|
26
|
+
|
27
|
+
string public constant TOKEN_HANDLER_SUFFIX = "Th";
|
28
|
+
string public constant ROLE_SUFFIX = "_Role";
|
29
|
+
|
30
|
+
uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
|
31
|
+
uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
|
32
|
+
uint64 public constant COMPONENT_ROLE_MAX = 19000;
|
33
|
+
|
34
|
+
uint64 public constant CORE_ROLE_MIN = 100;
|
35
|
+
uint64 public constant SERVICE_ROLE_MIN = 1000; // + service domain * SERVICE_ROLE_FACTOR + release
|
36
|
+
uint64 public constant SERVICE_ROLE_FACTOR = 1000;
|
37
|
+
uint64 public constant INSTANCE_ROLE_MIN = 100000;
|
38
|
+
|
39
|
+
// MUST match with Authorization.COMPONENT_ROLE_MIN
|
40
|
+
uint64 public constant COMPONENT_ROLE_MIN = 110000;
|
41
|
+
|
42
|
+
uint64 public constant CUSTOM_ROLE_MIN = 1000000;
|
43
|
+
|
44
|
+
|
45
|
+
function ADMIN_ROLE_NAME() public pure returns (string memory) {
|
46
|
+
return "AdminRole";
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
function isAdminRoleName(string memory name) public pure returns (bool) {
|
51
|
+
return StrLib.eq(name, ADMIN_ROLE_NAME());
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
function PUBLIC_ROLE_NAME() public pure returns (string memory) {
|
56
|
+
return "PublicRole";
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
function getAdminRole() public pure returns (RoleId adminRoleId) {
|
61
|
+
// see oz AccessManagerUpgradeable
|
62
|
+
return RoleId.wrap(type(uint64).min);
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
function getPublicRole() public pure returns (RoleId publicRoleId) {
|
67
|
+
// see oz AccessManagerUpgradeable
|
68
|
+
return RoleId.wrap(type(uint64).max);
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
function isAdminOrPublicRole(string memory name)
|
73
|
+
public
|
74
|
+
view
|
75
|
+
returns (bool)
|
76
|
+
{
|
77
|
+
return StrLib.eq(name, ADMIN_ROLE_NAME())
|
78
|
+
|| StrLib.eq(name, PUBLIC_ROLE_NAME());
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function isDynamicRoleId(RoleId roleId)
|
83
|
+
public
|
84
|
+
pure
|
85
|
+
returns (bool)
|
86
|
+
{
|
87
|
+
return roleId.toInt() >= COMPONENT_ROLE_MIN;
|
88
|
+
}
|
89
|
+
|
90
|
+
|
91
|
+
function adminRoleInfo()
|
92
|
+
public
|
93
|
+
view
|
94
|
+
returns (IAccess.RoleInfo memory)
|
95
|
+
{
|
96
|
+
return roleInfo(
|
97
|
+
getAdminRole(),
|
98
|
+
IAccess.TargetType.Core,
|
99
|
+
1,
|
100
|
+
ADMIN_ROLE_NAME());
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
function publicRoleInfo()
|
105
|
+
public
|
106
|
+
view
|
107
|
+
returns (IAccess.RoleInfo memory)
|
108
|
+
{
|
109
|
+
return roleInfo(
|
110
|
+
getAdminRole(),
|
111
|
+
IAccess.TargetType.Custom,
|
112
|
+
type(uint32).max,
|
113
|
+
PUBLIC_ROLE_NAME());
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
function coreRoleInfo(string memory name)
|
118
|
+
public
|
119
|
+
view
|
120
|
+
returns (IAccess.RoleInfo memory)
|
121
|
+
{
|
122
|
+
return roleInfo(
|
123
|
+
getAdminRole(),
|
124
|
+
IAccess.TargetType.Core,
|
125
|
+
1,
|
126
|
+
name);
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
function serviceRoleInfo(string memory serviceName)
|
131
|
+
public
|
132
|
+
view
|
133
|
+
returns (IAccess.RoleInfo memory)
|
134
|
+
{
|
135
|
+
return roleInfo(
|
136
|
+
getAdminRole(),
|
137
|
+
IAccess.TargetType.Service,
|
138
|
+
1,
|
139
|
+
serviceName);
|
140
|
+
}
|
141
|
+
|
142
|
+
|
143
|
+
/// @dev Creates a role info object from the provided parameters
|
144
|
+
function roleInfo(
|
145
|
+
RoleId adminRoleId,
|
146
|
+
IAccess.TargetType targetType,
|
147
|
+
uint32 maxMemberCount,
|
148
|
+
string memory roleName
|
149
|
+
)
|
150
|
+
public
|
151
|
+
view
|
152
|
+
returns (IAccess.RoleInfo memory info)
|
153
|
+
{
|
154
|
+
return IAccess.RoleInfo({
|
155
|
+
name: StrLib.toStr(roleName),
|
156
|
+
adminRoleId: adminRoleId,
|
157
|
+
targetType: targetType,
|
158
|
+
maxMemberCount: maxMemberCount,
|
159
|
+
createdAt: TimestampLib.current(),
|
160
|
+
pausedAt: TimestampLib.max(),
|
161
|
+
lastUpdateIn: BlocknumberLib.current()});
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function getSelectors(
|
166
|
+
IAccess.FunctionInfo[] memory functions
|
167
|
+
)
|
168
|
+
public
|
169
|
+
pure
|
170
|
+
returns (
|
171
|
+
bytes4[] memory selectors
|
172
|
+
)
|
173
|
+
{
|
174
|
+
uint256 n = functions.length;
|
175
|
+
selectors = new bytes4[](n);
|
176
|
+
for (uint256 i = 0; i < n; i++) {
|
177
|
+
selectors[i] = functions[i].selector.toBytes4();
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
function checkInitParameters(
|
183
|
+
address authority,
|
184
|
+
string memory adminName
|
185
|
+
)
|
186
|
+
public
|
187
|
+
view
|
188
|
+
{
|
189
|
+
// only contract check (authority might not yet be initialized at this time)
|
190
|
+
if (!ContractLib.isContract(authority)) {
|
191
|
+
revert IAccessAdmin.ErrorAccessAdminAuthorityNotContract(authority);
|
192
|
+
}
|
193
|
+
|
194
|
+
// check name not empty
|
195
|
+
if (bytes(adminName).length == 0) {
|
196
|
+
revert IAccessAdmin.ErrorAccessAdminAccessManagerEmptyName();
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
|
201
|
+
function checkRoleCreation(
|
202
|
+
IAccessAdmin accessAdmin,
|
203
|
+
RoleId roleId,
|
204
|
+
IAccess.RoleInfo memory info,
|
205
|
+
bool revertOnExistingRole
|
206
|
+
)
|
207
|
+
public
|
208
|
+
view
|
209
|
+
returns (bool isAdminOrPublicRole)
|
210
|
+
{
|
211
|
+
// check
|
212
|
+
if (roleId == ADMIN_ROLE() || roleId == PUBLIC_ROLE()) {
|
213
|
+
return true;
|
214
|
+
}
|
215
|
+
|
216
|
+
// check role does not yet exist
|
217
|
+
if(revertOnExistingRole && accessAdmin.roleExists(roleId)) {
|
218
|
+
revert IAccessAdmin.ErrorAccessAdminRoleAlreadyCreated(
|
219
|
+
roleId,
|
220
|
+
accessAdmin.getRoleInfo(roleId).name.toString());
|
221
|
+
}
|
222
|
+
|
223
|
+
// check admin role exists
|
224
|
+
if(!accessAdmin.roleExists(info.adminRoleId)) {
|
225
|
+
revert IAccessAdmin.ErrorAccessAdminRoleAdminNotExisting(info.adminRoleId);
|
226
|
+
}
|
227
|
+
|
228
|
+
// check role name is not empty
|
229
|
+
if(info.name.length() == 0) {
|
230
|
+
revert IAccessAdmin.ErrorAccessAdminRoleNameEmpty(roleId);
|
231
|
+
}
|
232
|
+
|
233
|
+
// check role name is not used for another role
|
234
|
+
(RoleId roleIdForName, bool exists) = accessAdmin.getRoleForName(StrLib.toString(info.name));
|
235
|
+
if(revertOnExistingRole && exists) {
|
236
|
+
revert IAccessAdmin.ErrorAccessAdminRoleNameAlreadyExists(
|
237
|
+
roleId,
|
238
|
+
info.name.toString(),
|
239
|
+
roleIdForName);
|
240
|
+
}
|
241
|
+
|
242
|
+
return false;
|
243
|
+
}
|
244
|
+
|
245
|
+
|
246
|
+
function checkRoleExists(
|
247
|
+
IAccessAdmin accessAdmin,
|
248
|
+
RoleId roleId,
|
249
|
+
bool onlyActiveRole,
|
250
|
+
bool allowAdminAndPublicRoles
|
251
|
+
)
|
252
|
+
internal
|
253
|
+
view
|
254
|
+
{
|
255
|
+
// check role exists
|
256
|
+
if (!accessAdmin.roleExists(roleId)) {
|
257
|
+
revert IAccessAdmin.ErrorAccessAdminRoleUnknown(roleId);
|
258
|
+
}
|
259
|
+
|
260
|
+
// if onlyActiveRoles: check if role is disabled
|
261
|
+
if (onlyActiveRole && accessAdmin.getRoleInfo(roleId).pausedAt <= TimestampLib.current()) {
|
262
|
+
revert IAccessAdmin.ErrorAccessAdminRoleIsPaused(roleId);
|
263
|
+
}
|
264
|
+
|
265
|
+
// if not allowAdminAndPublicRoles, check if role is admin or public role
|
266
|
+
if (!allowAdminAndPublicRoles) {
|
267
|
+
checkNotAdminOrPublicRole(roleId);
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
|
272
|
+
function checkNotAdminOrPublicRole(RoleId roleId) public pure {
|
273
|
+
if (roleId == ADMIN_ROLE()) {
|
274
|
+
revert IAccessAdmin.ErrorAccessAdminInvalidUseOfAdminRole();
|
275
|
+
}
|
276
|
+
|
277
|
+
if (roleId == PUBLIC_ROLE()) {
|
278
|
+
revert IAccessAdmin.ErrorAccessAdminInvalidUseOfPublicRole();
|
279
|
+
}
|
280
|
+
}
|
281
|
+
|
282
|
+
function checkTargetCreation(
|
283
|
+
IAccessAdmin accessAdmin,
|
284
|
+
address target,
|
285
|
+
string memory targetName,
|
286
|
+
bool checkAuthority
|
287
|
+
)
|
288
|
+
public
|
289
|
+
view
|
290
|
+
{
|
291
|
+
// check target does not yet exist
|
292
|
+
if(accessAdmin.targetExists(target)) {
|
293
|
+
revert IAccessAdmin.ErrorAccessAdminTargetAlreadyCreated(
|
294
|
+
target,
|
295
|
+
accessAdmin.getTargetInfo(target).name.toString());
|
296
|
+
}
|
297
|
+
|
298
|
+
// check target name is not empty
|
299
|
+
Str name = StrLib.toStr(targetName);
|
300
|
+
if(name.length() == 0) {
|
301
|
+
revert IAccessAdmin.ErrorAccessAdminTargetNameEmpty(target);
|
302
|
+
}
|
303
|
+
|
304
|
+
// check target name is not used for another target
|
305
|
+
address targetForName = accessAdmin.getTargetForName(name);
|
306
|
+
if(targetForName != address(0)) {
|
307
|
+
revert IAccessAdmin.ErrorAccessAdminTargetNameAlreadyExists(
|
308
|
+
target,
|
309
|
+
targetName,
|
310
|
+
targetForName);
|
311
|
+
}
|
312
|
+
|
313
|
+
// check target is an access managed contract
|
314
|
+
if (!ContractLib.isAccessManaged(target)) {
|
315
|
+
revert IAccessAdmin.ErrorAccessAdminTargetNotAccessManaged(target);
|
316
|
+
}
|
317
|
+
|
318
|
+
// check target shares authority with this contract
|
319
|
+
if (checkAuthority) {
|
320
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
321
|
+
if (targetAuthority != accessAdmin.authority()) {
|
322
|
+
revert IAccessAdmin.ErrorAccessAdminTargetAuthorityMismatch(accessAdmin.authority(), targetAuthority);
|
323
|
+
}
|
324
|
+
}
|
325
|
+
}
|
326
|
+
|
327
|
+
|
328
|
+
function checkComponentInitialization(
|
329
|
+
IAccessAdmin accessAdmin,
|
330
|
+
IAuthorization instanceAuthorization,
|
331
|
+
address componentAddress,
|
332
|
+
ObjectType expectedType
|
333
|
+
)
|
334
|
+
public
|
335
|
+
view
|
336
|
+
returns (IAuthorization componentAuthorization)
|
337
|
+
{
|
338
|
+
checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
|
339
|
+
|
340
|
+
VersionPart expecteRelease = accessAdmin.getRelease();
|
341
|
+
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
342
|
+
componentAuthorization = component.getAuthorization();
|
343
|
+
|
344
|
+
checkAuthorization(
|
345
|
+
address(instanceAuthorization),
|
346
|
+
address(componentAuthorization),
|
347
|
+
expectedType,
|
348
|
+
expecteRelease,
|
349
|
+
false, // expectServiceAuthorization,
|
350
|
+
false); // checkAlreadyInitialized
|
351
|
+
}
|
352
|
+
|
353
|
+
|
354
|
+
function checkTargetAndRoleForFunctions(
|
355
|
+
IAccessAdmin accessAdmin,
|
356
|
+
address target,
|
357
|
+
RoleId roleId,
|
358
|
+
bool onlyComponentOrContractTargets
|
359
|
+
)
|
360
|
+
public
|
361
|
+
view
|
362
|
+
{
|
363
|
+
// check target exists
|
364
|
+
IAccess.TargetType targetType = accessAdmin.getTargetInfo(target).targetType;
|
365
|
+
if (targetType == IAccess.TargetType.Undefined) {
|
366
|
+
revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
|
367
|
+
}
|
368
|
+
|
369
|
+
// check target type
|
370
|
+
if (onlyComponentOrContractTargets) {
|
371
|
+
if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Contract) {
|
372
|
+
revert IAccessAdmin.ErrorAccessAdminNotComponentOrCustomTarget(target);
|
373
|
+
}
|
374
|
+
}
|
375
|
+
|
376
|
+
// check role exist
|
377
|
+
checkRoleExists(accessAdmin, roleId, true, true);
|
378
|
+
}
|
379
|
+
|
380
|
+
|
381
|
+
function checkTargetExists(
|
382
|
+
IAccessAdmin accessAdmin,
|
383
|
+
address target
|
384
|
+
)
|
385
|
+
public
|
386
|
+
view
|
387
|
+
{
|
388
|
+
// check not yet created
|
389
|
+
if (!accessAdmin.targetExists(target)) {
|
390
|
+
revert IAccessAdmin.ErrorAccessAdminTargetNotCreated(target);
|
391
|
+
}
|
392
|
+
}
|
393
|
+
|
394
|
+
|
395
|
+
function checkAuthorization(
|
396
|
+
address authorizationOld,
|
397
|
+
address authorization,
|
398
|
+
ObjectType expectedDomain,
|
399
|
+
VersionPart expectedRelease,
|
400
|
+
bool expectServiceAuthorization,
|
401
|
+
bool checkAlreadyInitialized
|
402
|
+
)
|
403
|
+
public
|
404
|
+
view
|
405
|
+
{
|
406
|
+
// checks
|
407
|
+
// check not yet initialized
|
408
|
+
if (checkAlreadyInitialized && authorizationOld != address(0)) {
|
409
|
+
revert IAccessAdmin.ErrorAccessAdminAlreadyInitialized(authorizationOld);
|
410
|
+
}
|
411
|
+
|
412
|
+
// check contract type matches
|
413
|
+
if (expectServiceAuthorization) {
|
414
|
+
if (!ContractLib.supportsInterface(authorization, type(IServiceAuthorization).interfaceId)) {
|
415
|
+
revert IAccessAdmin.ErrorAccessAdminNotServiceAuthorization(authorization);
|
416
|
+
}
|
417
|
+
} else {
|
418
|
+
if (!ContractLib.supportsInterface(authorization, type(IAuthorization).interfaceId)) {
|
419
|
+
revert IAccessAdmin.ErrorAccessAdminNotAuthorization(authorization);
|
420
|
+
}
|
421
|
+
}
|
422
|
+
|
423
|
+
// check domain matches
|
424
|
+
ObjectType domain = IAuthorization(authorization).getDomain();
|
425
|
+
if (domain != expectedDomain) {
|
426
|
+
revert IAccessAdmin.ErrorAccessAdminDomainMismatch(authorization, expectedDomain, domain);
|
427
|
+
}
|
428
|
+
|
429
|
+
// check release matches
|
430
|
+
VersionPart authorizationRelease = IAuthorization(authorization).getRelease();
|
431
|
+
if (authorizationRelease != expectedRelease) {
|
432
|
+
revert IAccessAdmin.ErrorAccessAdminReleaseMismatch(authorization, expectedRelease, authorizationRelease);
|
433
|
+
}
|
434
|
+
}
|
435
|
+
|
436
|
+
|
437
|
+
function checkIsRegistered(
|
438
|
+
address registry,
|
439
|
+
address target,
|
440
|
+
ObjectType expectedType
|
441
|
+
)
|
442
|
+
public
|
443
|
+
view
|
444
|
+
{
|
445
|
+
checkRegistry(registry);
|
446
|
+
|
447
|
+
ObjectType tagetType = IRegistry(registry).getObjectInfo(target).objectType;
|
448
|
+
if (tagetType.eqz()) {
|
449
|
+
revert IAccessAdmin.ErrorAccessAdminNotRegistered(target);
|
450
|
+
}
|
451
|
+
|
452
|
+
if (tagetType != expectedType) {
|
453
|
+
revert IAccessAdmin.ErrorAccessAdminTargetTypeMismatch(target, expectedType, tagetType);
|
454
|
+
}
|
455
|
+
}
|
456
|
+
|
457
|
+
|
458
|
+
function checkRegistry(
|
459
|
+
address registry
|
460
|
+
)
|
461
|
+
public
|
462
|
+
view
|
463
|
+
{
|
464
|
+
if (!ContractLib.isRegistry(registry)) {
|
465
|
+
revert IAccessAdmin.ErrorAccessAdminNotRegistry(registry);
|
466
|
+
}
|
467
|
+
}
|
468
|
+
|
469
|
+
|
470
|
+
function getAuthorizedRole(
|
471
|
+
IAccessAdmin accessAdmin,
|
472
|
+
IAuthorization authorization,
|
473
|
+
RoleId roleId
|
474
|
+
)
|
475
|
+
public
|
476
|
+
view
|
477
|
+
returns (RoleId authorizedRoleId)
|
478
|
+
{
|
479
|
+
string memory roleName = authorization.getRoleInfo(roleId).name.toString();
|
480
|
+
(authorizedRoleId, ) = accessAdmin.getRoleForName(roleName);
|
481
|
+
}
|
482
|
+
|
483
|
+
|
484
|
+
function getServiceRoleId(
|
485
|
+
address serviceAddress,
|
486
|
+
IAccess.TargetType serviceTargetType
|
487
|
+
)
|
488
|
+
public
|
489
|
+
view
|
490
|
+
returns (RoleId serviceRoleId)
|
491
|
+
{
|
492
|
+
IService service = IService(serviceAddress);
|
493
|
+
|
494
|
+
if (serviceTargetType == IAccess.TargetType.Service) {
|
495
|
+
return RoleIdLib.toServiceRoleId(service.getDomain(), service.getRelease());
|
496
|
+
} else if (serviceTargetType == IAccess.TargetType.GenericService) {
|
497
|
+
return RoleIdLib.toGenericServiceRoleId(service.getDomain());
|
498
|
+
}
|
499
|
+
|
500
|
+
revert IAccessAdmin.ErrorAccessAdminInvalidServiceType(serviceAddress, serviceTargetType);
|
501
|
+
}
|
502
|
+
|
503
|
+
|
504
|
+
function getVersionedServiceRoleId(
|
505
|
+
ObjectType serviceDomain,
|
506
|
+
VersionPart release
|
507
|
+
)
|
508
|
+
public
|
509
|
+
pure
|
510
|
+
returns (RoleId serviceRoleId)
|
511
|
+
{
|
512
|
+
return RoleIdLib.toRoleId(
|
513
|
+
SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + release.toInt());
|
514
|
+
}
|
515
|
+
|
516
|
+
|
517
|
+
function getGenericServiceRoleId(
|
518
|
+
ObjectType serviceDomain
|
519
|
+
)
|
520
|
+
public
|
521
|
+
pure
|
522
|
+
returns (RoleId serviceRoleId)
|
523
|
+
{
|
524
|
+
return RoleIdLib.toRoleId(
|
525
|
+
SERVICE_ROLE_MIN + SERVICE_ROLE_FACTOR * serviceDomain.toInt() + VersionPartLib.releaseMax().toInt());
|
526
|
+
}
|
527
|
+
|
528
|
+
|
529
|
+
function getCustomRoleId(uint64 index)
|
530
|
+
public
|
531
|
+
pure
|
532
|
+
returns (RoleId customRoleId)
|
533
|
+
{
|
534
|
+
return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
|
535
|
+
}
|
536
|
+
|
537
|
+
|
538
|
+
function isCustomRole(RoleId roleId)
|
539
|
+
public
|
540
|
+
pure
|
541
|
+
returns (bool)
|
542
|
+
{
|
543
|
+
return roleId.toInt() >= CUSTOM_ROLE_MIN;
|
544
|
+
}
|
545
|
+
|
546
|
+
|
547
|
+
function getTargetRoleId(
|
548
|
+
address target,
|
549
|
+
IAccess.TargetType targetType,
|
550
|
+
uint64 index
|
551
|
+
)
|
552
|
+
public
|
553
|
+
view
|
554
|
+
returns (RoleId targetRoleId)
|
555
|
+
{
|
556
|
+
if (targetType == IAccess.TargetType.Core) {
|
557
|
+
return RoleIdLib.toRoleId(CORE_ROLE_MIN + index);
|
558
|
+
}
|
559
|
+
|
560
|
+
if (targetType == IAccess.TargetType.Service || targetType == IAccess.TargetType.GenericService ) {
|
561
|
+
return getServiceRoleId(target, targetType);
|
562
|
+
}
|
563
|
+
|
564
|
+
if (targetType == IAccess.TargetType.Instance) {
|
565
|
+
return RoleIdLib.toRoleId(INSTANCE_ROLE_MIN + index);
|
566
|
+
}
|
567
|
+
|
568
|
+
if (targetType == IAccess.TargetType.Component) {
|
569
|
+
return RoleIdLib.toRoleId(COMPONENT_ROLE_MIN + index);
|
570
|
+
}
|
571
|
+
|
572
|
+
if (targetType == IAccess.TargetType.Custom
|
573
|
+
|| targetType == IAccess.TargetType.Contract)
|
574
|
+
{
|
575
|
+
return RoleIdLib.toRoleId(CUSTOM_ROLE_MIN + index);
|
576
|
+
}
|
577
|
+
|
578
|
+
revert IAccessAdmin.ErrorAccessAdminInvalidTargetType(target, targetType);
|
579
|
+
}
|
580
|
+
|
581
|
+
|
582
|
+
function getTokenHandler(
|
583
|
+
address target,
|
584
|
+
string memory targetName,
|
585
|
+
IAccess.TargetType targetType
|
586
|
+
)
|
587
|
+
public
|
588
|
+
view
|
589
|
+
returns (
|
590
|
+
address tokenHandler,
|
591
|
+
string memory tokenHandlerName
|
592
|
+
)
|
593
|
+
{
|
594
|
+
// not component or core (we need to check core because of staking)
|
595
|
+
if (targetType != IAccess.TargetType.Component && targetType != IAccess.TargetType.Core) {
|
596
|
+
return (address(0), "");
|
597
|
+
}
|
598
|
+
|
599
|
+
// not contract
|
600
|
+
if (!ContractLib.isContract(target)) {
|
601
|
+
return (address(0), "");
|
602
|
+
}
|
603
|
+
|
604
|
+
// not component
|
605
|
+
if (!ContractLib.supportsInterface(target, type(IComponent).interfaceId)) {
|
606
|
+
return (address(0), "");
|
607
|
+
}
|
608
|
+
|
609
|
+
tokenHandler = address(IComponent(target).getTokenHandler());
|
610
|
+
tokenHandlerName = string(abi.encodePacked(targetName, TOKEN_HANDLER_SUFFIX));
|
611
|
+
}
|
612
|
+
|
613
|
+
|
614
|
+
function toFunctionGrantingString(
|
615
|
+
IAccessAdmin accessAdmin,
|
616
|
+
Str functionName,
|
617
|
+
RoleId roleId
|
618
|
+
)
|
619
|
+
public
|
620
|
+
view
|
621
|
+
returns (string memory)
|
622
|
+
{
|
623
|
+
return string(
|
624
|
+
abi.encodePacked(
|
625
|
+
functionName.toString(),
|
626
|
+
"(): ",
|
627
|
+
getRoleName(accessAdmin, roleId)));
|
628
|
+
}
|
629
|
+
|
630
|
+
|
631
|
+
function getRoleName(
|
632
|
+
IAccessAdmin accessAdmin,
|
633
|
+
RoleId roleId
|
634
|
+
)
|
635
|
+
public
|
636
|
+
view
|
637
|
+
returns (string memory)
|
638
|
+
{
|
639
|
+
if (accessAdmin.roleExists(roleId)) {
|
640
|
+
return accessAdmin.getRoleInfo(roleId).name.toString();
|
641
|
+
}
|
642
|
+
|
643
|
+
return "<unknown-role>";
|
644
|
+
}
|
645
|
+
|
646
|
+
|
647
|
+
function toRoleName(string memory name) public pure returns (string memory) {
|
648
|
+
return string(
|
649
|
+
abi.encodePacked(
|
650
|
+
name,
|
651
|
+
ROLE_SUFFIX));
|
652
|
+
}
|
653
|
+
|
654
|
+
|
655
|
+
function toFunction(
|
656
|
+
bytes4 selector,
|
657
|
+
string memory name
|
658
|
+
)
|
659
|
+
public
|
660
|
+
view
|
661
|
+
returns (IAccess.FunctionInfo memory)
|
662
|
+
{
|
663
|
+
if(selector == bytes4(0)) {
|
664
|
+
revert IAccessAdmin.ErrorAccessAdminSelectorZero();
|
665
|
+
}
|
666
|
+
|
667
|
+
if(bytes(name).length == 0) {
|
668
|
+
revert IAccessAdmin.ErrorAccessAdminFunctionNameEmpty();
|
669
|
+
}
|
670
|
+
|
671
|
+
return IAccess.FunctionInfo({
|
672
|
+
name: StrLib.toStr(name),
|
673
|
+
selector: SelectorLib.toSelector(selector),
|
674
|
+
createdAt: TimestampLib.current(),
|
675
|
+
lastUpdateIn: BlocknumberLib.current()});
|
676
|
+
}
|
677
|
+
|
678
|
+
}
|