@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531
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 +131 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- 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 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
- 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 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
- 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 +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
- 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/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- 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 -10
- 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 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- 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 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -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 +198 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- 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 +350 -79
- 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 +216 -59
- 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 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- 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 +67 -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 -31
- 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 +169 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -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 +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- 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/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 +39 -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 +77 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- 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 +551 -246
- 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 +169 -111
- 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 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- 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 +1415 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
- 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 +1504 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- 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 +153 -91
- 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 +22 -25
- 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 +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- 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 +64 -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 +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- 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/VersionPartLib.dbg.json +1 -1
- 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 +31 -31
- package/contracts/accounting/IAccountingService.sol +9 -8
- package/contracts/authorization/AccessAdmin.sol +281 -325
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +3 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +127 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +44 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +384 -394
- package/contracts/instance/InstanceService.sol +190 -134
- 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 -5
- 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 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +6 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- 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 +8 -3
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -182
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- 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 +10 -3
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +41 -60
- package/contracts/product/PolicyServiceLib.sol +83 -7
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/ChainNft.sol +1 -1
- 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 +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +250 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +263 -70
- package/contracts/staking/IStakingService.sol +40 -85
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +469 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +43 -186
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- 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 +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- 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 -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/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- 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
@@ -4,84 +4,65 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccess} from "./IAccess.sol";
|
5
5
|
import {IAuthorization} from "./IAuthorization.sol";
|
6
6
|
|
7
|
-
import {
|
8
|
-
import {ObjectType
|
9
|
-
import {RoleId, RoleIdLib
|
10
|
-
import {
|
7
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
8
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
9
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
10
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
11
11
|
import {Str, StrLib} from "../type/String.sol";
|
12
|
-
|
13
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
|
14
13
|
|
15
14
|
contract Authorization is
|
16
|
-
|
15
|
+
ServiceAuthorization,
|
17
16
|
IAuthorization
|
18
17
|
{
|
19
|
-
uint256 public constant GIF_RELEASE = 3;
|
20
18
|
|
21
|
-
|
22
|
-
|
19
|
+
// MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
|
20
|
+
uint64 public constant COMPONENT_ROLE_MIN = 110000;
|
21
|
+
uint64 public constant INSTANCE_ROLE_MIN = 100000;
|
23
22
|
|
24
23
|
uint64 internal _nextGifContractRoleId;
|
25
|
-
|
26
|
-
mapping(ObjectType domain => Str target) internal _serviceTarget;
|
27
|
-
|
28
|
-
string internal _mainTargetName = "Component";
|
29
|
-
string internal _tokenHandlerName = "ComponentTH";
|
24
|
+
uint64 internal _nextInstanceContractRoleId;
|
30
25
|
|
31
|
-
|
32
|
-
Str internal _mainTarget;
|
26
|
+
string internal _tokenHandlerName = "ComponentTh";
|
33
27
|
Str internal _tokenHandlerTarget;
|
34
|
-
Str[] internal _targets;
|
35
|
-
|
36
|
-
mapping(Str target => RoleId roleid) internal _targetRole;
|
37
|
-
mapping(Str target => bool exists) internal _targetExists;
|
38
|
-
|
39
|
-
RoleId[] internal _roles;
|
40
|
-
mapping(RoleId role => RoleInfo info) internal _roleInfo;
|
41
|
-
|
42
|
-
mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
|
43
|
-
mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
44
28
|
|
45
29
|
|
46
30
|
constructor(
|
47
31
|
string memory mainTargetName,
|
48
|
-
ObjectType
|
49
|
-
|
32
|
+
ObjectType domain,
|
33
|
+
uint8 release,
|
34
|
+
string memory commitHash,
|
35
|
+
IAccess.TargetType targetType,
|
50
36
|
bool includeTokenHandler
|
51
37
|
)
|
38
|
+
ServiceAuthorization(mainTargetName, domain, release, commitHash)
|
52
39
|
{
|
53
|
-
//
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
_mainTarget = StrLib.toStr(mainTargetName);
|
68
|
-
_nextGifContractRoleId = 10;
|
69
|
-
|
70
|
-
if (isComponent) {
|
71
|
-
if (targetDomain.eqz()) {
|
40
|
+
// IMPORTANT must match with AccessAdminLib.CORE_ROLE_MIN
|
41
|
+
_nextGifContractRoleId = 100;
|
42
|
+
_nextInstanceContractRoleId = INSTANCE_ROLE_MIN;
|
43
|
+
|
44
|
+
// setup main target
|
45
|
+
// special case: core targets
|
46
|
+
if (targetType == IAccess.TargetType.Core) {
|
47
|
+
_addGifTarget(_mainTargetName);
|
48
|
+
// special case instances
|
49
|
+
} else if (targetType == IAccess.TargetType.Instance) {
|
50
|
+
_addInstanceTarget(_mainTargetName);
|
51
|
+
// all other target types
|
52
|
+
} else {
|
53
|
+
if (domain.eqz()) {
|
72
54
|
revert ErrorAuthorizationTargetDomainZero();
|
73
55
|
}
|
74
56
|
|
75
|
-
RoleId mainRoleId = RoleIdLib.
|
76
|
-
string memory
|
57
|
+
RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
|
58
|
+
string memory mainRoleName = _toTargetRoleName(_mainTargetName);
|
77
59
|
|
78
60
|
_addTargetWithRole(
|
79
61
|
_mainTargetName,
|
80
62
|
mainRoleId,
|
81
|
-
|
82
|
-
} else {
|
83
|
-
_addGifContractTarget(_mainTargetName);
|
63
|
+
mainRoleName);
|
84
64
|
}
|
65
|
+
|
85
66
|
// setup use case specific parts
|
86
67
|
_setupServiceTargets();
|
87
68
|
_setupRoles(); // not including main target role
|
@@ -90,7 +71,7 @@ contract Authorization is
|
|
90
71
|
|
91
72
|
// setup component token handler
|
92
73
|
if (includeTokenHandler) {
|
93
|
-
_tokenHandlerName = string(abi.encodePacked(mainTargetName, "
|
74
|
+
_tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
|
94
75
|
_tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
|
95
76
|
_addTarget(_tokenHandlerName);
|
96
77
|
_setupTokenHandlerAuthorizations();
|
@@ -99,47 +80,6 @@ contract Authorization is
|
|
99
80
|
_registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
|
100
81
|
}
|
101
82
|
|
102
|
-
function getDomain() external view returns(ObjectType targetDomain) {
|
103
|
-
return _domain;
|
104
|
-
}
|
105
|
-
|
106
|
-
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
107
|
-
return _serviceDomains;
|
108
|
-
}
|
109
|
-
|
110
|
-
function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
|
111
|
-
return RoleIdLib.toComponentRoleId(componentDomain, 0);
|
112
|
-
}
|
113
|
-
|
114
|
-
function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
|
115
|
-
return RoleIdLib.roleForTypeAndVersion(
|
116
|
-
serviceDomain,
|
117
|
-
getRelease());
|
118
|
-
}
|
119
|
-
|
120
|
-
function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
|
121
|
-
return _serviceTarget[serviceDomain];
|
122
|
-
}
|
123
|
-
|
124
|
-
function getRoles() external view returns(RoleId[] memory roles) {
|
125
|
-
return _roles;
|
126
|
-
}
|
127
|
-
|
128
|
-
function roleExists(RoleId roleId) public view returns(bool exists) {
|
129
|
-
return _roleInfo[roleId].roleType != RoleType.Undefined;
|
130
|
-
}
|
131
|
-
|
132
|
-
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
|
133
|
-
return _roleInfo[roleId];
|
134
|
-
}
|
135
|
-
|
136
|
-
function getMainTargetName() public virtual view returns (string memory name) {
|
137
|
-
return _mainTargetName;
|
138
|
-
}
|
139
|
-
|
140
|
-
function getMainTarget() public view returns(Str) {
|
141
|
-
return _mainTarget;
|
142
|
-
}
|
143
83
|
|
144
84
|
function getTokenHandlerName() public view returns(string memory) {
|
145
85
|
return _tokenHandlerName;
|
@@ -149,7 +89,7 @@ contract Authorization is
|
|
149
89
|
return _tokenHandlerTarget;
|
150
90
|
}
|
151
91
|
|
152
|
-
function getTarget(string memory targetName) public
|
92
|
+
function getTarget(string memory targetName) public pure returns(Str target) {
|
153
93
|
return StrLib.toStr(targetName);
|
154
94
|
}
|
155
95
|
|
@@ -161,44 +101,45 @@ contract Authorization is
|
|
161
101
|
return target == _mainTarget || _targetExists[target];
|
162
102
|
}
|
163
103
|
|
164
|
-
function getTargetRole(Str target) public view returns(RoleId roleId) {
|
165
|
-
return _targetRole[target];
|
166
|
-
}
|
167
|
-
|
168
|
-
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
|
169
|
-
return _authorizedRoles[target];
|
170
|
-
}
|
171
|
-
|
172
|
-
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
|
173
|
-
return _authorizedFunctions[target][roleId];
|
174
|
-
}
|
175
|
-
|
176
|
-
function getRelease() public virtual pure returns(VersionPart release) {
|
177
|
-
return VersionPartLib.toVersionPart(GIF_RELEASE);
|
178
|
-
}
|
179
|
-
|
180
104
|
/// @dev Sets up the relevant service targets for the component.
|
181
105
|
/// Overwrite this function for use case specific authorizations.
|
106
|
+
// solhint-disable-next-line no-empty-blocks
|
182
107
|
function _setupServiceTargets() internal virtual { }
|
183
108
|
|
184
109
|
/// @dev Sets up the relevant (non-service) targets for the component.
|
185
110
|
/// Overwrite this function for use case specific authorizations.
|
111
|
+
// solhint-disable-next-line no-empty-blocks
|
186
112
|
function _setupTargets() internal virtual { }
|
187
113
|
|
188
114
|
/// @dev Sets up the relevant roles for the component.
|
189
115
|
/// Overwrite this function for use case specific authorizations.
|
116
|
+
// solhint-disable-next-line no-empty-blocks
|
190
117
|
function _setupRoles() internal virtual {}
|
191
118
|
|
192
119
|
/// @dev Sets up the relevant component's token handler authorizations.
|
193
120
|
/// Overwrite this function for use case specific authorizations.
|
121
|
+
// solhint-disable-next-line no-empty-blocks
|
194
122
|
function _setupTokenHandlerAuthorizations() internal virtual {}
|
195
123
|
|
196
124
|
/// @dev Sets up the relevant target authorizations for the component.
|
197
125
|
/// Overwrite this function for use case specific authorizations.
|
126
|
+
// solhint-disable-next-line no-empty-blocks
|
198
127
|
function _setupTargetAuthorizations() internal virtual {}
|
199
128
|
|
200
|
-
function _addGifContractTarget(string memory contractName) internal {
|
201
129
|
|
130
|
+
/// @dev Add a contract role for the provided role id and name.
|
131
|
+
function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
|
132
|
+
_addRole(
|
133
|
+
roleId,
|
134
|
+
AccessAdminLib.roleInfo(
|
135
|
+
adminRoleId,
|
136
|
+
TargetType.Custom,
|
137
|
+
maxMemberCount,
|
138
|
+
name));
|
139
|
+
}
|
140
|
+
|
141
|
+
/// @dev Add a gif target with its corresponding contract role
|
142
|
+
function _addGifTarget(string memory contractName) internal {
|
202
143
|
RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
|
203
144
|
string memory contractRoleName = string(
|
204
145
|
abi.encodePacked(
|
@@ -211,155 +152,39 @@ contract Authorization is
|
|
211
152
|
contractRoleName);
|
212
153
|
}
|
213
154
|
|
214
|
-
/// @dev Add
|
215
|
-
function
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
// get versioned target name
|
220
|
-
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
221
|
-
ObjectTypeLib.toName(serviceDomain),
|
222
|
-
"Service",
|
223
|
-
getRelease());
|
224
|
-
|
225
|
-
_serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
|
226
|
-
|
227
|
-
RoleId serviceRoleId = getServiceRole(serviceDomain);
|
228
|
-
string memory serviceRoleName = ObjectTypeLib.toVersionedName(
|
229
|
-
ObjectTypeLib.toName(serviceDomain),
|
230
|
-
"ServiceRole",
|
231
|
-
getRelease());
|
155
|
+
/// @dev Add an instance target with its corresponding contract role
|
156
|
+
function _addInstanceTarget(string memory contractName) internal {
|
157
|
+
RoleId contractRoleId = RoleIdLib.toRoleId(_nextInstanceContractRoleId++);
|
158
|
+
string memory contractRoleName = _toTargetRoleName(contractName);
|
232
159
|
|
233
160
|
_addTargetWithRole(
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
}
|
238
|
-
|
239
|
-
|
240
|
-
/// @dev Use this method to to add an authorized role.
|
241
|
-
function _addRole(RoleId roleId, RoleInfo memory info) internal {
|
242
|
-
_roles.push(roleId);
|
243
|
-
_roleInfo[roleId] = info;
|
244
|
-
}
|
245
|
-
|
246
|
-
|
247
|
-
/// @dev Add a contract role for the provided role id and name.
|
248
|
-
function _addContractRole(RoleId roleId, string memory name) internal {
|
249
|
-
_addRole(
|
250
|
-
roleId,
|
251
|
-
_toRoleInfo(
|
252
|
-
ADMIN_ROLE(),
|
253
|
-
RoleType.Contract,
|
254
|
-
1,
|
255
|
-
name));
|
256
|
-
}
|
257
|
-
|
258
|
-
|
259
|
-
/// @dev Add the versioned service role for the specified service domain
|
260
|
-
function _addServiceRole(ObjectType serviceDomain) internal {
|
261
|
-
_addContractRole(
|
262
|
-
getServiceRole(serviceDomain),
|
263
|
-
ObjectTypeLib.toVersionedName(
|
264
|
-
ObjectTypeLib.toName(serviceDomain),
|
265
|
-
SERVICE_ROLE_NAME_SUFFIX,
|
266
|
-
getRelease()));
|
267
|
-
}
|
268
|
-
|
269
|
-
|
270
|
-
/// @dev Add a contract role for the provided role id and name.
|
271
|
-
function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
|
272
|
-
_addRole(
|
273
|
-
roleId,
|
274
|
-
_toRoleInfo(
|
275
|
-
adminRoleId,
|
276
|
-
RoleType.Custom,
|
277
|
-
maxMemberCount,
|
278
|
-
name));
|
279
|
-
}
|
280
|
-
|
281
|
-
|
282
|
-
/// @dev Use this method to to add an authorized target together with its target role.
|
283
|
-
function _addTargetWithRole(
|
284
|
-
string memory targetName,
|
285
|
-
RoleId roleId,
|
286
|
-
string memory roleName
|
287
|
-
)
|
288
|
-
internal
|
289
|
-
{
|
290
|
-
// add target
|
291
|
-
Str target = StrLib.toStr(targetName);
|
292
|
-
_targets.push(target);
|
293
|
-
|
294
|
-
_targetExists[target] = true;
|
295
|
-
|
296
|
-
// link role to target if defined
|
297
|
-
if (roleId != RoleIdLib.zero()) {
|
298
|
-
// add role if new
|
299
|
-
if (!roleExists(roleId)) {
|
300
|
-
_addContractRole(roleId, roleName);
|
301
|
-
}
|
302
|
-
|
303
|
-
// link target to role
|
304
|
-
_targetRole[target] = roleId;
|
305
|
-
}
|
161
|
+
contractName,
|
162
|
+
contractRoleId,
|
163
|
+
contractRoleName);
|
306
164
|
}
|
307
165
|
|
308
|
-
|
309
166
|
/// @dev Use this method to to add an authorized target.
|
310
167
|
function _addTarget(string memory name) internal {
|
311
168
|
_addTargetWithRole(name, RoleIdLib.zero(), "");
|
312
169
|
}
|
313
170
|
|
314
171
|
|
315
|
-
/// @dev
|
316
|
-
function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
|
317
|
-
internal
|
318
|
-
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
319
|
-
{
|
320
|
-
Str targetStr = StrLib.toStr(target);
|
321
|
-
_authorizedRoles[targetStr].push(authorizedRoleId);
|
322
|
-
return _authorizedFunctions[targetStr][authorizedRoleId];
|
323
|
-
}
|
324
|
-
|
325
|
-
|
326
|
-
/// @dev Use this method to authorize a specific function authorization
|
327
|
-
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
328
|
-
functions.push(
|
329
|
-
IAccess.FunctionInfo({
|
330
|
-
selector: SelectorLib.toSelector(selector),
|
331
|
-
name: StrLib.toStr(name),
|
332
|
-
createdAt: TimestampLib.blockTimestamp()}));
|
333
|
-
}
|
334
|
-
|
335
|
-
|
336
|
-
/// @dev role id for targets registry, staking and instance
|
172
|
+
/// @dev Role id for targets registry, staking and instance
|
337
173
|
function _toTargetRoleId(ObjectType targetDomain)
|
338
174
|
internal
|
339
175
|
pure
|
340
176
|
returns (RoleId targetRoleId)
|
341
177
|
{
|
342
|
-
return RoleIdLib.
|
178
|
+
return RoleIdLib.toRoleId(100 * targetDomain.toInt());
|
343
179
|
}
|
344
180
|
|
345
181
|
|
182
|
+
/// @dev Returns the role name for the specified target name
|
346
183
|
function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
|
347
184
|
return string(
|
348
185
|
abi.encodePacked(
|
349
186
|
targetName,
|
350
187
|
ROLE_NAME_SUFFIX));
|
351
188
|
}
|
352
|
-
|
353
|
-
|
354
|
-
/// @dev creates a role info object from the provided parameters
|
355
|
-
function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
|
356
|
-
return RoleInfo({
|
357
|
-
name: StrLib.toStr(name),
|
358
|
-
adminRoleId: adminRoleId,
|
359
|
-
roleType: roleType,
|
360
|
-
maxMemberCount: maxMemberCount,
|
361
|
-
createdAt: TimestampLib.blockTimestamp(),
|
362
|
-
pausedAt: TimestampLib.max()});
|
363
|
-
}
|
364
189
|
}
|
365
190
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
4
5
|
import {RoleId} from "../type/RoleId.sol";
|
5
6
|
import {Selector} from "../type/Selector.sol";
|
6
7
|
import {Str} from "../type/String.sol";
|
@@ -8,40 +9,56 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
8
9
|
|
9
10
|
interface IAccess {
|
10
11
|
|
11
|
-
enum
|
12
|
-
Undefined, // no
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
enum TargetType {
|
13
|
+
Undefined, // no target must have this type
|
14
|
+
Core, // GIF core contracts
|
15
|
+
GenericService, // release independent service contracts
|
16
|
+
Service, // service contracts
|
17
|
+
Instance, // instance contracts
|
18
|
+
Component, // instance contracts
|
19
|
+
Contract, // normal contracts
|
20
|
+
Custom // use case specific rules for contracts or normal accounts
|
16
21
|
}
|
17
22
|
|
18
23
|
struct RoleInfo {
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
Timestamp createdAt;
|
24
|
-
Timestamp pausedAt;
|
24
|
+
// slot 0
|
25
|
+
RoleId adminRoleId; // 64
|
26
|
+
TargetType targetType; // ?
|
27
|
+
uint32 maxMemberCount; // 32
|
28
|
+
Timestamp createdAt; // 40
|
29
|
+
Timestamp pausedAt; // 40
|
30
|
+
Blocknumber lastUpdateIn; // 40
|
31
|
+
// slot 1
|
32
|
+
Str name; // 256
|
25
33
|
}
|
26
34
|
|
35
|
+
|
36
|
+
// TODO recalc slot allocation
|
27
37
|
struct TargetInfo {
|
28
38
|
Str name;
|
29
|
-
|
39
|
+
TargetType targetType;
|
40
|
+
RoleId roleId;
|
30
41
|
Timestamp createdAt;
|
42
|
+
Blocknumber lastUpdateIn;
|
31
43
|
}
|
32
44
|
|
33
45
|
struct FunctionInfo {
|
46
|
+
// slot 0
|
34
47
|
Str name; // function name
|
48
|
+
// slot 1
|
35
49
|
Selector selector; // function selector
|
36
50
|
Timestamp createdAt;
|
51
|
+
Blocknumber lastUpdateIn;
|
37
52
|
}
|
38
53
|
|
39
54
|
struct RoleNameInfo {
|
55
|
+
// slot 0
|
40
56
|
RoleId roleId;
|
41
57
|
bool exists;
|
42
58
|
}
|
43
59
|
|
44
60
|
struct TargeNameInfo {
|
61
|
+
// slot 0
|
45
62
|
address target;
|
46
63
|
bool exists;
|
47
64
|
}
|
@@ -8,13 +8,14 @@ import {IAuthorization} from "./IAuthorization.sol";
|
|
8
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
9
9
|
import {IRelease} from "../registry/IRelease.sol";
|
10
10
|
|
11
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
11
12
|
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {ObjectType} from "../type/ObjectType.sol";
|
13
14
|
import {RoleId} from "../type/RoleId.sol";
|
14
|
-
import {Selector} from "../type/Selector.sol";
|
15
15
|
import {Str} from "../type/String.sol";
|
16
16
|
import {VersionPart} from "../type/Version.sol";
|
17
17
|
|
18
|
+
/// @dev Base interface for registry admin, release admin, and instance admin
|
18
19
|
interface IAccessAdmin is
|
19
20
|
IAccessManaged,
|
20
21
|
IAccess,
|
@@ -23,12 +24,14 @@ interface IAccessAdmin is
|
|
23
24
|
{
|
24
25
|
|
25
26
|
// roles, targets and functions
|
26
|
-
event LogAccessAdminRoleCreated(string admin, RoleId roleId,
|
27
|
-
event LogAccessAdminTargetCreated(string admin, address target,
|
27
|
+
event LogAccessAdminRoleCreated(string admin, RoleId roleId, TargetType targetType, RoleId roleAdminId, string name);
|
28
|
+
event LogAccessAdminTargetCreated(string admin, string name, bool managed, address target, RoleId roleId);
|
28
29
|
|
30
|
+
event LogAccessAdminRoleActivatedSet(string admin, RoleId roleId, bool active, Blocknumber lastUpdateIn);
|
29
31
|
event LogAccessAdminRoleGranted(string admin, address account, string roleName);
|
30
32
|
event LogAccessAdminRoleRevoked(string admin, address account, string roleName);
|
31
|
-
event
|
33
|
+
event LogAccessAdminTargetLockedSet(string admin, address target, bool locked, Blocknumber lastUpdateIn);
|
34
|
+
event LogAccessAdminFunctionGranted(string admin, address target, string func, Blocknumber lastUpdateIn);
|
32
35
|
|
33
36
|
// only deployer modifier
|
34
37
|
error ErrorAccessAdminNotDeployer();
|
@@ -39,6 +42,11 @@ interface IAccessAdmin is
|
|
39
42
|
// only role owner modifier
|
40
43
|
error ErrorAccessAdminNotRoleOwner(RoleId roleId, address account);
|
41
44
|
|
45
|
+
// role management
|
46
|
+
error ErrorAccessAdminInvalidUseOfAdminRole();
|
47
|
+
error ErrorAccessAdminInvalidUseOfPublicRole();
|
48
|
+
error ErrorAccessAdminRoleNotCustom(RoleId roleId);
|
49
|
+
|
42
50
|
// initialization
|
43
51
|
error ErrorAccessAdminNotRegistry(address registry);
|
44
52
|
error ErrorAccessAdminAuthorityNotContract(address authority);
|
@@ -46,6 +54,8 @@ interface IAccessAdmin is
|
|
46
54
|
error ErrorAccessAdminAccessManagerEmptyName();
|
47
55
|
|
48
56
|
// check target
|
57
|
+
error ErrorAccessAdminInvalidTargetType(address target, TargetType targetType);
|
58
|
+
error ErrorAccessAdminInvalidServiceType(address target, TargetType serviceTargetType);
|
49
59
|
error ErrorAccessAdminTargetNotCreated(address target);
|
50
60
|
error ErrorAccessAdminTargetNotRegistered(address target);
|
51
61
|
error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
|
@@ -53,6 +63,7 @@ interface IAccessAdmin is
|
|
53
63
|
// check authorization
|
54
64
|
error ErrorAccessAdminAlreadyInitialized(address authorization);
|
55
65
|
error ErrorAccessAdminNotAuthorization(address authorization);
|
66
|
+
error ErrorAccessAdminNotServiceAuthorization(address serviceAuthorization);
|
56
67
|
error ErrorAccessAdminDomainMismatch(address authorization, ObjectType expectedDomain, ObjectType actualDomain);
|
57
68
|
error ErrorAccessAdminReleaseMismatch(address authorization, VersionPart expectedRelease, VersionPart actualRelease);
|
58
69
|
|
@@ -88,71 +99,34 @@ interface IAccessAdmin is
|
|
88
99
|
error ErrorAccessAdminTargetAlreadyLocked(address target, bool isLocked);
|
89
100
|
|
90
101
|
// authorize target functions
|
102
|
+
error ErrorAccessAdminNotComponentOrCustomTarget(address target);
|
91
103
|
error ErrorAccessAdminAuthorizeForAdminRoleInvalid(address target);
|
92
104
|
|
105
|
+
// toFunction
|
106
|
+
error ErrorAccessAdminSelectorZero();
|
107
|
+
error ErrorAccessAdminFunctionNameEmpty();
|
108
|
+
|
93
109
|
// check target
|
94
110
|
error ErrorAccessAdminTargetUnknown(address target);
|
95
111
|
|
96
|
-
/// @dev Set the disabled status of the speicified role.
|
97
|
-
/// Role disabling only prevents the role from being granted to new accounts.
|
98
|
-
/// Existing role members may still execute functions that are authorized for that role.
|
99
|
-
/// Permissioned: the caller must have the manager role (getManagerRole).
|
100
|
-
// TODO move to instance admin
|
101
|
-
// function setRoleDisabled(RoleId roleId, bool disabled) external;
|
102
|
-
|
103
|
-
/// @dev Grant the specified account the provided role.
|
104
|
-
/// Permissioned: the caller must have the roles admin role.
|
105
|
-
// TODO move to instance admin
|
106
|
-
// function grantRole(address account, RoleId roleId) external;
|
107
|
-
|
108
|
-
/// @dev Revoke the provided role from the specified account.
|
109
|
-
/// Permissioned: the caller must have the roles admin role.
|
110
|
-
// TODO move to instance admin
|
111
|
-
// function revokeRole(address account, RoleId roleId) external;
|
112
|
-
|
113
|
-
/// @dev Removes the provided role from the caller
|
114
|
-
// TODO move to instance admin
|
115
|
-
// function renounceRole(RoleId roleId) external;
|
116
|
-
|
117
|
-
/// @dev Set the locked status of the speicified contract.
|
118
|
-
/// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
|
119
|
-
/// Overwrite this function if a different use case specific behaviour is required.
|
120
|
-
/// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
|
121
|
-
/// Permissioned: the caller must have the manager role (getManagerRole).
|
122
|
-
// TODO move to instance admin
|
123
|
-
// function setTargetLocked(address target, bool locked) external;
|
124
|
-
|
125
|
-
/// @dev Specifies which functions of the target can be accessed by the provided role.
|
126
|
-
/// Previously existing authorizations will be overwritten.
|
127
|
-
/// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
|
128
|
-
/// Permissioned: the caller must have the manager role (getManagerRole).
|
129
|
-
// TODO move to instance admin
|
130
|
-
// function authorizeFunctions(address target, RoleId roleId, FunctionInfo[] memory functions) external;
|
131
|
-
|
132
|
-
/// @dev Specifies for which functionss to remove any previous authorization
|
133
|
-
/// Permissioned: the caller must have the manager role (getManagerRole).
|
134
|
-
// TODO move to instance admin
|
135
|
-
// function unauthorizeFunctions(address target, FunctionInfo[] memory functions) external;
|
136
|
-
|
137
112
|
//--- view functions ----------------------------------------------------//
|
138
113
|
|
139
114
|
function getAuthorization() external view returns (IAuthorization authorization);
|
140
115
|
function getLinkedNftId() external view returns (NftId linkedNftId);
|
141
|
-
function getLinkedOwner() external view returns (address linkedOwner);
|
142
116
|
|
143
117
|
function isLocked() external view returns (bool locked);
|
144
118
|
|
145
119
|
function roles() external view returns (uint256 numberOfRoles);
|
146
120
|
function getRoleId(uint256 idx) external view returns (RoleId roleId);
|
147
|
-
function getAdminRole() external view returns (RoleId roleId);
|
148
|
-
function getPublicRole() external view returns (RoleId roleId);
|
149
121
|
|
150
122
|
function roleExists(RoleId roleId) external view returns (bool exists);
|
151
|
-
function getRoleForName(string memory name) external view returns (RoleId roleId);
|
123
|
+
function getRoleForName(string memory name) external view returns (RoleId roleId, bool exists);
|
152
124
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
|
125
|
+
function isRoleActive(RoleId roleId) external view returns (bool isActive);
|
126
|
+
function isRoleCustom(RoleId roleId) external view returns (bool isCustom);
|
153
127
|
|
154
|
-
function
|
155
|
-
function
|
128
|
+
function isRoleMember(RoleId roleId, address account) external view returns (bool);
|
129
|
+
function isRoleAdmin(RoleId roleId, address account) external view returns (bool);
|
156
130
|
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
|
157
131
|
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
|
158
132
|
|
@@ -165,6 +139,4 @@ interface IAccessAdmin is
|
|
165
139
|
|
166
140
|
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
|
167
141
|
function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
|
168
|
-
|
169
|
-
function deployer() external view returns (address);
|
170
142
|
}
|