mirror of
https://github.com/status-im/nft-faucet.git
synced 2025-02-22 11:38:26 +00:00
Return back IProviderPlugin and IUploaderPlugin
This commit is contained in:
parent
c3ca42eb4f
commit
1f97ff7935
@ -1,4 +1,6 @@
|
||||
namespace NftFaucet.Plugins.Models.Abstraction;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.Plugins;
|
||||
|
||||
public interface INetworkPlugin
|
||||
{
|
8
NftFaucet.Plugins/IProviderPlugin.cs
Normal file
8
NftFaucet.Plugins/IProviderPlugin.cs
Normal file
@ -0,0 +1,8 @@
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.Plugins;
|
||||
|
||||
public interface IProviderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IProvider> Providers { get; }
|
||||
}
|
8
NftFaucet.Plugins/IUploaderPlugin.cs
Normal file
8
NftFaucet.Plugins/IUploaderPlugin.cs
Normal file
@ -0,0 +1,8 @@
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.Plugins;
|
||||
|
||||
public interface IUploaderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IUploader> Uploaders { get; }
|
||||
}
|
@ -12,14 +12,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProviderPlugins", "Provider
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UploadPlugins", "UploadPlugins", "{5FA46262-EDA0-43BB-A1E5-57F50AD7EE00}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.ProviderPlugins.EthereumKeygen", "plugins\provider-plugins\NftFaucet.ProviderPlugins.EthereumKeygen\NftFaucet.ProviderPlugins.EthereumKeygen.csproj", "{B1D73FDE-0ECD-4917-8B9A-AEFD8C8C39C5}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.ProviderPlugins.Keygens", "plugins\provider-plugins\NftFaucet.ProviderPlugins.Keygens\NftFaucet.ProviderPlugins.Keygens.csproj", "{B1D73FDE-0ECD-4917-8B9A-AEFD8C8C39C5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.Domain", "NftFaucet.Domain\NftFaucet.Domain.csproj", "{384ECEAB-40B1-4F22-AFBD-F710B935E23A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.ProviderPlugins.Metamask", "plugins\provider-plugins\NftFaucet.ProviderPlugins.Metamask\NftFaucet.ProviderPlugins.Metamask.csproj", "{3028C0A8-073A-4160-92C7-34D148F1D19C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.ProviderPlugins.SolanaKeygen", "plugins\provider-plugins\NftFaucet.ProviderPlugins.SolanaKeygen\NftFaucet.ProviderPlugins.SolanaKeygen.csproj", "{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.ProviderPlugins.Phantom", "plugins\provider-plugins\NftFaucet.ProviderPlugins.Phantom\NftFaucet.ProviderPlugins.Phantom.csproj", "{D6522592-0719-479F-AD8E-D58D4D7B207C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NftFaucet.UploadPlugins.Crust", "plugins\upload-plugins\NftFaucet.UploadPlugins.Crust\NftFaucet.UploadPlugins.Crust.csproj", "{BA56B8D0-B2BD-4170-9D95-D2A1ED29E334}"
|
||||
@ -72,10 +70,6 @@ Global
|
||||
{3028C0A8-073A-4160-92C7-34D148F1D19C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3028C0A8-073A-4160-92C7-34D148F1D19C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3028C0A8-073A-4160-92C7-34D148F1D19C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D6522592-0719-479F-AD8E-D58D4D7B207C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D6522592-0719-479F-AD8E-D58D4D7B207C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D6522592-0719-479F-AD8E-D58D4D7B207C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -136,7 +130,6 @@ Global
|
||||
{B1D73FDE-0ECD-4917-8B9A-AEFD8C8C39C5} = {9DE3CDEC-37AE-4FB0-B115-984EB47F57C5}
|
||||
{3028C0A8-073A-4160-92C7-34D148F1D19C} = {9DE3CDEC-37AE-4FB0-B115-984EB47F57C5}
|
||||
{D6522592-0719-479F-AD8E-D58D4D7B207C} = {9DE3CDEC-37AE-4FB0-B115-984EB47F57C5}
|
||||
{A48C079B-5466-4AE5-AA15-0D9D7C3A01A9} = {9DE3CDEC-37AE-4FB0-B115-984EB47F57C5}
|
||||
{BA56B8D0-B2BD-4170-9D95-D2A1ED29E334} = {5FA46262-EDA0-43BB-A1E5-57F50AD7EE00}
|
||||
{3F51D52C-3A40-4206-9715-02425786B485} = {5FA46262-EDA0-43BB-A1E5-57F50AD7EE00}
|
||||
{F0F74D75-68EC-4B56-897E-7292A05B963B} = {5FA46262-EDA0-43BB-A1E5-57F50AD7EE00}
|
||||
|
@ -31,10 +31,9 @@
|
||||
<ProjectReference Include="..\plugins\network-plugins\NftFaucet.NetworkPlugins.Optimism\NftFaucet.NetworkPlugins.Optimism.csproj" />
|
||||
<ProjectReference Include="..\plugins\network-plugins\NftFaucet.NetworkPlugins.Polygon\NftFaucet.NetworkPlugins.Polygon.csproj" />
|
||||
<ProjectReference Include="..\plugins\network-plugins\NftFaucet.NetworkPlugins.Solana\NftFaucet.NetworkPlugins.Solana.csproj" />
|
||||
<ProjectReference Include="..\plugins\provider-plugins\NftFaucet.ProviderPlugins.EthereumKeygen\NftFaucet.ProviderPlugins.EthereumKeygen.csproj" />
|
||||
<ProjectReference Include="..\plugins\provider-plugins\NftFaucet.ProviderPlugins.Keygens\NftFaucet.ProviderPlugins.Keygens.csproj" />
|
||||
<ProjectReference Include="..\plugins\provider-plugins\NftFaucet.ProviderPlugins.Metamask\NftFaucet.ProviderPlugins.Metamask.csproj" />
|
||||
<ProjectReference Include="..\plugins\provider-plugins\NftFaucet.ProviderPlugins.Phantom\NftFaucet.ProviderPlugins.Phantom.csproj" />
|
||||
<ProjectReference Include="..\plugins\provider-plugins\NftFaucet.ProviderPlugins.SolanaKeygen\NftFaucet.ProviderPlugins.SolanaKeygen.csproj" />
|
||||
<ProjectReference Include="..\NftFaucet.Plugins\NftFaucet.Plugins.csproj" />
|
||||
<ProjectReference Include="..\plugins\upload-plugins\NftFaucet.UploadPlugins.Crust\NftFaucet.UploadPlugins.Crust.csproj" />
|
||||
<ProjectReference Include="..\plugins\upload-plugins\NftFaucet.UploadPlugins.Infura\NftFaucet.UploadPlugins.Infura.csproj" />
|
||||
|
@ -43,8 +43,8 @@ public class InitializationService : IInitializationService
|
||||
_appState.PluginStorage.Contracts == null;
|
||||
|
||||
_appState.PluginStorage.Networks ??= _pluginLoader.NetworkPlugins.SelectMany(x => x.Networks).Where(x => x != null).ToArray();
|
||||
_appState.PluginStorage.Providers ??= _pluginLoader.ProviderPlugins.Where(x => x != null).ToArray();
|
||||
_appState.PluginStorage.Uploaders ??= _pluginLoader.UploadPlugins.Where(x => x != null).ToArray();
|
||||
_appState.PluginStorage.Providers ??= _pluginLoader.ProviderPlugins.SelectMany(x => x.Providers).Where(x => x != null).ToArray();
|
||||
_appState.PluginStorage.Uploaders ??= _pluginLoader.UploaderPlugins.SelectMany(x => x.Uploaders).Where(x => x != null).ToArray();
|
||||
_appState.PluginStorage.Contracts ??= _appState.PluginStorage.Networks.SelectMany(x => x.DeployedContracts).Where(x => x != null).ToArray();
|
||||
|
||||
if (isFirstRun)
|
||||
|
@ -6,11 +6,12 @@ using NftFaucet.NetworkPlugins.Moonbeam;
|
||||
using NftFaucet.NetworkPlugins.Optimism;
|
||||
using NftFaucet.NetworkPlugins.Polygon;
|
||||
using NftFaucet.NetworkPlugins.Solana;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
using NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
using NftFaucet.ProviderPlugins.Keygens;
|
||||
using NftFaucet.ProviderPlugins.Metamask;
|
||||
using NftFaucet.ProviderPlugins.Phantom;
|
||||
using NftFaucet.ProviderPlugins.SolanaKeygen;
|
||||
using NftFaucet.UploadPlugins.Crust;
|
||||
using NftFaucet.UploadPlugins.Infura;
|
||||
using NftFaucet.UploadPlugins.NftStorage;
|
||||
@ -31,18 +32,17 @@ public class PluginLoader
|
||||
new SolanaNetworkPlugin(),
|
||||
};
|
||||
|
||||
public IReadOnlyCollection<IProvider> ProviderPlugins { get; } = new IProvider[]
|
||||
public IReadOnlyCollection<IProviderPlugin> ProviderPlugins { get; } = new IProviderPlugin[]
|
||||
{
|
||||
new MetamaskProvider(),
|
||||
new EthereumKeygenProvider(),
|
||||
new PhantomProvider(),
|
||||
new SolanaKeygenProvider(),
|
||||
new MetamaskProviderPlugin(),
|
||||
new PhantomProviderPlugin(),
|
||||
new KeygenProviderPlugin(),
|
||||
};
|
||||
|
||||
public IReadOnlyCollection<IUploader> UploadPlugins { get; } = new IUploader[]
|
||||
public IReadOnlyCollection<IUploaderPlugin> UploaderPlugins { get; } = new IUploaderPlugin[]
|
||||
{
|
||||
new InfuraUploader(),
|
||||
new NftStorageUploader(),
|
||||
new CrustUploader(),
|
||||
new InfuraUploaderPlugin(),
|
||||
new NftStorageUploaderPlugin(),
|
||||
new CrustUploaderPlugin(),
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Arbitrum.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Arbitrum;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Avalanche.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Avalanche;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.BinanceSmartChain.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.BinanceSmartChain;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Ethereum.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Ethereum;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Moonbeam.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Moonbeam;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Optimism.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Optimism;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Polygon.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Polygon;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using NftFaucet.NetworkPlugins.Solana.Networks;
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.NetworkPlugins.Solana;
|
||||
|
@ -2,7 +2,7 @@ using Cryptography.ECDSA;
|
||||
using Nethereum.Hex.HexConvertors.Extensions;
|
||||
using Nethereum.Util;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
namespace NftFaucet.ProviderPlugins.Keygens;
|
||||
|
||||
public class EthereumKey
|
||||
{
|
@ -14,7 +14,7 @@ using NftFaucet.Plugins.Models;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
using NftFaucet.Plugins.Models.Enums;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
namespace NftFaucet.ProviderPlugins.Keygens;
|
||||
|
||||
public sealed class EthereumKeygenProvider : Provider
|
||||
{
|
@ -0,0 +1,14 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
using NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.Keygens;
|
||||
|
||||
public class KeygenProviderPlugin : IProviderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IProvider> Providers { get; } = new IProvider[]
|
||||
{
|
||||
new EthereumKeygenProvider(),
|
||||
new SolanaKeygenProvider(),
|
||||
};
|
||||
}
|
@ -12,6 +12,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Cryptography.ECDSA.Secp256K1" Version="1.1.3" />
|
||||
<PackageReference Include="Solana.Metaplex" Version="1.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,7 +1,7 @@
|
||||
using Solnet.Wallet;
|
||||
using Solnet.Wallet.Bip39;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.SolanaKeygen;
|
||||
namespace NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
|
||||
public class SolanaKey
|
||||
{
|
@ -15,7 +15,7 @@ using Solnet.Rpc.Models;
|
||||
using Solnet.Rpc.Utilities;
|
||||
using Solnet.Wallet;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.SolanaKeygen;
|
||||
namespace NftFaucet.ProviderPlugins.EthereumKeygen;
|
||||
|
||||
public class SolanaKeygenProvider : Provider
|
||||
{
|
@ -0,0 +1,12 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.Metamask;
|
||||
|
||||
public class MetamaskProviderPlugin : IProviderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IProvider> Providers { get; } = new IProvider[]
|
||||
{
|
||||
new MetamaskProvider(),
|
||||
};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.ProviderPlugins.Phantom;
|
||||
|
||||
public class PhantomProviderPlugin : IProviderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IProvider> Providers { get; } = new IProvider[]
|
||||
{
|
||||
new PhantomProvider(),
|
||||
};
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>disable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\NftFaucet.Plugins\NftFaucet.Plugins.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Solana.Metaplex" Version="1.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -0,0 +1,12 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.UploadPlugins.Crust;
|
||||
|
||||
public class CrustUploaderPlugin : IUploaderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IUploader> Uploaders { get; } = new[]
|
||||
{
|
||||
new CrustUploader(),
|
||||
};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.UploadPlugins.Infura;
|
||||
|
||||
public class InfuraUploaderPlugin : IUploaderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IUploader> Uploaders { get; } = new[]
|
||||
{
|
||||
new InfuraUploader(),
|
||||
};
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using NftFaucet.Plugins;
|
||||
using NftFaucet.Plugins.Models.Abstraction;
|
||||
|
||||
namespace NftFaucet.UploadPlugins.NftStorage;
|
||||
|
||||
public class NftStorageUploaderPlugin : IUploaderPlugin
|
||||
{
|
||||
public IReadOnlyCollection<IUploader> Uploaders { get; } = new[]
|
||||
{
|
||||
new NftStorageUploader(),
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user