Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
70d557b
added Aztec.
erkostandyan Sep 8, 2025
072f3d4
Add environment variable for aztec stores.
Sep 9, 2025
37794cf
Fix get swaps pagination
PurpleTheBest Sep 18, 2025
48962c8
Add repository dtos for create and update
PurpleTheBest Sep 18, 2025
2d77a32
Remove swap id from transaction request
PurpleTheBest Sep 18, 2025
0ce4676
Get rid of calldata asset
PurpleTheBest Sep 18, 2025
4ff59af
Bring Aztec changes to dev.
erkostandyan Oct 2, 2025
c5c952c
Merge pull request #135 from TrainProtocol/dev-add-aztec
erkostandyan Oct 2, 2025
d61a5f5
added treasury generate for testing.
erkostandyan Oct 3, 2025
df7140c
.
erkostandyan Oct 6, 2025
40336a4
fixed treasury dockerfile build error
erkostandyan Oct 6, 2025
f6fdc3b
changed dockerIgnore and dockerFile files
erkostandyan Oct 7, 2025
f652d7c
Merge pull request #136 from TrainProtocol/dev-fix-dockerfile
erkostandyan Oct 7, 2025
27a066a
Changed vault set async function for private salt variable.
erkostandyan Oct 8, 2025
db9f889
erkostandyan Oct 9, 2025
c498500
Changed valut getAsync function.
erkostandyan Oct 9, 2025
6c852f8
Fix vault set changes to accept private_salt values
erkostandyan Oct 9, 2025
ad2d633
added new method in vault service.
erkostandyan Oct 9, 2025
3fbfb9e
remove comment.
erkostandyan Oct 9, 2025
24627c2
Merge pull request #137 from TrainProtocol/dev-vault-fix
erkostandyan Oct 9, 2025
ac722b4
changed gnerate method for testing.
erkostandyan Oct 10, 2025
bd7a297
changed treasury client timeout for aztec.
erkostandyan Oct 10, 2025
2f6732e
Changed treasury client factory to 10min.
erkostandyan Oct 10, 2025
aabf73e
minor changes for aztec test.
erkostandyan Oct 12, 2025
2b08f22
added missing aztec worker in js.
erkostandyan Oct 13, 2025
fdefd01
added aztec github action.
erkostandyan Oct 13, 2025
3509140
Try to update docker.
Oct 15, 2025
2f89b31
Fix docker.
Oct 15, 2025
ea67f32
Revert "Fix docker."
Oct 15, 2025
c7fa55e
Reapply "Fix docker."
Oct 15, 2025
e67dd71
Revert "Reapply "Fix docker.""
Oct 15, 2025
9bd34c1
Fix.
Oct 15, 2025
9f281ff
Make block range shorter.
erkostandyan Oct 15, 2025
a4f9b91
Merge branch 'dev' of https://github.com/TrainProtocol/solver into dev
erkostandyan Oct 15, 2025
cb1f196
Back starknet solver. (#134)
Mandzikyan Nov 12, 2025
424036a
Fix starknet signature.
Nov 12, 2025
7dcf0bb
Fix private key.
Nov 12, 2025
65ca76f
Make starknet to return bigints in starknet specific way.
Nov 12, 2025
36edb13
fix.
Nov 13, 2025
7d8004c
Fix.
Nov 13, 2025
0042332
Remove v3 detaisl.
Nov 13, 2025
92bf26e
Some starknet fixes.
Nov 13, 2025
01400af
Reaad port from env variable
arkoc Nov 13, 2025
f745782
Add back 8080 port
arkoc Nov 13, 2025
bc5bb8b
Fixes.
Nov 13, 2025
4c0f490
Merge branch 'dev' of https://github.com/TrainProtocol/solver into dev
Nov 13, 2025
49c53c6
revert ts config.
Nov 13, 2025
cfe03d3
Dev solana remove revert (#138)
Mandzikyan Nov 14, 2025
172dc65
get back aztec
erkostandyan Nov 14, 2025
ade9ce6
Some fixes.
Nov 14, 2025
949c799
Fix minors.
Nov 14, 2025
72e6e74
Remove some repositorys using from solana.
Nov 14, 2025
404187c
Fix solana yml.
Nov 14, 2025
e639fbb
Dummy commit.
Nov 14, 2025
73057fd
yml Fixes.
Nov 14, 2025
f831efb
Dommy commitV2.
Nov 14, 2025
ca16198
Dummy commitV3.
Nov 14, 2025
18f730d
Fix repo name.
Nov 14, 2025
bf4ce2c
Fix majors. (#139)
Mandzikyan Nov 14, 2025
3b090f7
Dev solana major fixes (#140)
Mandzikyan Nov 14, 2025
d34e1e9
Update starknet lib.
Nov 15, 2025
cebfbbd
Some starknet fixes.
Nov 15, 2025
2462348
.
erkostandyan Nov 15, 2025
3417f5c
Bring back Aztec.
erkostandyan Nov 16, 2025
fb8a81c
Added Aztec worker.
erkostandyan Nov 16, 2025
aef2fcd
Revert "Added Aztec worker."
erkostandyan Nov 16, 2025
50f34ce
Fix aztec treasury.
erkostandyan Nov 16, 2025
59f70dc
Added env gitignore.
erkostandyan Nov 16, 2025
29d9200
Update docker file.
erkostandyan Nov 16, 2025
f77e483
Changed node version.
erkostandyan Nov 16, 2025
d4a6c45
Fixed js docker.
erkostandyan Nov 16, 2025
50d1950
Add dummy change.
erkostandyan Nov 16, 2025
0ab1fa3
Fix starknet event decoder.
Nov 17, 2025
89caa49
Fixed treasury setDict method.
erkostandyan Nov 17, 2025
c08fa3a
Fix correct event parsing.
Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Exclude host node_modules and build artifacts from the docker build context
**/node_modules
**/dist

# Logs, env files
npm-debug.log*
.env
.env.*

# OS files
.DS_Store

# Optional: ignore local Dockerfiles if you build from subfolders
#Dockerfile
40 changes: 40 additions & 0 deletions .github/workflows/aztec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Aztec Workflow runner

on:
workflow_dispatch:
push:
branches: [ main, dev ]
paths:
- 'js/**'
- '.github/workflows/aztec.yml'
pull_request:
branches: [ main, dev ]
paths:
- 'js/**'
- '.github/workflows/aztec.yml'
release:
types: [published, created]

env:
DOCKER_IMAGE: trainprotocol/solver-aztec
NODE_VERSION: 22

jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Docker build and push
id: docker
uses: ./.github/actions/docker
with:
file: js/Dockerfile
docker-image: ${{ env.DOCKER_IMAGE }}
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
build-args: |
NODE_VERSION=${{ env.NODE_VERSION }}
2 changes: 1 addition & 1 deletion .github/workflows/fuel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:

env:
DOCKER_IMAGE: trainprotocol/solver-fuel
NODE_VERSION: 20
NODE_VERSION: 22

jobs:
build-and-push:
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/solana.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
name: Solana Workflow runner

on:
workflow_dispatch:
push:
branches: [ disable ]
branches: [ main, dev ]
paths:
- 'csharp/**'
- '.github/workflows/solana.yml'
pull_request:
branches: [ disable ]
branches: [ main, dev ]
paths:
- 'csharp/**'
- '.github/workflows/solana.yml'
Expand All @@ -21,7 +22,7 @@ env:
jobs:
build-and-push:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -37,4 +38,4 @@ jobs:
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
build-args: |
DOTNET_VERSION=${{ env.DOTNET_VERSION }}
DOTNET_VERSION=${{ env.DOTNET_VERSION }}
2 changes: 1 addition & 1 deletion .github/workflows/starknet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:

env:
DOCKER_IMAGE: trainprotocol/solver-starknet
NODE_VERSION: 20
NODE_VERSION: 22

jobs:
build-and-push:
Expand Down
1 change: 1 addition & 0 deletions csharp/TrainSolver.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<Project Path="src/Workflow.Abstractions/Workflow.Abstractions.csproj" />
<Project Path="src/Workflow.Common/Workflow.Common.csproj" />
<Project Path="src/Workflow.EVM/Workflow.EVM.csproj" />
<Project Path="src/Workflow.Solana/Workflow.Solana.csproj" />
<Project Path="src/Workflow.Swap/Workflow.Swap.csproj" />
</Folder>
<Folder Name="/tests/">
Expand Down
7 changes: 3 additions & 4 deletions csharp/src/AdminAPI/Endpoints/FeeEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -35,7 +34,7 @@ private static async Task<IResult> CreateServiceFeeAsync(
IFeeRepository repository,
[FromBody] CreateServiceFeeRequest request)
{
var fee = await repository.CreateServiceFeeAsync(request.Name, request.FeeInUsd, request.PercentageFee);
var fee = await repository.CreateServiceFeeAsync(request);
return fee is null
? Results.BadRequest("Failed to create service fee")
: Results.Ok();
Expand All @@ -46,7 +45,7 @@ private static async Task<IResult> UpdateServiceFeeAsync(
string name,
[FromBody] UpdateServiceFeeRequest request)
{
var fee = await repository.UpdateServiceFeeAsync(name, request.FeeInUsd, request.PercentageFee);
var fee = await repository.UpdateServiceFeeAsync(name, request);

return fee is null
? Results.BadRequest("Failed to create service fee")
Expand Down
31 changes: 5 additions & 26 deletions csharp/src/AdminAPI/Endpoints/NetworkEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System.Xml.Linq;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Common.Extensions;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -66,21 +66,7 @@ private static async Task<IResult> CreateAsync(
INetworkRepository repository,
[FromBody] CreateNetworkRequest request)
{
var network = await repository.CreateAsync(
request.NetworkName,
request.DisplayName,
request.Type,
request.FeeType,
request.ChainId,
request.FeePercentageIncrease,
request.HtlcNativeContractAddress,
request.HtlcTokenContractAddress,
request.NativeTokenSymbol,
request.NativeTokenPriceSymbol,
request.NativeTokenContract,
request.NativeTokenDecimals,
request.NodeUrl,
request.NodeProvider);
var network = await repository.CreateAsync(request);

return network is null
? Results.BadRequest("Failed to create network")
Expand All @@ -94,11 +80,7 @@ private static async Task<IResult> UpdateAsync(
{
var network = await repository.UpdateAsync(
networkName,
request.DisplayName,
request.FeeType,
request.FeePercentageIncrease,
request.HtlcNativeContractAddress,
request.HtlcTokenContractAddress);
request);

return network is null
? Results.BadRequest("Failed to update network")
Expand All @@ -111,7 +93,7 @@ private static async Task<IResult> CreateNodeAsync(
[FromBody] CreateNodeRequest request)
{
var node = await repository.CreateNodeAsync(
networkName, request.ProviderName, request.Url);
networkName, request);

return node is null
? Results.BadRequest("Failed to create node")
Expand All @@ -134,10 +116,7 @@ private static async Task<IResult> CreateTokenAsync(
{
var token = await repository.CreateTokenAsync(
networkName,
request.Symbol,
request.PriceSymbol,
request.Contract,
request.Decimals);
request);

return token is null
? Results.BadRequest("Failed to create token")
Expand Down
23 changes: 3 additions & 20 deletions csharp/src/AdminAPI/Endpoints/RouteEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Common.Extensions;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -40,19 +40,7 @@ private static async Task<IResult> CreateRouteAsync(
[FromBody] CreateRouteRequest request)
{
var route = await repository.CreateAsync(
request.SourceNetworkName,
request.SourceToken,
request.SourceWalletAddress,
request.SourceWalletType,
request.DestinationNetworkName,
request.DestinationToken,
request.DestinationWalletAddress,
request.DestinationWalletType,
request.RateProvider,
request.MinAmount,
request.MaxAmount,
request.IgnoreExpenseFee,
request.ServiceFee);
request);

return route is null
? Results.BadRequest("Failed to create route")
Expand All @@ -72,12 +60,7 @@ private static async Task<IResult> UpdateRouteAsync(
sourceToken,
destinationNetwork,
destinationToken,
request.RateProvider,
request.MinAmount,
request.MaxAmount,
request.Status,
request.IgnoreExpenseFee,
request.ServiceFee);
request);

return route is null
? Results.BadRequest("Failed to update route")
Expand Down
7 changes: 2 additions & 5 deletions csharp/src/AdminAPI/Endpoints/SignerAgentEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Common.Extensions;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -34,10 +34,7 @@ private static async Task<IResult> CreateAsync(
ISignerAgentRepository repository,
[FromBody] CreateSignerAgentRequest request)
{
var signerAgent = await repository.CreateAsync(
request.Name,
request.Url,
request.SupportedTypes);
var signerAgent = await repository.CreateAsync(request);

return signerAgent is null
? Results.BadRequest("Failed to create signer wallet")
Expand Down
16 changes: 0 additions & 16 deletions csharp/src/AdminAPI/Endpoints/SwapMetricEndpoints.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ public static class SwapMetricEndpoints
{
public static RouteGroupBuilder MapSwapMetricEndpoints(this RouteGroupBuilder group)
{
group.MapGet("/swap-metrics/totals", GetTotalVolumeAndProfitAsync)
.Produces<TotalSwapMetrics>();

group.MapGet("/swap-metrics/daily-volume", GetDailyVolumeAsync)
.Produces<List<TimeSeriesMetric<decimal>>>();

Expand All @@ -23,19 +20,6 @@ public static RouteGroupBuilder MapSwapMetricEndpoints(this RouteGroupBuilder gr
return group;
}

private static async Task<IResult> GetTotalVolumeAndProfitAsync(
ISwapMetricRepository repository,
[FromQuery] DateTime? startFrom)
{
var (volume, profit, count) = await repository.GetTotalVolumeAndProfitAsync(startFrom ?? DateTime.UtcNow.AddDays(-30));
return Results.Ok(new TotalSwapMetrics
{
TotalVolumeInUsd = volume,
TotalProfitInUsd = profit,
TotalCount = count
});
}

private static async Task<IResult> GetDailyVolumeAsync(
ISwapMetricRepository repository,
[FromQuery] DateTime? startFrom)
Expand Down
4 changes: 2 additions & 2 deletions csharp/src/AdminAPI/Endpoints/TokenPriceEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -31,7 +31,7 @@ private static async Task<IResult> CreateTokenPriceAsync(
ITokenPriceRepository repository,
CreateTokenPriceRequest request)
{
var tokenPrice = await repository.CreateAsync(request.Symbol, request.ExternalId);
var tokenPrice = await repository.CreateAsync(request);

return tokenPrice is null
? Results.BadRequest("Failed to create token price")
Expand Down
8 changes: 3 additions & 5 deletions csharp/src/AdminAPI/Endpoints/TrustedWalletEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Common.Extensions;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions.Models;
using Train.Solver.Infrastructure.Extensions;
Expand Down Expand Up @@ -43,9 +43,7 @@ private static async Task<IResult> CreateAsync(
[FromBody] CreateTrustedWalletRequest request)
{
var wallet = await repository.CreateAsync(
request.NetworkType,
request.Address,
request.Name);
request);

return wallet is null
? Results.BadRequest("Failed to create trusted wallet")
Expand All @@ -61,7 +59,7 @@ private static async Task<IResult> UpdateAsync(
var wallet = await repository.UpdateAsync(
networkType,
address,
request.Name);
request);

return wallet is null
? Results.NotFound($"Trusted wallet '{address}' not found on network '{networkType}'")
Expand Down
7 changes: 3 additions & 4 deletions csharp/src/AdminAPI/Endpoints/WalletEndpoints.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using Train.Solver.AdminAPI.Models;
using Train.Solver.Common.Enums;
using Train.Solver.Common.Extensions;
using Train.Solver.Data.Abstractions.Entities;
using Train.Solver.Data.Abstractions.Models;
using Train.Solver.Data.Abstractions.Repositories;
using Train.Solver.Infrastructure.Abstractions;
using Train.Solver.Infrastructure.Abstractions.Models;
Expand Down Expand Up @@ -56,7 +55,7 @@ private static async Task<IResult> CreateAsync(

var generatedAddress = await privateKeyProvider.GenerateAsync(signerAgent.Url, request.NetworkType);

var wallet = await repository.CreateAsync(request.SignerAgent, request.NetworkType, generatedAddress, request.Name);
var wallet = await repository.CreateAsync(generatedAddress, request);
return wallet is null
? Results.BadRequest("Could not create wallet")
: Results.Ok();
Expand All @@ -71,7 +70,7 @@ private static async Task<IResult> UpdateAsync(
var wallet = await repository.UpdateAsync(
networkType,
address,
request.Name);
request);

return wallet is null
? Results.NotFound($"Trusted wallet '{address}' not found on network '{networkType}'")
Expand Down
8 changes: 0 additions & 8 deletions csharp/src/AdminAPI/Models/TotalSwapMetrics.cs

This file was deleted.

Loading