@etherisc/gif-next 0.0.2-8e4a894-234 → 0.0.2-8e5f0ee-617
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 +21 -3
- 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 +154 -339
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +158 -320
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +127 -81
- 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/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
- 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 +188 -47
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +87 -120
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- 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 +500 -334
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +277 -96
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1125 -371
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 -249
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -57
- 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 +136 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +197 -335
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +186 -355
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +97 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -34
- 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 +135 -196
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- 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 +30 -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 +184 -282
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +113 -87
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +167 -159
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +141 -43
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +296 -237
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- 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 +135 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
- 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 +367 -39
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- 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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +692 -92
- 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 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -82
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +901 -45
- 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/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- 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 +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- 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 +20 -1
- 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 +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- 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 +2 -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 +64 -110
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +41 -22
- package/contracts/instance/Instance.sol +111 -86
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +259 -124
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- 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 +7 -10
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +12 -5
- 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 +76 -162
- package/contracts/pool/BundleServiceManager.sol +9 -18
- 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 +198 -149
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +114 -46
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +33 -28
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +12 -3
- 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 +231 -132
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +78 -53
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +126 -109
- package/contracts/product/ProductService.sol +32 -118
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +37 -17
- package/contracts/registry/IRegistryService.sol +33 -30
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +63 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -28
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +354 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +524 -93
- 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 -73
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- 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 +168 -0
- package/contracts/staking/IStakingService.sol +98 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +290 -45
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +11 -4
- 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 +176 -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 +117 -40
- 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 +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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/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/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -3,16 +3,19 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
6
7
|
import {Key32} from "../type/Key32.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {RiskId} from "../type/RiskId.sol";
|
9
10
|
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
-
import {RoleId
|
11
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
11
|
+
import {RoleId} from "../type/RoleId.sol";
|
12
12
|
import {ClaimId} from "../type/ClaimId.sol";
|
13
13
|
import {ReferralId} from "../type/Referral.sol";
|
14
14
|
import {PayoutId} from "../type/PayoutId.sol";
|
15
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
16
|
+
import {Seconds} from "../type/Seconds.sol";
|
17
|
+
import {UFixed} from "../type/UFixed.sol";
|
18
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
16
19
|
|
17
20
|
import {Registerable} from "../shared/Registerable.sol";
|
18
21
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
@@ -20,19 +23,19 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
20
23
|
import {IRegistry} from "../registry/IRegistry.sol";
|
21
24
|
|
22
25
|
import {IInstance} from "./IInstance.sol";
|
26
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
23
27
|
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
-
import {
|
28
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
25
29
|
import {BundleManager} from "./BundleManager.sol";
|
26
30
|
import {InstanceStore} from "./InstanceStore.sol";
|
27
31
|
|
28
|
-
import {KeyValueStore} from "
|
32
|
+
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
29
33
|
|
30
34
|
import {IBundle} from "./module/IBundle.sol";
|
31
35
|
import {IComponents} from "./module/IComponents.sol";
|
32
36
|
import {IDistribution} from "./module/IDistribution.sol";
|
33
37
|
import {IPolicy} from "./module/IPolicy.sol";
|
34
38
|
import {IRisk} from "./module/IRisk.sol";
|
35
|
-
import {ISetup} from "./module/ISetup.sol";
|
36
39
|
|
37
40
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
38
41
|
import {IPoolService} from "../pool/IPoolService.sol";
|
@@ -49,7 +52,8 @@ contract Instance is
|
|
49
52
|
|
50
53
|
bool private _initialized;
|
51
54
|
|
52
|
-
|
55
|
+
IInstanceService internal _instanceService;
|
56
|
+
InstanceAdmin internal _instanceAdmin;
|
53
57
|
InstanceReader internal _instanceReader;
|
54
58
|
BundleManager internal _bundleManager;
|
55
59
|
InstanceStore internal _instanceStore;
|
@@ -61,53 +65,120 @@ contract Instance is
|
|
61
65
|
_;
|
62
66
|
}
|
63
67
|
|
64
|
-
function initialize(
|
68
|
+
function initialize(
|
69
|
+
InstanceAdmin instanceAdmin,
|
70
|
+
InstanceStore instanceStore,
|
71
|
+
BundleManager bundleManager,
|
72
|
+
InstanceReader instanceReader,
|
73
|
+
IRegistry registry,
|
74
|
+
address initialOwner
|
75
|
+
)
|
65
76
|
external
|
66
77
|
initializer()
|
67
78
|
{
|
68
|
-
|
69
|
-
|
79
|
+
_instanceAdmin = instanceAdmin;
|
80
|
+
if(_instanceAdmin.authority() == address(0)) {
|
81
|
+
// TODO rename error
|
82
|
+
revert ErrorInstanceInstanceAdminZero();
|
70
83
|
}
|
71
84
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
85
|
+
// set authority to instance admin authority
|
86
|
+
__AccessManaged_init(_instanceAdmin.authority());
|
87
|
+
|
88
|
+
// setup instance object info
|
89
|
+
initializeRegisterable(
|
90
|
+
address(registry),
|
91
|
+
registry.getNftId(),
|
92
|
+
INSTANCE(),
|
93
|
+
true,
|
94
|
+
initialOwner,
|
95
|
+
"");
|
96
|
+
|
97
|
+
// store instance supporting contracts
|
98
|
+
_instanceStore = instanceStore;
|
99
|
+
_bundleManager = bundleManager;
|
100
|
+
_instanceReader = instanceReader;
|
101
|
+
|
102
|
+
// initialize instance supporting contracts
|
103
|
+
_instanceStore.initialize();
|
104
|
+
_bundleManager.initialize();
|
105
|
+
_instanceReader.initialize();
|
106
|
+
|
107
|
+
_instanceService = IInstanceService(
|
108
|
+
getRegistry().getServiceAddress(
|
109
|
+
INSTANCE(),
|
110
|
+
getMajorVersion()));
|
76
111
|
|
77
112
|
registerInterface(type(IInstance).interfaceId);
|
78
113
|
}
|
79
114
|
|
115
|
+
//--- Staking ----------------------------------------------------------//
|
116
|
+
|
117
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
118
|
+
external
|
119
|
+
// TODO decide if onlyOwner or restricted to instance owner role is better
|
120
|
+
onlyOwner()
|
121
|
+
{
|
122
|
+
_instanceService.setStakingLockingPeriod(stakeLockingPeriod);
|
123
|
+
}
|
124
|
+
|
125
|
+
function setStakingRewardRate(UFixed rewardRate)
|
126
|
+
external
|
127
|
+
onlyOwner()
|
128
|
+
{
|
129
|
+
_instanceService.setStakingRewardRate(rewardRate);
|
130
|
+
}
|
131
|
+
|
132
|
+
function refillStakingRewardReserves(Amount dipAmount)
|
133
|
+
external
|
134
|
+
onlyOwner()
|
135
|
+
{
|
136
|
+
address instanceOwner = msg.sender;
|
137
|
+
_instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
|
138
|
+
}
|
139
|
+
|
140
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
141
|
+
external
|
142
|
+
onlyOwner()
|
143
|
+
returns (Amount newBalance)
|
144
|
+
{
|
145
|
+
return _instanceService.withdrawStakingRewardReserves(dipAmount);
|
146
|
+
}
|
147
|
+
|
80
148
|
//--- Roles ------------------------------------------------------------//
|
81
149
|
|
82
150
|
function createRole(string memory roleName, string memory adminName)
|
83
151
|
external
|
84
|
-
|
152
|
+
onlyOwner()
|
85
153
|
returns (RoleId roleId, RoleId admin)
|
86
154
|
{
|
87
|
-
|
155
|
+
// TODO refactor
|
156
|
+
// (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
|
88
157
|
}
|
89
158
|
|
90
159
|
function grantRole(RoleId roleId, address account)
|
91
160
|
external
|
92
|
-
|
161
|
+
onlyOwner()
|
93
162
|
{
|
94
|
-
|
163
|
+
_instanceAdmin.grantRole(roleId, account);
|
95
164
|
}
|
96
165
|
|
97
166
|
function revokeRole(RoleId roleId, address account)
|
98
167
|
external
|
99
|
-
|
168
|
+
onlyOwner()
|
100
169
|
{
|
101
|
-
|
170
|
+
// TODO refactor
|
171
|
+
// AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
|
102
172
|
}
|
103
173
|
|
104
174
|
//--- Targets ------------------------------------------------------------//
|
105
175
|
|
106
176
|
function createTarget(address target, string memory name)
|
107
177
|
external
|
108
|
-
|
178
|
+
onlyOwner()
|
109
179
|
{
|
110
|
-
|
180
|
+
// TODO refactor
|
181
|
+
// _instanceAdmin.createTarget(target, name);
|
111
182
|
}
|
112
183
|
|
113
184
|
function setTargetFunctionRole(
|
@@ -116,56 +187,40 @@ contract Instance is
|
|
116
187
|
RoleId roleId
|
117
188
|
)
|
118
189
|
external
|
119
|
-
|
190
|
+
onlyOwner()
|
120
191
|
{
|
121
|
-
|
192
|
+
// TODO refactor
|
193
|
+
// _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
|
122
194
|
}
|
123
195
|
|
124
196
|
function setTargetLocked(address target, bool locked)
|
125
197
|
external
|
126
|
-
|
198
|
+
onlyOwner()
|
127
199
|
{
|
128
|
-
|
200
|
+
// TODO refactor
|
201
|
+
// _instanceAdmin.setTargetLockedByInstance(target, locked);
|
129
202
|
}
|
130
203
|
|
131
|
-
//--- ITransferInterceptor
|
204
|
+
//--- ITransferInterceptor ----------------------------------------------//
|
132
205
|
|
206
|
+
// TODO interception of child components nfts
|
133
207
|
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
134
|
-
|
135
|
-
|
208
|
+
// TODO refactor
|
209
|
+
// _instanceAdmin.transferInstanceOwnerRole(address(0), to);
|
136
210
|
}
|
137
211
|
|
138
212
|
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
139
|
-
|
140
|
-
|
213
|
+
// TODO refactor
|
214
|
+
// _instanceAdmin.transferInstanceOwnerRole(from, to);
|
141
215
|
}
|
142
216
|
|
143
217
|
//--- initial setup functions -------------------------------------------//
|
144
218
|
|
145
|
-
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
146
|
-
if(address(_accessManager) != address(0)) {
|
147
|
-
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
148
|
-
}
|
149
|
-
if(accessManager.authority() != authority()) {
|
150
|
-
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
151
|
-
}
|
152
|
-
_accessManager = accessManager;
|
153
|
-
}
|
154
|
-
|
155
|
-
function setBundleManager(BundleManager bundleManager) external restricted() {
|
156
|
-
if(address(_bundleManager) != address(0)) {
|
157
|
-
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
158
|
-
}
|
159
|
-
if(bundleManager.getInstance() != Instance(this)) {
|
160
|
-
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
161
|
-
}
|
162
|
-
if(bundleManager.authority() != authority()) {
|
163
|
-
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
164
|
-
}
|
165
|
-
_bundleManager = bundleManager;
|
166
|
-
}
|
167
219
|
|
168
|
-
function setInstanceReader(InstanceReader instanceReader)
|
220
|
+
function setInstanceReader(InstanceReader instanceReader)
|
221
|
+
external
|
222
|
+
restricted()
|
223
|
+
{
|
169
224
|
if(instanceReader.getInstance() != Instance(this)) {
|
170
225
|
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
171
226
|
}
|
@@ -183,47 +238,17 @@ contract Instance is
|
|
183
238
|
return _bundleManager;
|
184
239
|
}
|
185
240
|
|
186
|
-
function
|
187
|
-
return
|
188
|
-
}
|
189
|
-
|
190
|
-
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
191
|
-
if(address(_instanceStore) != address(0)) {
|
192
|
-
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
193
|
-
}
|
194
|
-
if(instanceStore.authority() != authority()) {
|
195
|
-
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
196
|
-
}
|
197
|
-
_instanceStore = instanceStore;
|
241
|
+
function getInstanceAdmin() external view returns (InstanceAdmin) {
|
242
|
+
return _instanceAdmin;
|
198
243
|
}
|
199
244
|
|
200
245
|
function getInstanceStore() external view returns (InstanceStore) {
|
201
246
|
return _instanceStore;
|
202
247
|
}
|
203
248
|
|
204
|
-
function getMajorVersion()
|
249
|
+
function getMajorVersion() public pure returns (VersionPart majorVersion) {
|
205
250
|
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
206
251
|
}
|
207
252
|
|
208
|
-
function getDistributionService() external view returns (IDistributionService) {
|
209
|
-
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
210
|
-
}
|
211
|
-
|
212
|
-
function getProductService() external view returns (IProductService) {
|
213
|
-
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
214
|
-
}
|
215
|
-
|
216
|
-
function getPoolService() external view returns (IPoolService) {
|
217
|
-
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
218
|
-
}
|
219
|
-
|
220
|
-
function getPolicyService() external view returns (IPolicyService) {
|
221
|
-
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
222
|
-
}
|
223
|
-
|
224
|
-
function getBundleService() external view returns (IBundleService) {
|
225
|
-
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
226
|
-
}
|
227
|
-
|
228
253
|
//--- internal view/pure functions --------------------------------------//
|
229
254
|
}
|
@@ -0,0 +1,266 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
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";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
import {IInstance} from "./IInstance.sol";
|
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
|
+
|
19
|
+
|
20
|
+
contract InstanceAdmin is
|
21
|
+
AccessAdmin
|
22
|
+
{
|
23
|
+
string public constant INSTANCE_TARGET_NAME = "Instance";
|
24
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
25
|
+
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
26
|
+
string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
|
27
|
+
|
28
|
+
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
29
|
+
|
30
|
+
error ErrorInstanceAdminNotRegistered(address target);
|
31
|
+
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
32
|
+
error ErrorInstanceAdminReleaseMismatch();
|
33
|
+
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
34
|
+
|
35
|
+
IInstance _instance;
|
36
|
+
IRegistry internal _registry;
|
37
|
+
uint64 _idNext;
|
38
|
+
|
39
|
+
IModuleAuthorization _instanceAuthorization;
|
40
|
+
|
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()
|
47
|
+
{
|
48
|
+
_instanceAuthorization = instanceAuthorization;
|
49
|
+
}
|
50
|
+
|
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
|
+
)
|
59
|
+
external
|
60
|
+
initializer()
|
61
|
+
{
|
62
|
+
// create new access manager for this instance admin
|
63
|
+
_initializeAuthority(address(accessManager));
|
64
|
+
|
65
|
+
// create basic instance independent setup
|
66
|
+
_createAdminAndPublicRoles();
|
67
|
+
|
68
|
+
// store instance authorization specification
|
69
|
+
_instanceAuthorization = IModuleAuthorization(instanceAuthorization);
|
70
|
+
}
|
71
|
+
|
72
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
73
|
+
internal
|
74
|
+
view
|
75
|
+
{
|
76
|
+
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
77
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
78
|
+
}
|
79
|
+
|
80
|
+
if (targetExists(target)) {
|
81
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
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
|
89
|
+
{
|
90
|
+
_checkTargetIsReadyForAuthorization(instanceAddress);
|
91
|
+
|
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();
|
99
|
+
}
|
100
|
+
|
101
|
+
// add instance authorization
|
102
|
+
_createRoles(_instanceAuthorization);
|
103
|
+
_createModuleTargetsWithRoles();
|
104
|
+
_createTargetAuthorizations(_instanceAuthorization);
|
105
|
+
|
106
|
+
// grant component owner roles to instance owner
|
107
|
+
_grantComponentOwnerRoles();
|
108
|
+
}
|
109
|
+
|
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
|
+
)
|
117
|
+
external
|
118
|
+
{
|
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);
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
function _grantComponentOwnerRoles()
|
140
|
+
internal
|
141
|
+
{
|
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);
|
147
|
+
}
|
148
|
+
|
149
|
+
/// @dev Creates a custom role
|
150
|
+
// TODO implement
|
151
|
+
// function createRole()
|
152
|
+
// external
|
153
|
+
// restricted()
|
154
|
+
// {
|
155
|
+
|
156
|
+
// }
|
157
|
+
|
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);
|
166
|
+
}
|
167
|
+
|
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)
|
173
|
+
{
|
174
|
+
return _instanceAuthorization;
|
175
|
+
}
|
176
|
+
|
177
|
+
|
178
|
+
function _createRoles(IAuthorization authorization)
|
179
|
+
internal
|
180
|
+
{
|
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));
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
|
194
|
+
function _createTargetAuthorizations(IAuthorization authorization)
|
195
|
+
internal
|
196
|
+
{
|
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
|
+
}
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
function _checkAndCreateTargetWithRole(
|
219
|
+
address target,
|
220
|
+
string memory targetName
|
221
|
+
)
|
222
|
+
internal
|
223
|
+
{
|
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
|
+
}
|
229
|
+
|
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
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
function _createModuleTargetsWithRoles()
|
245
|
+
internal
|
246
|
+
{
|
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.getBundleManager()), BUNDLE_MANAGER_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());
|
264
|
+
}
|
265
|
+
}
|
266
|
+
}
|