Skip to content

Commit 30fa621

Browse files
author
Igor Goldobin
committed
feat: added option for destination folder
1 parent 1486ae6 commit 30fa621

19 files changed

Lines changed: 90 additions & 26 deletions

AddressOwnershipTool/Commands/Claim/ClaimCommand.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ public class ClaimCommand : ICommand<Result>
2323
public bool Testnet { get; set; }
2424

2525
public string DataFolder { get; set; }
26+
27+
public string OutputFolder { get; set; }
2628
}

AddressOwnershipTool/Commands/Claim/ClaimCommandHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public async Task<Result> Handle(ClaimCommand request, CancellationToken cancell
7272
}
7373
else
7474
{
75-
var addressOwnershipService = _addressOwnershipServiceFactory.CreateAddressOwnershipService(request.Testnet, request.UseCirrus, false);
75+
var addressOwnershipService = _addressOwnershipServiceFactory.CreateAddressOwnershipService(request.Testnet, request.UseCirrus, false, outputPath: request.OutputFolder);
7676
addressOwnershipService.SbfnExport(request.WalletName, request.WalletPassword, request.Destination, request.Deep, request.DataFolder);
7777
}
7878

AddressOwnershipTool/Commands/Claim/ClaimCommandValidator.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ public ClaimCommandValidator()
2020
.WithName("--datafolder");
2121
});
2222

23+
When(x => !string.IsNullOrEmpty(x.OutputFolder), () => {
24+
RuleFor(x => x.OutputFolder)
25+
.NotEmpty()
26+
.Must(x => Path.IsPathFullyQualified(x))
27+
.WithMessage("Please specify a valid output folder path")
28+
.WithName("--outputFolder");
29+
});
30+
2331
When(x => !string.IsNullOrEmpty(x.PrivateKeyFile), () => {
2432
RuleFor(x => x.PrivateKeyFile)
2533
.Must(x => Path.IsPathFullyQualified(x))

AddressOwnershipTool/Commands/Claim/ClaimInstruction.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class ClaimInstruction : BaseInstruction
2323
[Option('r', "datafolder", Required = false, HelpText = "[Optional] Root folder for your node")]
2424
public string DataFolder { get; set; }
2525

26+
[Option('o', "outputFolder", Required = false, HelpText = "[Optional] Path for the folder where generated CSV will go")]
27+
public string OutputFolder { get; set; }
28+
2629
public ClaimCommand ToCommand()
2730
{
2831
return new ClaimCommand
@@ -33,7 +36,8 @@ public ClaimCommand ToCommand()
3336
Testnet = Testnet,
3437
UseCirrus = UseCirrus,
3538
Destination = Destination,
36-
DataFolder = DataFolder
39+
DataFolder = DataFolder,
40+
OutputFolder = OutputFolder
3741
};
3842
}
3943
}

AddressOwnershipTool/Commands/Scan/ScanCommand.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ public class ScanCommand : ICommand<Result>
99
public bool Testnet { get; set; }
1010

1111
public int StartBlock { get; set; }
12+
13+
public int EndBlock { get; set; }
14+
15+
public string OutputFolder { get; set; }
1216
}

AddressOwnershipTool/Commands/Scan/ScanCommandHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ public ScanCommandHandler(ISwapExtractionServiceFactory swapExtractionServiceFac
1313

1414
public async Task<Result> Handle(ScanCommand request, CancellationToken cancellationToken)
1515
{
16-
var service = _swapExtractionServiceFactory.CreateSwapExtractionServiceFactory(request.Testnet, request.UseCirrus);
16+
var service = _swapExtractionServiceFactory.CreateSwapExtractionServiceFactory(request.Testnet, request.UseCirrus, request.OutputFolder);
1717

18-
await service.RunAsync(request.StartBlock);
18+
await service.RunAsync(request.StartBlock, request.EndBlock);
1919

2020
return Result.Ok();
2121
}

AddressOwnershipTool/Commands/Scan/ScanCommandValidator.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,22 @@ public ScanCommandValidator()
1111
.GreaterThanOrEqualTo(0)
1212
.WithMessage("Please specify a valid start block")
1313
.WithName("--start");
14+
15+
RuleFor(x => x.EndBlock)
16+
.GreaterThanOrEqualTo(0)
17+
.WithMessage("Please specify a valid end block")
18+
.WithName("--end");
19+
20+
RuleFor(x => new { x.StartBlock, x.EndBlock })
21+
.Must(x => x.StartBlock <= x.EndBlock)
22+
.WithMessage("Start block cannot be higher than end block");
23+
24+
When(x => !string.IsNullOrEmpty(x.OutputFolder), () => {
25+
RuleFor(x => x.OutputFolder)
26+
.NotEmpty()
27+
.Must(x => Path.IsPathFullyQualified(x))
28+
.WithMessage("Please specify a valid output folder path")
29+
.WithName("--outputFolder");
30+
});
1431
}
1532
}

AddressOwnershipTool/Commands/Scan/ScanInstruction.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,21 @@ public class ScanInstruction : BaseInstruction
1111
[Option('s', "start", Required = false, HelpText = "[Required] Start block to scan.")]
1212
public int StartBlock { get; set; }
1313

14+
[Option('e', "end", Required = false, HelpText = "[Optional] End block to scan.", Default = 2100000)]
15+
public int EndBlock { get; set; }
16+
17+
[Option('o', "outputFolder", Required = false, HelpText = "[Optional] Path for the folder where generated CSV will go")]
18+
public string OutputFolder { get; set; }
19+
1420
public ScanCommand ToCommand()
1521
{
1622
return new ScanCommand
1723
{
1824
Testnet = Testnet,
1925
UseCirrus = UseCirrus,
20-
StartBlock = StartBlock
26+
StartBlock = StartBlock,
27+
EndBlock = EndBlock,
28+
OutputFolder = OutputFolder
2129
};
2230
}
2331
}

AddressOwnershipTool/Commands/Validate/ValidateCommand.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ public class ValidateCommand : ICommand<Result>
99
public bool Testnet { get; set; }
1010

1111
public bool UseCirrus { get; set; }
12+
13+
public string OutputFolder { get; set; }
1214
}

AddressOwnershipTool/Commands/Validate/ValidateCommandHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public async Task<Result> Handle(ValidateCommand request, CancellationToken canc
1818
return Result.Fail($"Could not locate directory '{request.Signaturefolder}'!");
1919
}
2020

21-
var addressOwnershipService = _addressOwnershipServiceFactory.CreateAddressOwnershipService(request.Testnet, request.UseCirrus);
21+
var addressOwnershipService = _addressOwnershipServiceFactory.CreateAddressOwnershipService(request.Testnet, request.UseCirrus, outputPath: request.OutputFolder);
2222

2323
addressOwnershipService.Validate(request.Signaturefolder);
2424

0 commit comments

Comments
 (0)