@etherisc/gif-next 0.0.2-9dd41ff-671 → 0.0.2-9ed3c41-176
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 +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +148 -352
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -335
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -97
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +190 -49
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1158 -278
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +493 -332
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +271 -109
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +65 -58
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -359
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +21 -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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -268
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -73
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +149 -285
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +191 -348
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +47 -84
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +61 -50
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +75 -72
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +253 -148
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +58 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +86 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +288 -248
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -222
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -48
- 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 +106 -32
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -73
- 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 +359 -47
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1557 -116
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +892 -55
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -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 +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
- 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 +16 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
- 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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +144 -146
- package/contracts/distribution/DistributionService.sol +69 -118
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +44 -25
- package/contracts/instance/Instance.sol +110 -86
- package/contracts/instance/InstanceAdmin.sol +194 -282
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +253 -108
- package/contracts/instance/InstanceStore.sol +131 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -0
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +8 -2
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +86 -174
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -66
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +150 -141
- package/contracts/pool/PoolService.sol +191 -144
- package/contracts/product/ApplicationService.sol +109 -42
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +18 -19
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +9 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +225 -128
- package/contracts/product/PricingService.sol +72 -48
- package/contracts/product/Product.sol +118 -105
- package/contracts/product/ProductService.sol +26 -114
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +40 -18
- package/contracts/registry/IRegistryService.sol +15 -5
- package/contracts/registry/Registry.sol +221 -110
- package/contracts/registry/RegistryAdmin.sol +299 -77
- package/contracts/registry/RegistryService.sol +48 -14
- package/contracts/registry/RegistryServiceManager.sol +2 -9
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +527 -87
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +2 -3
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +24 -1
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +511 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +186 -0
- package/contracts/staking/StakingService.sol +286 -44
- package/contracts/staking/StakingServiceManager.sol +7 -3
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +172 -63
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -69
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +4 -2
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1018
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1765
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1594
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/ReleaseManager.sol +0 -465
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -469
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -125
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -17
@@ -1,354 +1,266 @@
|
|
1
|
-
// SPDX-License-Identifier:
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
-
|
7
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
8
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
9
|
-
import {NftId} from "../type/NftId.sol";
|
10
|
-
|
11
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
12
5
|
|
6
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
9
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
13
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
-
|
15
12
|
import {IInstance} from "./IInstance.sol";
|
16
|
-
import {
|
13
|
+
import {IService} from "../shared/IService.sol";
|
14
|
+
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
15
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {Str, StrLib} from "../type/String.sol";
|
17
|
+
import {VersionPart} from "../type/Version.sol";
|
18
|
+
|
17
19
|
|
18
20
|
contract InstanceAdmin is
|
19
|
-
|
21
|
+
AccessAdmin
|
20
22
|
{
|
21
|
-
|
22
|
-
|
23
|
-
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
24
|
-
string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
|
25
|
-
|
23
|
+
string public constant INSTANCE_TARGET_NAME = "Instance";
|
24
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
26
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
26
|
+
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
27
|
|
28
28
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
29
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
error ErrorInstanceAdminNotRegistered(address target);
|
31
|
+
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
32
|
+
error ErrorInstanceAdminReleaseMismatch();
|
33
|
+
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
34
34
|
|
35
|
-
AccessManagerExtendedInitializeable internal _accessManager;
|
36
35
|
IInstance _instance;
|
37
36
|
IRegistry internal _registry;
|
37
|
+
uint64 _idNext;
|
38
38
|
|
39
|
-
|
40
|
-
// assume this contract is already a member of ADMIN_ROLE, the only member
|
41
|
-
function initialize(address instanceAddress) external initializer
|
42
|
-
{
|
43
|
-
IInstance instance = IInstance(instanceAddress);
|
44
|
-
IRegistry registry = instance.getRegistry();
|
45
|
-
address authority = instance.authority();
|
46
|
-
|
47
|
-
__AccessManaged_init(authority);
|
48
|
-
|
49
|
-
_accessManager = AccessManagerExtendedInitializeable(authority);
|
50
|
-
_instance = instance;
|
51
|
-
_registry = registry;
|
52
|
-
_idNext = CUSTOM_ROLE_ID_MIN;
|
53
|
-
|
54
|
-
// minimum configuration required for nft interception
|
55
|
-
_createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
|
56
|
-
_createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Core);
|
57
|
-
_grantRole(INSTANCE_ROLE(), address(instance));
|
58
|
-
|
59
|
-
_createTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, IAccess.Type.Core);
|
60
|
-
bytes4[] memory instanceAdminInstanceSelectors = new bytes4[](1);
|
61
|
-
instanceAdminInstanceSelectors[0] = this.transferInstanceOwnerRole.selector;
|
62
|
-
_setTargetFunctionRole(address(this), instanceAdminInstanceSelectors, INSTANCE_ROLE());
|
63
|
-
}
|
64
|
-
|
65
|
-
//--- Role ------------------------------------------------------//
|
66
|
-
// ADMIN_ROLE
|
67
|
-
// assume all core roles are known at deployment time
|
68
|
-
// assume core roles are set and granted only during instance cloning
|
69
|
-
// assume core roles are never revoked -> core roles admin is never active after intialization
|
70
|
-
function createCoreRole(RoleId roleId, string memory name)
|
71
|
-
external
|
72
|
-
restricted()
|
73
|
-
{
|
74
|
-
_createRole(roleId, name, IAccess.Type.Core);
|
75
|
-
}
|
39
|
+
IModuleAuthorization _instanceAuthorization;
|
76
40
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
41
|
+
/// @dev Only used for master instance admin.
|
42
|
+
/// Contracts created via constructor come with disabled initializers.
|
43
|
+
constructor(
|
44
|
+
IModuleAuthorization instanceAuthorization
|
45
|
+
)
|
46
|
+
AccessAdmin()
|
83
47
|
{
|
84
|
-
|
85
|
-
_setRoleAdmin(roleId, admin);
|
48
|
+
_instanceAuthorization = instanceAuthorization;
|
86
49
|
}
|
87
50
|
|
88
|
-
|
89
|
-
|
90
|
-
|
51
|
+
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
52
|
+
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
53
|
+
/// for the inststance authorizatios.
|
54
|
+
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
55
|
+
function initialize(
|
56
|
+
AccessManagerCloneable accessManager,
|
57
|
+
IModuleAuthorization instanceAuthorization
|
58
|
+
)
|
91
59
|
external
|
92
|
-
|
93
|
-
returns(RoleId roleId, RoleId admin)
|
60
|
+
initializer()
|
94
61
|
{
|
95
|
-
|
62
|
+
// create new access manager for this instance admin
|
63
|
+
_initializeAuthority(address(accessManager));
|
96
64
|
|
97
|
-
|
98
|
-
|
65
|
+
// create basic instance independent setup
|
66
|
+
_createAdminAndPublicRoles();
|
99
67
|
|
100
|
-
|
101
|
-
|
68
|
+
// store instance authorization specification
|
69
|
+
_instanceAuthorization = IModuleAuthorization(instanceAuthorization);
|
102
70
|
}
|
103
71
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
function setRoleAdmin(RoleId roleId, RoleId admin)
|
108
|
-
public
|
109
|
-
restricted()
|
72
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
73
|
+
internal
|
74
|
+
view
|
110
75
|
{
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
// INSTANCE_ROLE
|
115
|
-
function transferInstanceOwnerRole(address from, address to) external restricted() {
|
116
|
-
// temp pre transfer checks
|
117
|
-
assert(_accessManager.getRoleMembers(INSTANCE_ROLE().toInt()) == 1);
|
118
|
-
(bool hasRole, uint executionDelay) = _accessManager.hasRole(INSTANCE_ROLE().toInt(), address(_instance));
|
119
|
-
assert(hasRole);
|
120
|
-
assert(executionDelay == 0);
|
121
|
-
assert(_accessManager.getRoleAdmin(INSTANCE_OWNER_ROLE().toInt()) == ADMIN_ROLE().toInt());
|
122
|
-
if(from != address(0)) { // nft transfer
|
123
|
-
assert(_accessManager.getRoleMembers(INSTANCE_OWNER_ROLE().toInt()) == 1);
|
124
|
-
} else { // nft minting
|
125
|
-
assert(_accessManager.getRoleMembers(INSTANCE_OWNER_ROLE().toInt()) == 0);
|
76
|
+
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
77
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
126
78
|
}
|
127
79
|
|
128
|
-
|
129
|
-
|
130
|
-
_grantRole(INSTANCE_OWNER_ROLE(), to);
|
131
|
-
if(from != address(0)) { // nft transfer
|
132
|
-
_revokeRole(INSTANCE_OWNER_ROLE(), from);
|
80
|
+
if (targetExists(target)) {
|
81
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
133
82
|
}
|
134
|
-
|
135
|
-
// temp post transfer checks
|
136
|
-
assert(_accessManager.getRoleMembers(INSTANCE_OWNER_ROLE().toInt()) == 1);// temp
|
137
|
-
(hasRole, executionDelay) = _accessManager.hasRole(INSTANCE_OWNER_ROLE().toInt(), to);
|
138
|
-
assert(hasRole);
|
139
|
-
assert(executionDelay == 0);
|
140
83
|
}
|
141
84
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
85
|
+
/// @dev Completes the initialization of this instance admin using the provided instance.
|
86
|
+
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
87
|
+
function initializeInstanceAuthorization(address instanceAddress)
|
88
|
+
external
|
146
89
|
{
|
147
|
-
(
|
148
|
-
}
|
90
|
+
_checkTargetIsReadyForAuthorization(instanceAddress);
|
149
91
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
// TODO check for instance mismatch?
|
158
|
-
function createGifTarget(address target, string memory name) external restricted()
|
159
|
-
{
|
160
|
-
if(!_registry.isRegistered(target)) {
|
161
|
-
revert IAccess.ErrorIAccessTargetNotRegistered(target);
|
92
|
+
_idNext = CUSTOM_ROLE_ID_MIN;
|
93
|
+
_instance = IInstance(instanceAddress);
|
94
|
+
_registry = _instance.getRegistry();
|
95
|
+
|
96
|
+
// check matching releases
|
97
|
+
if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
|
98
|
+
revert ErrorInstanceAdminReleaseMismatch();
|
162
99
|
}
|
163
100
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
// assume custom target can not be registered as component -> each service which is doing component registration MUST register a gif target
|
169
|
-
// assume custom target can not be registered as instance or service -> why?
|
170
|
-
// TODO check target associated with instance owner or instance or instance components or components helpers
|
171
|
-
function createTarget(address target, string memory name) external restricted()
|
172
|
-
{
|
173
|
-
_createTarget(target, name, IAccess.Type.Custom);
|
174
|
-
}
|
101
|
+
// add instance authorization
|
102
|
+
_createRoles(_instanceAuthorization);
|
103
|
+
_createModuleTargetsWithRoles();
|
104
|
+
_createTargetAuthorizations(_instanceAuthorization);
|
175
105
|
|
176
|
-
|
177
|
-
|
178
|
-
external
|
179
|
-
restricted // INSTANCE_SERVICE_ROLE
|
180
|
-
{
|
181
|
-
_setTargetLocked(target, locked);
|
106
|
+
// grant component owner roles to instance owner
|
107
|
+
_grantComponentOwnerRoles();
|
182
108
|
}
|
183
109
|
|
184
|
-
|
110
|
+
|
111
|
+
/// @dev Initializes the authorization for the specified component.
|
112
|
+
/// Important: The component MUST be registered.
|
113
|
+
function initializeComponentAuthorization(
|
114
|
+
address componentAddress,
|
115
|
+
IAuthorization authorization
|
116
|
+
)
|
185
117
|
external
|
186
|
-
restricted // INSTANCE_ROLE
|
187
118
|
{
|
188
|
-
|
119
|
+
_checkTargetIsReadyForAuthorization(componentAddress);
|
120
|
+
|
121
|
+
_createRoles(authorization);
|
122
|
+
|
123
|
+
// create component target
|
124
|
+
_createTarget(
|
125
|
+
componentAddress,
|
126
|
+
authorization.getTargetName(),
|
127
|
+
true, // checkAuthority
|
128
|
+
false); // custom
|
129
|
+
|
130
|
+
_grantRoleToAccount(
|
131
|
+
authorization.getTargetRole(
|
132
|
+
authorization.getTarget()),
|
133
|
+
componentAddress);
|
134
|
+
|
135
|
+
_createTargetAuthorizations(authorization);
|
189
136
|
}
|
190
137
|
|
191
138
|
|
192
|
-
|
193
|
-
|
194
|
-
//2) set gif role for gif target
|
195
|
-
//3) set custom role for gif target
|
196
|
-
//4) set custom role for custom target
|
197
|
-
|
198
|
-
// ADMIN_ROLE if used only during initialization, works with:
|
199
|
-
// any roles for any targets
|
200
|
-
// INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
|
201
|
-
// core roles for core targets
|
202
|
-
// gif roles for gif targets
|
203
|
-
function setCoreTargetFunctionRole(
|
204
|
-
string memory targetName,
|
205
|
-
bytes4[] calldata selectors,
|
206
|
-
RoleId roleId
|
207
|
-
)
|
208
|
-
public
|
209
|
-
virtual
|
210
|
-
restricted
|
139
|
+
function _grantComponentOwnerRoles()
|
140
|
+
internal
|
211
141
|
{
|
212
|
-
address
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
// not custom role
|
219
|
-
if(_roleType[roleId] == IAccess.Type.Custom) {
|
220
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Custom);
|
221
|
-
}
|
222
|
-
|
223
|
-
_setTargetFunctionRole(target, selectors, roleId);
|
142
|
+
address instanceOwner = _registry.ownerOf(_instance.getNftId());
|
143
|
+
_grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
|
144
|
+
_grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
|
145
|
+
_grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
|
146
|
+
_grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
|
224
147
|
}
|
225
148
|
|
226
|
-
|
227
|
-
//
|
228
|
-
//
|
229
|
-
//
|
230
|
-
//
|
231
|
-
//
|
232
|
-
function setTargetFunctionRole(
|
233
|
-
string memory targetName,
|
234
|
-
bytes4[] calldata selectors,
|
235
|
-
RoleId roleId// string memory roleName
|
236
|
-
)
|
237
|
-
public
|
238
|
-
virtual
|
239
|
-
restricted()
|
240
|
-
{
|
241
|
-
address target = _accessManager.getTargetAddress(targetName);
|
242
|
-
|
243
|
-
// not core target
|
244
|
-
if(_targetType[target] == IAccess.Type.Core) {
|
245
|
-
revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Core);
|
246
|
-
}
|
247
|
-
|
248
|
-
// not core role
|
249
|
-
if(_roleType[roleId] == IAccess.Type.Core) {
|
250
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
|
251
|
-
}
|
252
|
-
|
253
|
-
_setTargetFunctionRole(target, selectors, roleId);
|
254
|
-
}
|
149
|
+
/// @dev Creates a custom role
|
150
|
+
// TODO implement
|
151
|
+
// function createRole()
|
152
|
+
// external
|
153
|
+
// restricted()
|
154
|
+
// {
|
255
155
|
|
256
|
-
|
257
|
-
_accessManager.setTargetFunctionRole(target, selectors, roleId.toInt());
|
258
|
-
}
|
156
|
+
// }
|
259
157
|
|
260
|
-
|
261
|
-
|
158
|
+
/// @dev Grants the provided role to the specified account
|
159
|
+
function grantRole(
|
160
|
+
RoleId roleId,
|
161
|
+
address account)
|
162
|
+
external
|
163
|
+
restricted()
|
164
|
+
{
|
165
|
+
_grantRoleToAccount(roleId, account);
|
262
166
|
}
|
263
167
|
|
264
|
-
|
265
|
-
function
|
266
|
-
|
168
|
+
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
169
|
+
function getInstanceAuthorization()
|
170
|
+
external
|
171
|
+
view
|
172
|
+
returns (IModuleAuthorization instanceAuthorizaion)
|
267
173
|
{
|
268
|
-
|
269
|
-
|
270
|
-
_roleType[roleId] = rtype;
|
271
|
-
_accessManager.createRole(roleId.toInt(), name);
|
272
|
-
//emit LogRoleCreation(roleId, name, rtype);
|
174
|
+
return _instanceAuthorization;
|
273
175
|
}
|
274
176
|
|
275
|
-
|
177
|
+
|
178
|
+
function _createRoles(IAuthorization authorization)
|
276
179
|
internal
|
277
|
-
view
|
278
180
|
{
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
{
|
289
|
-
revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
|
181
|
+
RoleId[] memory roles = authorization.getRoles();
|
182
|
+
RoleId roleId;
|
183
|
+
RoleInfo memory roleInfo;
|
184
|
+
|
185
|
+
for(uint256 i = 0; i < roles.length; i++) {
|
186
|
+
roleId = roles[i];
|
187
|
+
_createRole(
|
188
|
+
roleId,
|
189
|
+
authorization.getRoleInfo(roleId));
|
290
190
|
}
|
291
191
|
}
|
292
192
|
|
293
|
-
function _grantRole(RoleId roleId, address account) internal {
|
294
|
-
_accessManager.grantRole(roleId.toInt(), account, EXECUTION_DELAY);
|
295
|
-
}
|
296
193
|
|
297
|
-
function
|
194
|
+
function _createTargetAuthorizations(IAuthorization authorization)
|
298
195
|
internal
|
299
|
-
returns(bool revoked)
|
300
196
|
{
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
197
|
+
Str[] memory targets = authorization.getTargets();
|
198
|
+
Str target;
|
199
|
+
|
200
|
+
for(uint256 i = 0; i < targets.length; i++) {
|
201
|
+
target = targets[i];
|
202
|
+
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
203
|
+
RoleId authorizedRole;
|
204
|
+
|
205
|
+
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
206
|
+
authorizedRole = authorizedRoles[j];
|
207
|
+
|
208
|
+
_authorizeTargetFunctions(
|
209
|
+
getTargetForName(target),
|
210
|
+
authorizedRole,
|
211
|
+
authorization.getAuthorizedFunctions(
|
212
|
+
target,
|
213
|
+
authorizedRole));
|
214
|
+
}
|
307
215
|
}
|
308
|
-
|
309
|
-
_accessManager.setRoleAdmin(roleId.toInt(), admin.toInt());
|
310
216
|
}
|
311
217
|
|
312
|
-
function
|
313
|
-
|
314
|
-
|
218
|
+
function _checkAndCreateTargetWithRole(
|
219
|
+
address target,
|
220
|
+
string memory targetName
|
221
|
+
)
|
222
|
+
internal
|
315
223
|
{
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
roleId = RoleIdLib.toRoleId(roleIdInt);
|
322
|
-
admin = RoleIdLib.toRoleId(adminInt);
|
323
|
-
}
|
224
|
+
// check that target name is defined in authorization specification
|
225
|
+
Str name = StrLib.toStr(targetName);
|
226
|
+
if (!_instanceAuthorization.targetExists(name)) {
|
227
|
+
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
228
|
+
}
|
324
229
|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
//
|
230
|
+
// create named target
|
231
|
+
_createTarget(
|
232
|
+
target,
|
233
|
+
targetName,
|
234
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
|
235
|
+
false);
|
236
|
+
|
237
|
+
// assign target role if defined
|
238
|
+
RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
|
239
|
+
if (targetRoleId != RoleIdLib.zero()) {
|
240
|
+
_grantRoleToAccount(targetRoleId, target);
|
241
|
+
}
|
333
242
|
}
|
334
243
|
|
335
|
-
function
|
336
|
-
internal
|
337
|
-
view
|
338
|
-
{}
|
339
|
-
|
340
|
-
// IMPORTANT: instance access manager MUST be of Core type -> otherwise can be locked forever
|
341
|
-
function _setTargetLocked(address target, bool locked) internal
|
244
|
+
function _createModuleTargetsWithRoles()
|
245
|
+
internal
|
342
246
|
{
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
247
|
+
// create module targets
|
248
|
+
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
249
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
250
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
251
|
+
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
252
|
+
|
253
|
+
// create targets for services that need to access the module targets
|
254
|
+
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
255
|
+
VersionPart release = _instanceAuthorization.getRelease();
|
256
|
+
ObjectType serviceDomain;
|
257
|
+
|
258
|
+
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
259
|
+
serviceDomain = serviceDomains[i];
|
260
|
+
|
261
|
+
_checkAndCreateTargetWithRole(
|
262
|
+
_registry.getServiceAddress(serviceDomain, release),
|
263
|
+
_instanceAuthorization.getServiceTarget(serviceDomain).toString());
|
350
264
|
}
|
351
|
-
|
352
|
-
_accessManager.setTargetClosed(target, locked);
|
353
265
|
}
|
354
|
-
}
|
266
|
+
}
|