@etherisc/gif-next 0.0.2-7f39e38-904 → 0.0.2-804cdbf-724
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 +32 -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/authorization/IAccess.sol/IAccess.json +10 -0
- 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 +36 -255
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +147 -96
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +86 -59
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +82 -151
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -17
- 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 +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +91 -132
- 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 +230 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +216 -119
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +70 -51
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/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 +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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- 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 +102 -59
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +74 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +20 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +18 -207
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +35 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +25 -315
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +84 -42
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -40
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +79 -36
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +68 -37
- 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 +119 -68
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +88 -53
- 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 +20 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +20 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +24 -47
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +20 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +97 -46
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +105 -62
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -50
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +31 -165
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +61 -26
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +59 -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 +86 -74
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
- 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 +255 -112
- 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 +69 -15
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +51 -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/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 +19 -11
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -70
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +73 -54
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +20 -1
- 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 +11 -5
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +24 -5
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +31 -65
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- 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 +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +35 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +14 -8
- 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 +6 -6
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +121 -118
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +222 -71
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +186 -183
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +71 -58
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -39
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +271 -135
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +734 -187
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- 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 +2 -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 +12 -12
- 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 +28 -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 +26 -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 +126 -106
- package/contracts/distribution/DistributionService.sol +13 -9
- package/contracts/distribution/DistributionServiceManager.sol +0 -12
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +25 -16
- package/contracts/instance/IInstanceService.sol +36 -27
- package/contracts/instance/Instance.sol +113 -87
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -13
- package/contracts/instance/InstanceService.sol +175 -99
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- 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 -10
- 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 +26 -26
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +38 -11
- package/contracts/product/ApplicationService.sol +5 -5
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +11 -6
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +5 -5
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +33 -24
- package/contracts/registry/IRegistryService.sol +7 -6
- package/contracts/registry/Registry.sol +146 -148
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +8 -8
- package/contracts/registry/RegistryServiceManager.sol +0 -19
- 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 +22 -61
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +50 -64
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IService.sol +7 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -20
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +2 -1
- package/contracts/shared/ProxyManager.sol +6 -3
- package/contracts/shared/Service.sol +27 -21
- package/contracts/shared/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/staking/IStaking.sol +40 -25
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +136 -127
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -22
- package/contracts/staking/StakingReader.sol +75 -36
- package/contracts/staking/StakingService.sol +124 -88
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +401 -115
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- 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 +3 -1
- 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/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 -132
- 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/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -322
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1151
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- 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/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/registry/RegistryAccessManager.sol +0 -196
- package/contracts/registry/ReleaseManager.sol +0 -563
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
@@ -5,12 +5,16 @@ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManage
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
7
7
|
|
8
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
9
|
+
import {VersionPart} from "../type/Version.sol";
|
10
|
+
|
8
11
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
+
|
9
13
|
import {IRegistry} from "./IRegistry.sol";
|
10
14
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
|
15
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
16
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
17
|
+
|
14
18
|
|
15
19
|
/// @title contract to register token per GIF major release.
|
16
20
|
contract TokenRegistry is
|
@@ -45,7 +49,7 @@ contract TokenRegistry is
|
|
45
49
|
TokenInfo [] internal _token;
|
46
50
|
|
47
51
|
IRegistry internal _registry;
|
48
|
-
|
52
|
+
ReleaseRegistry internal _releaseRegistry;
|
49
53
|
IERC20Metadata internal _dipToken;
|
50
54
|
|
51
55
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
@@ -56,16 +60,15 @@ contract TokenRegistry is
|
|
56
60
|
_;
|
57
61
|
}
|
58
62
|
|
59
|
-
constructor(
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
_dipToken = IERC20Metadata(dipToken);
|
63
|
+
constructor(IRegistry registry, IERC20Metadata dipToken)
|
64
|
+
AccessManaged(msg.sender)
|
65
|
+
{
|
66
|
+
// set authority
|
67
|
+
address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
|
68
|
+
setAuthority(authority);
|
69
|
+
|
70
|
+
_registry = registry;
|
71
|
+
_dipToken = dipToken;
|
69
72
|
|
70
73
|
// register dip token
|
71
74
|
uint256 chainId = block.chainid;
|
@@ -76,52 +79,6 @@ contract TokenRegistry is
|
|
76
79
|
_dipToken.symbol());
|
77
80
|
}
|
78
81
|
|
79
|
-
// TODO cleanup
|
80
|
-
// function initialize(
|
81
|
-
// address initialOwner
|
82
|
-
// )
|
83
|
-
// public
|
84
|
-
// initializer()
|
85
|
-
// {
|
86
|
-
// initializeNftOwnable(initialOwner, _registryAddress);
|
87
|
-
|
88
|
-
// // initialize release manager
|
89
|
-
// _releaseManager = ReleaseManager(msg.sender);
|
90
|
-
|
91
|
-
|
92
|
-
// // register dip token
|
93
|
-
// uint256 chainId = block.chainid;
|
94
|
-
// _registerToken(
|
95
|
-
// chainId,
|
96
|
-
// address(_dipToken),
|
97
|
-
// _dipToken.decimals(),
|
98
|
-
// _dipToken.symbol());
|
99
|
-
// }
|
100
|
-
|
101
|
-
|
102
|
-
// /// @dev link token registry ownership to nft owner of registry service and register dip token.
|
103
|
-
// function linkToRegistryService()
|
104
|
-
// external
|
105
|
-
// {
|
106
|
-
// // link token registry ownership to registry service
|
107
|
-
// address registryService = getRegistry().getServiceAddress(
|
108
|
-
// REGISTRY(),
|
109
|
-
// _releaseManager.getInitialVersion());
|
110
|
-
|
111
|
-
// _linkToNftOwnable(registryService);
|
112
|
-
|
113
|
-
// // activate dip for initial gif version
|
114
|
-
// // as token registry is created in constructor of release manager
|
115
|
-
// // release manager can not yet be called in constructor of token registry
|
116
|
-
// uint256 chainId = block.chainid;
|
117
|
-
// address dipToken = address(_dipToken);
|
118
|
-
// VersionPart majorVersion = _releaseManager.getInitialVersion();
|
119
|
-
// bool active = true;
|
120
|
-
// _active[chainId][dipToken][majorVersion] = active;
|
121
|
-
|
122
|
-
// emit LogTokenRegistryTokenStateSet(chainId, dipToken, majorVersion, active);
|
123
|
-
// }
|
124
|
-
|
125
82
|
|
126
83
|
/// @dev register an onchain token.
|
127
84
|
/// this function verifies that the provided token address is a contract that implements
|
@@ -220,7 +177,7 @@ contract TokenRegistry is
|
|
220
177
|
// verify valid major version
|
221
178
|
if(enforceVersionCheck) {
|
222
179
|
uint256 version = majorVersion.toInt();
|
223
|
-
if (!getRegistry().
|
180
|
+
if (!getRegistry().isActiveRelease(majorVersion)) {
|
224
181
|
revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
|
225
182
|
}
|
226
183
|
}
|
@@ -264,6 +221,10 @@ contract TokenRegistry is
|
|
264
221
|
return _active[chainId][token][majorVersion];
|
265
222
|
}
|
266
223
|
|
224
|
+
function getDipTokenAddress() external view returns (address) {
|
225
|
+
return address(_dipToken);
|
226
|
+
}
|
227
|
+
|
267
228
|
//--- IRegistryLinked --------------------------------------------------//
|
268
229
|
|
269
230
|
/// @dev returns the dip token for this chain
|
@@ -6,21 +6,14 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
8
|
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
9
10
|
import {IComponent} from "./IComponent.sol";
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
|
-
import {IInstance} from "../instance/IInstance.sol";
|
13
|
-
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
14
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
17
|
-
import {ObjectType
|
18
|
-
import {VersionPart} from "../type/Version.sol";
|
13
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
19
14
|
import {Registerable} from "../shared/Registerable.sol";
|
20
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
21
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
22
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
|
-
import {
|
16
|
+
import {VersionPartLib} from "../type/Version.sol";
|
24
17
|
|
25
18
|
abstract contract Component is
|
26
19
|
AccessManagedUpgradeable,
|
@@ -95,7 +88,7 @@ abstract contract Component is
|
|
95
88
|
}
|
96
89
|
|
97
90
|
|
98
|
-
function approveTokenHandler(
|
91
|
+
function approveTokenHandler(Amount spendingLimitAmount)
|
99
92
|
external
|
100
93
|
virtual
|
101
94
|
onlyOwner
|
@@ -103,7 +96,7 @@ abstract contract Component is
|
|
103
96
|
approveTokenHandler(address(getToken()), spendingLimitAmount);
|
104
97
|
}
|
105
98
|
|
106
|
-
function approveTokenHandler(address token,
|
99
|
+
function approveTokenHandler(address token, Amount spendingLimitAmount)
|
107
100
|
public
|
108
101
|
virtual
|
109
102
|
onlyOwner
|
@@ -114,7 +107,7 @@ abstract contract Component is
|
|
114
107
|
|
115
108
|
IERC20Metadata(token).approve(
|
116
109
|
address(getTokenHandler()),
|
117
|
-
spendingLimitAmount);
|
110
|
+
spendingLimitAmount.toInt());
|
118
111
|
|
119
112
|
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
120
113
|
}
|
@@ -259,6 +252,7 @@ abstract contract Component is
|
|
259
252
|
|
260
253
|
}
|
261
254
|
|
255
|
+
|
262
256
|
/// @dev for component contracts that hold its own component information
|
263
257
|
/// this function creates and sets a token hanlder for the components tokens
|
264
258
|
function _createAndSetTokenHandler()
|
@@ -268,6 +262,7 @@ abstract contract Component is
|
|
268
262
|
$._tokenHandler = new TokenHandler(address($._token));
|
269
263
|
}
|
270
264
|
|
265
|
+
|
271
266
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
272
267
|
/// eg for instance linked components that externally store this information with the instance store contract
|
273
268
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
@@ -10,8 +10,8 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
11
11
|
import {IAccess} from "../instance/module/IAccess.sol";
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
14
|
-
import {RoleId, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
|
13
|
+
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
15
15
|
import {KEEP_STATE} from "../type/StateId.sol";
|
16
16
|
import {IComponents} from "../instance/module/IComponents.sol";
|
17
17
|
import {IComponentService} from "./IComponentService.sol";
|
@@ -64,11 +64,6 @@ contract ComponentService is
|
|
64
64
|
registerInterface(type(IComponentService).interfaceId);
|
65
65
|
}
|
66
66
|
|
67
|
-
|
68
|
-
function getDomain() public pure virtual override returns(ObjectType) {
|
69
|
-
return COMPONENT();
|
70
|
-
}
|
71
|
-
|
72
67
|
//-------- component ----------------------------------------------------//
|
73
68
|
|
74
69
|
function setWallet(address newWallet) external virtual {
|
@@ -107,12 +102,6 @@ contract ComponentService is
|
|
107
102
|
virtual
|
108
103
|
{
|
109
104
|
address contractAddress = msg.sender;
|
110
|
-
RoleId[] memory roles = new RoleId[](1);
|
111
|
-
bytes4[][] memory selectors = new bytes4[][](1);
|
112
|
-
|
113
|
-
// authorizaion for distribution owner
|
114
|
-
roles[0] = PRODUCT_OWNER_ROLE();
|
115
|
-
selectors[0] = _createSelectors(IProductComponent.setFees.selector);
|
116
105
|
|
117
106
|
// register/create component setup
|
118
107
|
(
|
@@ -122,9 +111,7 @@ contract ComponentService is
|
|
122
111
|
) = _register(
|
123
112
|
contractAddress,
|
124
113
|
PRODUCT(),
|
125
|
-
PRODUCT_OWNER_ROLE()
|
126
|
-
roles,
|
127
|
-
selectors);
|
114
|
+
PRODUCT_OWNER_ROLE());
|
128
115
|
|
129
116
|
// create product info
|
130
117
|
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
@@ -198,24 +185,12 @@ contract ComponentService is
|
|
198
185
|
virtual
|
199
186
|
{
|
200
187
|
address contractAddress = msg.sender;
|
201
|
-
RoleId[] memory roles = new RoleId[](2);
|
202
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
203
|
-
|
204
|
-
// authorizaion for distribution owner
|
205
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
206
|
-
selectors[0] = _createSelectors(IDistributionComponent.setFees.selector);
|
207
|
-
|
208
|
-
// authorizaion for product service
|
209
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
210
|
-
selectors[1] = _createSelectors(IDistributionComponent.processRenewal.selector);
|
211
188
|
|
212
189
|
// register/create component info
|
213
190
|
_register(
|
214
191
|
contractAddress,
|
215
192
|
DISTRIBUTION(),
|
216
|
-
DISTRIBUTION_OWNER_ROLE()
|
217
|
-
roles,
|
218
|
-
selectors);
|
193
|
+
DISTRIBUTION_OWNER_ROLE());
|
219
194
|
}
|
220
195
|
|
221
196
|
|
@@ -280,24 +255,32 @@ contract ComponentService is
|
|
280
255
|
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
281
256
|
}
|
282
257
|
|
283
|
-
//--------
|
258
|
+
//-------- oracle -------------------------------------------------------//
|
284
259
|
|
285
|
-
|
286
|
-
function registerPool()
|
260
|
+
function registerOracle()
|
287
261
|
external
|
288
262
|
virtual
|
289
263
|
{
|
290
264
|
address contractAddress = msg.sender;
|
291
|
-
RoleId[] memory roles = new RoleId[](2);
|
292
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
293
265
|
|
294
|
-
//
|
295
|
-
|
296
|
-
|
266
|
+
// register/create component setup
|
267
|
+
(
|
268
|
+
, // instance reader
|
269
|
+
InstanceStore instanceStore,
|
270
|
+
NftId componentNftId
|
271
|
+
) = _register(
|
272
|
+
contractAddress,
|
273
|
+
ORACLE(),
|
274
|
+
ORACLE_OWNER_ROLE());
|
275
|
+
}
|
297
276
|
|
298
|
-
|
299
|
-
|
300
|
-
|
277
|
+
//-------- pool ---------------------------------------------------------//
|
278
|
+
|
279
|
+
function registerPool()
|
280
|
+
external
|
281
|
+
virtual
|
282
|
+
{
|
283
|
+
address contractAddress = msg.sender;
|
301
284
|
|
302
285
|
// register/create component setup
|
303
286
|
(
|
@@ -307,14 +290,13 @@ contract ComponentService is
|
|
307
290
|
) = _register(
|
308
291
|
contractAddress,
|
309
292
|
POOL(),
|
310
|
-
POOL_OWNER_ROLE()
|
311
|
-
roles,
|
312
|
-
selectors);
|
293
|
+
POOL_OWNER_ROLE());
|
313
294
|
|
314
295
|
// create info
|
315
296
|
instanceStore.createPool(
|
316
297
|
componentNftId,
|
317
|
-
IPoolComponent(
|
298
|
+
IPoolComponent(
|
299
|
+
contractAddress).getInitialPoolInfo());
|
318
300
|
}
|
319
301
|
|
320
302
|
|
@@ -444,9 +426,7 @@ contract ComponentService is
|
|
444
426
|
function _register(
|
445
427
|
address componentAddress, // address of component to register
|
446
428
|
ObjectType requiredType, // required type for component for registration
|
447
|
-
RoleId requiredRole
|
448
|
-
RoleId[] memory roles, // roles with write access to component
|
449
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
429
|
+
RoleId requiredRole // role required for comonent owner for registration
|
450
430
|
)
|
451
431
|
internal
|
452
432
|
virtual
|
@@ -473,21 +453,23 @@ contract ComponentService is
|
|
473
453
|
|
474
454
|
component.linkToRegisteredNftId();
|
475
455
|
|
456
|
+
// setup initial component authorization
|
457
|
+
_instanceService.initializeAuthorization(
|
458
|
+
instance.getNftId(),
|
459
|
+
component);
|
460
|
+
|
476
461
|
// save amended component info with instance
|
477
462
|
instanceReader = instance.getInstanceReader();
|
478
463
|
instanceStore = instance.getInstanceStore();
|
479
464
|
|
480
465
|
IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
|
481
466
|
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
component.getName(),
|
489
|
-
selectors,
|
490
|
-
roles);
|
467
|
+
|
468
|
+
instanceStore.createComponent(
|
469
|
+
component.getNftId(),
|
470
|
+
componentInfo);
|
471
|
+
|
472
|
+
// TODO add logging
|
491
473
|
}
|
492
474
|
|
493
475
|
|
@@ -526,7 +508,7 @@ contract ComponentService is
|
|
526
508
|
}
|
527
509
|
|
528
510
|
|
529
|
-
function _createSelectors(bytes4 selector) internal
|
511
|
+
function _createSelectors(bytes4 selector) internal pure returns (bytes4[] memory selectors) {
|
530
512
|
selectors = new bytes4[](1);
|
531
513
|
selectors[0] = selector;
|
532
514
|
}
|
@@ -560,18 +542,13 @@ contract ComponentService is
|
|
560
542
|
RoleId requiredRole
|
561
543
|
)
|
562
544
|
internal
|
563
|
-
|
545
|
+
view
|
564
546
|
returns (
|
565
547
|
IInstance instance,
|
566
548
|
IInstanceLinkedComponent component,
|
567
549
|
address owner
|
568
550
|
)
|
569
551
|
{
|
570
|
-
// check component has not already been registered
|
571
|
-
if (getRegistry().getNftId(componentAddress).gtz()) {
|
572
|
-
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
573
|
-
}
|
574
|
-
|
575
552
|
// check this is a component
|
576
553
|
component = IInstanceLinkedComponent(componentAddress);
|
577
554
|
if(!component.supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
@@ -584,12 +561,21 @@ contract ComponentService is
|
|
584
561
|
revert ErrorComponentServiceInvalidType(componentAddress, requiredType, info.objectType);
|
585
562
|
}
|
586
563
|
|
564
|
+
// check component has not already been registered
|
565
|
+
if (getRegistry().getNftId(componentAddress).gtz()) {
|
566
|
+
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
567
|
+
}
|
568
|
+
|
587
569
|
// check instance has assigned required role to inital owner
|
588
570
|
instance = _getInstance(info.parentNftId);
|
589
571
|
owner = info.initialOwner;
|
590
572
|
|
591
|
-
if(!instance.
|
573
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
592
574
|
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
593
575
|
}
|
594
576
|
}
|
577
|
+
|
578
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
579
|
+
return COMPONENT();
|
580
|
+
}
|
595
581
|
}
|
@@ -33,12 +33,10 @@ abstract contract ComponentVerifyingService is
|
|
33
33
|
)
|
34
34
|
{
|
35
35
|
componentNftId = getRegistry().getNftId(msg.sender);
|
36
|
-
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
41
|
-
}
|
36
|
+
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
37
|
+
componentNftId,
|
38
|
+
expectedType,
|
39
|
+
true); // only active
|
42
40
|
}
|
43
41
|
|
44
42
|
|
@@ -48,7 +46,8 @@ abstract contract ComponentVerifyingService is
|
|
48
46
|
/// - the component has the wrong object type
|
49
47
|
function _getAndVerifyComponentInfo(
|
50
48
|
NftId componentNftId,
|
51
|
-
ObjectType expectedType // assume always of `component` type
|
49
|
+
ObjectType expectedType, // assume always of `component` type
|
50
|
+
bool onlyActive
|
52
51
|
)
|
53
52
|
internal
|
54
53
|
virtual
|
@@ -85,6 +84,13 @@ abstract contract ComponentVerifyingService is
|
|
85
84
|
}
|
86
85
|
|
87
86
|
instance = _getInstance(info.parentNftId);
|
87
|
+
|
88
|
+
// ensure component is not locked
|
89
|
+
if (onlyActive) {
|
90
|
+
if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
|
91
|
+
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
92
|
+
}
|
93
|
+
}
|
88
94
|
}
|
89
95
|
|
90
96
|
|
@@ -4,14 +4,10 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
-
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
-
import {IProductService} from "../product/IProductService.sol";
|
11
9
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
10
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
13
|
-
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
15
11
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
12
|
|
17
13
|
/// @dev component base class
|
@@ -32,12 +28,12 @@ interface IComponent is
|
|
32
28
|
|
33
29
|
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
34
30
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
35
|
-
event LogComponentTokenHandlerApproved(address token,
|
31
|
+
event LogComponentTokenHandlerApproved(address token, Amount limit);
|
36
32
|
|
37
33
|
/// @dev approves token hanlder to spend up to the specified amount of tokens
|
38
34
|
/// reverts if component wallet is not component itself
|
39
35
|
/// only component owner (nft holder) is authorizes to call this function
|
40
|
-
function approveTokenHandler(
|
36
|
+
function approveTokenHandler(Amount spendingLimitAmount) external;
|
41
37
|
|
42
38
|
/// @dev sets the wallet address for the component
|
43
39
|
/// if the current wallet has tokens, these will be transferred
|
@@ -52,6 +52,8 @@ interface IComponentService is
|
|
52
52
|
function unlock() external;
|
53
53
|
|
54
54
|
//-------- product ------------------------------------------------------//
|
55
|
+
|
56
|
+
/// @dev registers the sending component as a product component
|
55
57
|
function registerProduct() external;
|
56
58
|
|
57
59
|
function setProductFees(
|
@@ -63,6 +65,8 @@ interface IComponentService is
|
|
63
65
|
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
64
66
|
|
65
67
|
//-------- distribution -------------------------------------------------//
|
68
|
+
|
69
|
+
/// @dev registers the sending component as a distribution component
|
66
70
|
function registerDistribution() external;
|
67
71
|
|
68
72
|
function setDistributionFees(
|
@@ -73,7 +77,14 @@ interface IComponentService is
|
|
73
77
|
function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
74
78
|
function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
75
79
|
|
80
|
+
//-------- oracle -------------------------------------------------------//
|
81
|
+
|
82
|
+
/// @dev registers the sending component as an oracle component
|
83
|
+
function registerOracle() external;
|
84
|
+
|
76
85
|
//-------- pool ---------------------------------------------------------//
|
86
|
+
|
87
|
+
/// @dev registers the sending component as a pool component
|
77
88
|
function registerPool() external;
|
78
89
|
|
79
90
|
function setPoolFees(
|
@@ -5,6 +5,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
7
|
import {IComponent} from "../shared/IComponent.sol";
|
8
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
9
10
|
import {IInstance} from "../instance/IInstance.sol";
|
10
11
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
@@ -43,4 +44,7 @@ interface IInstanceLinkedComponent is
|
|
43
44
|
/// this is only relevant for pool and distribution components
|
44
45
|
function getProductNftId() external view returns (NftId productNftId);
|
45
46
|
|
47
|
+
/// @dev returns the initial component authorization specification.
|
48
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
49
|
+
|
46
50
|
}
|
@@ -13,6 +13,7 @@ interface IKeyValueStore is ILifecycle {
|
|
13
13
|
|
14
14
|
error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
|
15
15
|
error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
|
16
|
+
error ErrorKeyValueStoreNoLifecycle(ObjectType objectType);
|
16
17
|
error ErrorKeyValueStoreStateZero(Key32 key);
|
17
18
|
error ErrorKeyValueStoreNotExisting(Key32 key);
|
18
19
|
|
@@ -32,7 +33,7 @@ interface IKeyValueStore is ILifecycle {
|
|
32
33
|
// eg account outside gif objects that initiated the tx
|
33
34
|
// implies the caller needs to be propagated through all calls up to key values store itself
|
34
35
|
// to always have the instance address there doesn't seem to make sense
|
35
|
-
address updatedBy;
|
36
|
+
// address updatedBy;
|
36
37
|
Blocknumber updatedIn;
|
37
38
|
Blocknumber createdIn;
|
38
39
|
}
|
@@ -1,13 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../type/NftId.sol";
|
5
4
|
import {ObjectType} from "../type/ObjectType.sol";
|
6
5
|
import {StateId} from "../type/StateId.sol";
|
7
6
|
|
8
7
|
interface ILifecycle {
|
9
8
|
|
10
|
-
error ErrorNoLifecycle(
|
9
|
+
error ErrorNoLifecycle(ObjectType objectType);
|
11
10
|
error ErrorInvalidStateTransition(
|
12
11
|
ObjectType objectType,
|
13
12
|
StateId fromStateId,
|
@@ -16,7 +16,7 @@ interface INftOwnable is
|
|
16
16
|
error ErrorNftOwnableAlreadyLinked(NftId nftId);
|
17
17
|
error ErrorNftOwnableContractNotRegistered(address contractAddress);
|
18
18
|
|
19
|
-
function linkToRegisteredNftId() external;
|
19
|
+
function linkToRegisteredNftId() external returns (NftId);
|
20
20
|
|
21
21
|
function getNftId() external view returns (NftId);
|
22
22
|
function getOwner() external view returns (address);
|
@@ -6,6 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IRegisterable} from "./IRegisterable.sol";
|
7
7
|
import {IVersionable} from "./IVersionable.sol";
|
8
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
9
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
10
|
|
10
11
|
interface IService is
|
11
12
|
IRegisterable,
|
@@ -14,5 +15,11 @@ interface IService is
|
|
14
15
|
{
|
15
16
|
error ErrorServiceNotImplemented();
|
16
17
|
|
18
|
+
/// @dev returns the domain for this service.
|
19
|
+
/// In any GIF release only one service for any given domain may be deployed.
|
17
20
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
|
+
|
22
|
+
/// @dev returns the GIF release specific role id.
|
23
|
+
/// These role ids are used to authorize service to service communication.
|
24
|
+
function getRoleId() external pure returns(RoleId serviceRoleId);
|
18
25
|
}
|