Aztec testnet integration#159
Merged
Martin9204 merged 3 commits intodevfrom Apr 27, 2026
Merged
Conversation
- New self-contained Aztec testnet gRPC service (js-aztec-testnet/) implementing all NetworkService RPCs against the testnet SDK (@aztec/* 4.1.0-rc.2). Reuses the architectural pattern of Network.Starknet.Grpc: GrpcConfigClient/GrpcEventCollectorClient bridge to Core.Grpc, background TP + RPC log listener + GasStation workers, Redis-backed state. - Unified SubmitTransaction handler with payload oneof (lock/redeem /refund/transfer/custom) replacing legacy per-type RPCs. Routing for solverRedeem/userRedeem matches EVM's actor-based proto convention against Aztec's function-name-based builders. - New Dockerfile.aztec-testnet-grpc (Node 22, two-stage); AppHost wires the container with TrainSolver__NetworkType=aztec, ChainId=4138294185, Core.Grpc URL, Redis, KV. - EF migration 20260418104231_AddAztecTestnetNetwork seeds the aztec-testnet network, token, contract addresses, listener config, and routes. - Per-environment Aztec ABIs split (devnet vs testnet) replacing the single Train.aztec.abi.json. AdminPanel ships matching ABIs in wwwroot/abis/ for browser-side Bridge interactions. - EVM dev-mode local signing: EmulatedAzureKeyVaultSigner + EmulatedKVTokenCredential + LocalKeySigningService allow dev environments without a real Azure KV. - AdminPanel Bridge updates for Aztec wallet flows (Azguard/Aztec testnet) and refreshed bridge.js helpers. - Bumped Network.Common, Network.EVM.Grpc, Core.Grpc references and Workflow.Tests mocks to align with the unified service contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- WalletEndpoints.CreateAsync now resolves the target network from
request.NetworkSlug when set (the user's "Network Scope" UI choice),
falling back to first-of-type only when scope is empty. Previously
it ignored the scope and always picked the first network of the
given type, which routed Aztec wallet creation to aztec-devnet
(which has no gRPC endpoint) instead of aztec-testnet.
- Aztec gRPC service now generates addresses natively using KV instead
of calling a non-existent treasury HTTP endpoint. The handler reads
the wallet slug from GenerateAddressRequest, generates fresh
privateKey/salt/signingKey, derives the account address with the
testnet SDK, and persists all three secrets to KV under the slug
via a new AzureKeyVaultKeyStore.storeKeysBySlug helper. Removes the
axios.post(`${treasuryUrl}/aztec/generate`) path that produced
"Invalid URL" when no treasury was configured.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the starknet.yml pattern: a single build-and-push job that delegates to the shared docker composite action. Watches paths under js-aztec-testnet/, the Dockerfile.aztec-testnet-grpc at repo root, and shared protos/ + the workflow itself. Triggers on PR / push to main and dev, manual dispatch, and release events. Image name: trainprotocol/solver-aztec-testnet-grpc. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
js-aztec-testnet/) implementing allNetworkServiceRPCs against the Aztec testnet SDK (@aztec/* 4.1.0-rc.2). Mirrors the architectural pattern ofNetwork.Starknet.Grpc:GrpcConfigClient/GrpcEventCollectorClientbridge toCore.Grpc, background TP + RPC log event listener + GasStation workers, Redis-backed state, no Temporal dependency.SubmitTransactionRPC handler with apayloadoneof (lock/redeem/refund/transfer/custom) replacing the legacy per-type RPCs.solverRedeem/userRedeemrouting matches the EVM service's actor-based proto convention against Aztec's function-name-based contract builders.Dockerfile.aztec-testnet-grpc(Node 22, two-stage). AppHost wires the container withTrainSolver__NetworkType=aztec,ChainId=4138294185, Core.Grpc URL, Redis, Azure KV.20260418104231_AddAztecTestnetNetworkseeds the aztec-testnet network, native ETH token (Wonderland), Train contract, listener config, and routes.Train.aztec.abi.json. AdminPanel ships matching ABIs inwwwroot/abis/for browser-side Bridge UI interactions.EmulatedAzureKeyVaultSigner+EmulatedKVTokenCredential+LocalKeySigningServiceso dev environments can run without a real Azure KV.bridge.jshelpers.Network.Common,Network.EVM.Grpc,Core.Grpcreferences andWorkflow.Testsmocks to align with the unified service contract.Manual setup required after merge
AppHost.cs:13):docker build -t train-solver/aztec-testnet-grpc:local -f Dockerfile.aztec-testnet-grpc .Enabled=false:Test plan
dotnet build csharp/TrainSolver.slnxnetwork-aztec-testnet-grpccontainer comes up healthyEventListenerConfigs🤖 Generated with Claude Code