@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f689687-279
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -65
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
- 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 +102 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +259 -184
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- 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 +104 -54
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +288 -147
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +331 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +294 -196
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -50
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +105 -137
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +40 -38
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -130
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
- 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 +26 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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/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 +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- 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 +51 -39
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- 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 +2 -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 +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +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/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 +2 -2
- 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 +23 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +156 -82
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +27 -24
- package/contracts/distribution/DistributionService.sol +18 -15
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/examples/fire/FirePool.sol +6 -2
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +8 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -14
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +216 -62
- package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
- package/contracts/instance/InstanceReader.sol +79 -35
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +35 -63
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +307 -162
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +3 -2
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +74 -82
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +36 -0
- package/contracts/product/RiskService.sol +61 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +129 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +32 -27
- package/contracts/shared/ComponentService.sol +89 -266
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +1 -23
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +3 -3
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -88
- package/contracts/staking/IStaking.sol +0 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +34 -13
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +32 -42
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +46 -21
- package/contracts/type/RiskId.sol +5 -0
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAccess} from "./IAccess.sol";
|
5
5
|
import {IAuthorization} from "./IAuthorization.sol";
|
6
|
-
import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
|
6
|
+
import {ObjectType, ObjectTypeLib, PRODUCT, ORACLE, DISTRIBUTION, POOL} from "../type/ObjectType.sol";
|
7
7
|
import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
|
8
8
|
import {SelectorLib} from "../type/Selector.sol";
|
9
9
|
import {Str, StrLib} from "../type/String.sol";
|
@@ -22,6 +22,10 @@ contract Authorization
|
|
22
22
|
mapping(ObjectType domain => Str target) internal _serviceTarget;
|
23
23
|
|
24
24
|
string internal _mainTargetName = "Component";
|
25
|
+
string internal _tokenHandlerName = "ComponentTH";
|
26
|
+
|
27
|
+
Str internal _mainTarget;
|
28
|
+
Str internal _tokenHandlerTarget;
|
25
29
|
Str[] internal _targets;
|
26
30
|
|
27
31
|
mapping(Str target => RoleId roleid) internal _targetRole;
|
@@ -34,256 +38,300 @@ contract Authorization
|
|
34
38
|
mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
35
39
|
|
36
40
|
|
37
|
-
constructor(
|
41
|
+
constructor(
|
42
|
+
string memory mainTargetName,
|
43
|
+
ObjectType targetDomain
|
44
|
+
)
|
45
|
+
{
|
46
|
+
// checks
|
47
|
+
if (bytes(mainTargetName).length == 0) {
|
48
|
+
revert ErrorAuthorizationMainTargetNameEmpty();
|
49
|
+
}
|
50
|
+
|
51
|
+
if (targetDomain.eqz()) {
|
52
|
+
revert ErrorAuthorizationTargetDomainZero();
|
53
|
+
}
|
54
|
+
|
55
|
+
// effects
|
56
|
+
// setup main target, main role id and main role info
|
38
57
|
_mainTargetName = mainTargetName;
|
58
|
+
_tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
|
59
|
+
|
60
|
+
RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
|
61
|
+
string memory mainRolName = _toTargetRoleName(mainTargetName);
|
62
|
+
|
63
|
+
_addTargetWithRole(
|
64
|
+
_mainTargetName,
|
65
|
+
mainRoleId,
|
66
|
+
mainRolName);
|
67
|
+
|
68
|
+
_mainTarget = StrLib.toStr(mainTargetName);
|
69
|
+
_targetRole[_mainTarget] = mainRoleId;
|
70
|
+
|
71
|
+
// add token handler target for components
|
72
|
+
if (targetDomain == PRODUCT()
|
73
|
+
|| targetDomain == DISTRIBUTION()
|
74
|
+
|| targetDomain == ORACLE()
|
75
|
+
|| targetDomain == POOL()
|
76
|
+
) {
|
77
|
+
_addTarget(_tokenHandlerName);
|
78
|
+
}
|
79
|
+
|
80
|
+
// setup token handler target
|
81
|
+
_tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
|
39
82
|
|
83
|
+
// setup use case specific parts
|
40
84
|
_setupServiceTargets();
|
41
|
-
_setupRoles();
|
42
|
-
_setupTargets();
|
43
|
-
|
85
|
+
_setupRoles(); // not including main target role
|
86
|
+
_setupTargets(); // not including main target (and token handler target)
|
87
|
+
|
88
|
+
_setupTokenHandlerAuthorizations();
|
89
|
+
_setupTargetAuthorizations(); // not including token handler target
|
90
|
+
}
|
91
|
+
|
92
|
+
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
93
|
+
return _serviceDomains;
|
94
|
+
}
|
95
|
+
|
96
|
+
function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
|
97
|
+
return RoleIdLib.toComponentRoleId(componentDomain, 0);
|
98
|
+
}
|
99
|
+
|
100
|
+
function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
|
101
|
+
return RoleIdLib.roleForTypeAndVersion(
|
102
|
+
serviceDomain,
|
103
|
+
getRelease());
|
44
104
|
}
|
45
105
|
|
46
|
-
|
47
|
-
|
48
|
-
|
106
|
+
function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
|
107
|
+
return _serviceTarget[serviceDomain];
|
108
|
+
}
|
49
109
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
getRelease());
|
54
|
-
}
|
110
|
+
function getRoles() external view returns(RoleId[] memory roles) {
|
111
|
+
return _roles;
|
112
|
+
}
|
55
113
|
|
56
|
-
|
57
|
-
|
58
|
-
|
114
|
+
function roleExists(RoleId roleId) public view returns(bool exists) {
|
115
|
+
return _roleInfo[roleId].roleType != RoleType.Undefined;
|
116
|
+
}
|
59
117
|
|
60
|
-
|
61
|
-
|
62
|
-
|
118
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
|
119
|
+
return _roleInfo[roleId];
|
120
|
+
}
|
63
121
|
|
64
|
-
|
65
|
-
|
66
|
-
|
122
|
+
function getMainTargetName() public virtual view returns (string memory name) {
|
123
|
+
return _mainTargetName;
|
124
|
+
}
|
67
125
|
|
68
|
-
|
69
|
-
|
70
|
-
|
126
|
+
function getMainTarget() public view returns(Str) {
|
127
|
+
return _mainTarget;
|
128
|
+
}
|
71
129
|
|
72
|
-
|
73
|
-
|
74
|
-
|
130
|
+
function getTokenHandlerName() public view returns(string memory) {
|
131
|
+
return _tokenHandlerName;
|
132
|
+
}
|
75
133
|
|
76
|
-
|
77
|
-
|
78
|
-
|
134
|
+
function getTokenHandlerTarget() public view returns(Str) {
|
135
|
+
return _tokenHandlerTarget;
|
136
|
+
}
|
79
137
|
|
80
|
-
|
81
|
-
|
82
|
-
|
138
|
+
function getTarget(string memory targetName) public view returns(Str target) {
|
139
|
+
return StrLib.toStr(targetName);
|
140
|
+
}
|
83
141
|
|
84
|
-
|
85
|
-
|
86
|
-
|
142
|
+
function getTargets() external view returns(Str[] memory targets) {
|
143
|
+
return _targets;
|
144
|
+
}
|
87
145
|
|
88
|
-
|
89
|
-
|
90
|
-
|
146
|
+
function targetExists(Str target) external view returns(bool exists) {
|
147
|
+
return target == _mainTarget || _targetExists[target];
|
148
|
+
}
|
91
149
|
|
92
|
-
|
93
|
-
|
94
|
-
|
150
|
+
function getTargetRole(Str target) external view returns(RoleId roleId) {
|
151
|
+
return _targetRole[target];
|
152
|
+
}
|
95
153
|
|
96
|
-
|
97
|
-
|
98
|
-
|
154
|
+
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
|
155
|
+
return _authorizedRoles[target];
|
156
|
+
}
|
99
157
|
|
100
|
-
|
101
|
-
|
102
|
-
|
158
|
+
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
|
159
|
+
return _authorizedFunctions[target][roleId];
|
160
|
+
}
|
103
161
|
|
104
162
|
function getRelease() public virtual pure returns(VersionPart release) {
|
105
163
|
return VersionPartLib.toVersionPart(GIF_RELEASE);
|
106
164
|
}
|
107
165
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
/// @dev creates a role info object from the provided parameters
|
279
|
-
function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
|
280
|
-
return RoleInfo({
|
281
|
-
name: StrLib.toStr(name),
|
282
|
-
adminRoleId: adminRoleId,
|
283
|
-
roleType: roleType,
|
284
|
-
maxMemberCount: maxMemberCount,
|
285
|
-
createdAt: TimestampLib.blockTimestamp(),
|
286
|
-
pausedAt: TimestampLib.max()});
|
287
|
-
}
|
166
|
+
/// @dev Sets up the relevant service targets for the component.
|
167
|
+
/// Overwrite this function for use case specific authorizations.
|
168
|
+
function _setupServiceTargets() internal virtual { }
|
169
|
+
|
170
|
+
/// @dev Sets up the relevant (non-service) targets for the component.
|
171
|
+
/// Overwrite this function for use case specific authorizations.
|
172
|
+
function _setupTargets() internal virtual { }
|
173
|
+
|
174
|
+
/// @dev Sets up the relevant roles for the component.
|
175
|
+
/// Overwrite this function for use case specific authorizations.
|
176
|
+
function _setupRoles() internal virtual {}
|
177
|
+
|
178
|
+
/// @dev Sets up the relevant component's token handler authorizations.
|
179
|
+
/// Overwrite this function for use case specific authorizations.
|
180
|
+
function _setupTokenHandlerAuthorizations() internal virtual {}
|
181
|
+
|
182
|
+
/// @dev Sets up the relevant target authorizations for the component.
|
183
|
+
/// Overwrite this function for use case specific authorizations.
|
184
|
+
function _setupTargetAuthorizations() internal virtual {}
|
185
|
+
|
186
|
+
/// @dev Add the service target role for the specified service domain
|
187
|
+
function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
|
188
|
+
// add service domain
|
189
|
+
_serviceDomains.push(serviceDomain);
|
190
|
+
|
191
|
+
// get versioned target name
|
192
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
193
|
+
ObjectTypeLib.toName(serviceDomain),
|
194
|
+
"Service",
|
195
|
+
getRelease().toInt());
|
196
|
+
|
197
|
+
_serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
|
198
|
+
|
199
|
+
RoleId serviceRoleId = getServiceRole(serviceDomain);
|
200
|
+
string memory serviceRoleName = ObjectTypeLib.toVersionedName(
|
201
|
+
ObjectTypeLib.toName(serviceDomain),
|
202
|
+
"ServiceRole",
|
203
|
+
getRelease().toInt());
|
204
|
+
|
205
|
+
_addTargetWithRole(
|
206
|
+
serviceTargetName,
|
207
|
+
serviceRoleId,
|
208
|
+
serviceRoleName);
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
/// @dev Use this method to to add an authorized role.
|
213
|
+
function _addRole(RoleId roleId, RoleInfo memory info) internal {
|
214
|
+
_roles.push(roleId);
|
215
|
+
_roleInfo[roleId] = info;
|
216
|
+
}
|
217
|
+
|
218
|
+
|
219
|
+
/// @dev Add a contract role for the provided role id and name.
|
220
|
+
function _addContractRole(RoleId roleId, string memory name) internal {
|
221
|
+
_addRole(
|
222
|
+
roleId,
|
223
|
+
_toRoleInfo(
|
224
|
+
ADMIN_ROLE(),
|
225
|
+
RoleType.Contract,
|
226
|
+
1,
|
227
|
+
name));
|
228
|
+
}
|
229
|
+
|
230
|
+
|
231
|
+
/// @dev Add the versioned service role for the specified service domain
|
232
|
+
function _addServiceRole(ObjectType serviceDomain) internal {
|
233
|
+
_addContractRole(
|
234
|
+
getServiceRole(serviceDomain),
|
235
|
+
ObjectTypeLib.toVersionedName(
|
236
|
+
ObjectTypeLib.toName(serviceDomain),
|
237
|
+
SERVICE_ROLE_NAME_SUFFIX,
|
238
|
+
getRelease().toInt()));
|
239
|
+
}
|
240
|
+
|
241
|
+
|
242
|
+
/// @dev Add a contract role for the provided role id and name.
|
243
|
+
function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
|
244
|
+
_addRole(
|
245
|
+
roleId,
|
246
|
+
_toRoleInfo(
|
247
|
+
adminRoleId,
|
248
|
+
RoleType.Custom,
|
249
|
+
maxMemberCount,
|
250
|
+
name));
|
251
|
+
}
|
252
|
+
|
253
|
+
|
254
|
+
/// @dev Use this method to to add an authorized target together with its target role.
|
255
|
+
function _addTargetWithRole(
|
256
|
+
string memory targetName,
|
257
|
+
RoleId roleId,
|
258
|
+
string memory roleName
|
259
|
+
)
|
260
|
+
internal
|
261
|
+
{
|
262
|
+
// add target
|
263
|
+
Str target = StrLib.toStr(targetName);
|
264
|
+
_targets.push(target);
|
265
|
+
|
266
|
+
_targetExists[target] = true;
|
267
|
+
|
268
|
+
// link role to target if defined
|
269
|
+
if (roleId != RoleIdLib.zero()) {
|
270
|
+
// add role if new
|
271
|
+
if (!roleExists(roleId)) {
|
272
|
+
_addContractRole(roleId, roleName);
|
273
|
+
}
|
274
|
+
|
275
|
+
// link target to role
|
276
|
+
_targetRole[target] = roleId;
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
|
281
|
+
/// @dev Use this method to to add an authorized target.
|
282
|
+
function _addTarget(string memory name) internal {
|
283
|
+
_addTargetWithRole(name, RoleIdLib.zero(), "");
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
/// @dev Use this method to authorize the specified role to access the target.
|
288
|
+
function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
|
289
|
+
internal
|
290
|
+
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
291
|
+
{
|
292
|
+
Str targetStr = StrLib.toStr(target);
|
293
|
+
_authorizedRoles[targetStr].push(authorizedRoleId);
|
294
|
+
return _authorizedFunctions[targetStr][authorizedRoleId];
|
295
|
+
}
|
296
|
+
|
297
|
+
|
298
|
+
/// @dev Use this method to authorize a specific function authorization
|
299
|
+
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
300
|
+
functions.push(
|
301
|
+
IAccess.FunctionInfo({
|
302
|
+
selector: SelectorLib.toSelector(selector),
|
303
|
+
name: StrLib.toStr(name),
|
304
|
+
createdAt: TimestampLib.blockTimestamp()}));
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
/// @dev role id for targets registry, staking and instance
|
309
|
+
function _toTargetRoleId(ObjectType targetDomain)
|
310
|
+
internal
|
311
|
+
pure
|
312
|
+
returns (RoleId targetRoleId)
|
313
|
+
{
|
314
|
+
return RoleIdLib.roleForType(targetDomain);
|
315
|
+
}
|
316
|
+
|
317
|
+
|
318
|
+
function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
|
319
|
+
return string(
|
320
|
+
abi.encodePacked(
|
321
|
+
targetName,
|
322
|
+
ROLE_NAME_SUFFIX));
|
323
|
+
}
|
324
|
+
|
325
|
+
|
326
|
+
/// @dev creates a role info object from the provided parameters
|
327
|
+
function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
|
328
|
+
return RoleInfo({
|
329
|
+
name: StrLib.toStr(name),
|
330
|
+
adminRoleId: adminRoleId,
|
331
|
+
roleType: roleType,
|
332
|
+
maxMemberCount: maxMemberCount,
|
333
|
+
createdAt: TimestampLib.blockTimestamp(),
|
334
|
+
pausedAt: TimestampLib.max()});
|
335
|
+
}
|
288
336
|
}
|
289
337
|
|
@@ -4,20 +4,25 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {IAccess} from "./IAccess.sol";
|
7
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
7
8
|
import {RoleId} from "../type/RoleId.sol";
|
8
9
|
import {Selector} from "../type/Selector.sol";
|
9
10
|
import {Str} from "../type/String.sol";
|
10
|
-
import {
|
11
|
+
import {VersionPart} from "../type/Version.sol";
|
11
12
|
|
12
13
|
interface IAccessAdmin is
|
13
14
|
IAccessManaged,
|
14
|
-
IAccess
|
15
|
+
IAccess,
|
16
|
+
IRegistryLinked
|
15
17
|
{
|
16
18
|
|
17
|
-
// roles
|
18
|
-
event
|
19
|
-
event
|
20
|
-
|
19
|
+
// roles, targets and functions
|
20
|
+
event LogAccessAdminRoleCreated(RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
|
21
|
+
event LogAccessAdminTargetCreated(address target, string name);
|
22
|
+
|
23
|
+
event LogAccessAdminRoleGranted(address account, string roleName);
|
24
|
+
event LogAccessAdminRoleRevoked(address account, string roleName);
|
25
|
+
event LogAccessAdminFunctionGranted(address target, string functionName, string roleName);
|
21
26
|
|
22
27
|
// only deployer modifier
|
23
28
|
error ErrorNotDeployer();
|
@@ -29,7 +34,6 @@ interface IAccessAdmin is
|
|
29
34
|
error ErrorNotRoleOwner(RoleId roleId);
|
30
35
|
|
31
36
|
// initialize authority
|
32
|
-
error ErrorAuthorityAlreadySet();
|
33
37
|
error ErrorAdminRoleMissing();
|
34
38
|
|
35
39
|
// create role
|
@@ -106,6 +110,8 @@ interface IAccessAdmin is
|
|
106
110
|
|
107
111
|
//--- view functions ----------------------------------------------------//
|
108
112
|
|
113
|
+
function getRelease() external view returns (VersionPart release);
|
114
|
+
|
109
115
|
function roles() external view returns (uint256 numberOfRoles);
|
110
116
|
function getRoleId(uint256 idx) external view returns (RoleId roleId);
|
111
117
|
function getAdminRole() external view returns (RoleId roleId);
|
@@ -11,6 +11,9 @@ interface IAuthorization is
|
|
11
11
|
IAccess
|
12
12
|
{
|
13
13
|
|
14
|
+
error ErrorAuthorizationMainTargetNameEmpty();
|
15
|
+
error ErrorAuthorizationTargetDomainZero();
|
16
|
+
|
14
17
|
/// @dev Returns the list of service targets.
|
15
18
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
|
16
19
|
|
@@ -20,6 +23,9 @@ interface IAuthorization is
|
|
20
23
|
/// @dev Returns the service target for the specified domain.
|
21
24
|
function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
|
22
25
|
|
26
|
+
/// @dev Returns the component role for the specified domain.
|
27
|
+
function getComponentRole(ObjectType componentDomain) external view returns(RoleId componentRoleId);
|
28
|
+
|
23
29
|
/// @dev Returns the list of involved roles.
|
24
30
|
function getRoles() external view returns(RoleId[] memory roles);
|
25
31
|
|
@@ -32,11 +38,19 @@ interface IAuthorization is
|
|
32
38
|
/// @dev Returns the main target id name as string.
|
33
39
|
/// This name is used to derive the target id and a corresponding target role name
|
34
40
|
/// Overwrite this function to change the basic pool target name.
|
35
|
-
function
|
41
|
+
function getMainTargetName() external view returns (string memory name);
|
36
42
|
|
37
43
|
/// @dev Returns the main target.
|
38
44
|
function getMainTarget() external view returns(Str target);
|
39
45
|
|
46
|
+
/// @dev Returns the token hander name.
|
47
|
+
/// Only components have a token handler.
|
48
|
+
function getTokenHandlerName() external view returns(string memory name);
|
49
|
+
|
50
|
+
/// @dev Returns the token hander target.
|
51
|
+
/// Only components have a token handler.
|
52
|
+
function getTokenHandlerTarget() external view returns(Str target);
|
53
|
+
|
40
54
|
/// @dev Returns the complete list of targets.
|
41
55
|
function getTargets() external view returns(Str[] memory targets);
|
42
56
|
|