Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
e84bb17
Refactor UserStatus component and integrate LoginDataCard
arentant Feb 4, 2026
82a11d3
Refactor padding in Modal and Swap components for consistency
arentant Feb 4, 2026
689999f
Enhance SwapForm layout with additional spacing
arentant Feb 4, 2026
4c11e6c
change the leaflet to vaul
yasha-meursault Feb 5, 2026
d870d33
Remove LoginModal and PasskeyChoice components
arentant Feb 5, 2026
b541b5d
additional fixes
yasha-meursault Feb 5, 2026
c4dbcfd
Merge pull request #46 from TrainProtocol/dev-vaul
arentant Feb 5, 2026
2b2d92b
Enhance UserStatus component with additional props and refactor Login…
arentant Feb 5, 2026
d0622ec
Merge branch 'main-v2' into FRONT-874
arentant Feb 5, 2026
ae4c61a
Merge pull request #45 from TrainProtocol/FRONT-874
arentant Feb 5, 2026
dfa48fd
bring the address class from Layerswap and implement it here
yasha-meursault Feb 5, 2026
a708eea
Merge remote-tracking branch 'origin/main-v2' into dev-address-class
yasha-meursault Feb 5, 2026
7ca8af3
fix build
yasha-meursault Feb 5, 2026
264ba5b
Update .gitignore and enhance PHTLC model with new properties
arentant Feb 6, 2026
0791ecb
Merge branch 'main-v2' into dev-contractInteractions
arentant Feb 6, 2026
0cdd5a5
fix headers height
yasha-meursault Feb 6, 2026
3c18be4
Add login modal store and integrate with UserStatus and FormButton co…
yasha-meursault Feb 7, 2026
9c487f4
Merge pull request #49 from TrainProtocol/dev-header-fix
arentant Feb 9, 2026
08a0c49
wallet signing try again logic
yasha-meursault Feb 9, 2026
b58b66f
Merge remote-tracking branch 'origin/main-v2' into dev-contractIntera…
arentant Feb 9, 2026
9f2ec32
small fixes
yasha-meursault Feb 9, 2026
00d21ea
meta fixes
yasha-meursault Feb 9, 2026
157cb1d
Update package.json and yarn.lock for new dependencies; refactor Netw…
arentant Feb 9, 2026
5701edb
Merge pull request #51 from TrainProtocol/dev-contractInteractions
arentant Feb 9, 2026
2ff827d
Merge branch 'main-v2' into dev-login-updates
yasha-meursault Feb 9, 2026
5aa1ada
Merge branch 'main-v2' into dev-address-class
yasha-meursault Feb 9, 2026
ea27a65
Refactor fee handling and remove FeeProvider context
arentant Feb 10, 2026
2c59311
Bring route picker and fee fetching mechanism from layerswap, resolv…
arentant Feb 10, 2026
eb26d46
Remove deprecated settings.json file from .claude directory
arentant Feb 10, 2026
4570504
Refactor FeeDetails component into QuoteDetails and enhance fee displ…
arentant Feb 10, 2026
217f323
fixes 2.0
yasha-meursault Feb 10, 2026
7bf0486
Update RouteSearch component background color for improved visibility
arentant Feb 10, 2026
ccec328
Fix logical condition in resolveMaxAllowedAmount function to ensure c…
arentant Feb 10, 2026
1986b8a
Refactor token logo handling in CurrencyFormField, RoutePicker, and C…
arentant Feb 10, 2026
9a9a55f
Merge pull request #52 from TrainProtocol/main-v2-feeChanges
arentant Feb 10, 2026
d653fc6
Merge branch 'main-v2' into dev-address-class
arentant Feb 10, 2026
af7d536
Merge pull request #48 from TrainProtocol/dev-address-class
arentant Feb 10, 2026
0c2383e
Merge branch 'main-v2' into dev-login-updates
arentant Feb 10, 2026
0bad7e3
Add ArbitrumSepolia and EthereumSepolia to KnownInternalNames class, …
arentant Feb 10, 2026
56b2ca5
Refactor explorer link handling in AddressNote, AddressWithIcon, Step…
yasha-meursault Feb 10, 2026
73f0048
Merge pull request #50 from TrainProtocol/dev-login-updates
arentant Feb 10, 2026
082ae48
fix selector trigger roundness
yasha-meursault Feb 10, 2026
c08c661
Refactor Balance and Wallet components to enhance error handling and …
arentant Feb 10, 2026
2db37ec
Merge branch 'main-v2' into dev-explorer-templates
arentant Feb 10, 2026
0de9908
Merge pull request #53 from TrainProtocol/dev-explorer-templates
arentant Feb 10, 2026
37c76ab
Merge pull request #54 from TrainProtocol/dev-roundness-fix
arentant Feb 10, 2026
6465e4b
Add next best practices, fix navigation styles and fix popover not be…
yasha-meursault Feb 11, 2026
41c4b05
fixes
yasha-meursault Feb 11, 2026
8124468
Refactor LayerSwap models to Train models, removing LayerSwapAppSetti…
arentant Feb 11, 2026
1702e16
Refactor VaulModal and SummaryRow components for improved structure a…
yasha-meursault Feb 11, 2026
36e8c7b
Refactor WalletProvider and PHTLC models to enhance functionality and…
arentant Feb 11, 2026
4fd5a99
Merge pull request #56 from TrainProtocol/dev-vaul-fixes
arentant Feb 11, 2026
2b5cfe1
Merge branch 'main-v2' into dev-navigation
arentant Feb 11, 2026
21a20d2
Merge pull request #55 from TrainProtocol/dev-navigation
arentant Feb 11, 2026
f99f635
Refactor atomic context to replace CommitStatus with HTLCStatus for i…
arentant Feb 12, 2026
8b4813c
Add priceInUsd field to mockData for ETH in getSettings helper
arentant Feb 12, 2026
039988e
Refactor WalletProvider and PHTLC models to replace Commit with LockD…
arentant Feb 12, 2026
17befc4
fix amount issue in the summary
yasha-meursault Feb 12, 2026
9fd9b0b
Refactor atomic swap management by introducing Zustand store for swap…
yasha-meursault Feb 13, 2026
048642b
small fixes
yasha-meursault Feb 13, 2026
b30a04c
vaul modal height fix
yasha-meursault Feb 13, 2026
257ab8c
Enhance Network and WalletProvider models by adding caip2Id and updat…
arentant Feb 13, 2026
4c851f5
Merge remote-tracking branch 'origin/main-v2' into dev-amount-issues
yasha-meursault Feb 13, 2026
8d03a3c
Refactor swap management by integrating Zustand store for temp and co…
yasha-meursault Feb 13, 2026
1b7c881
remove useeffect
yasha-meursault Feb 13, 2026
c3ba6a5
remove unused parts
yasha-meursault Feb 13, 2026
cbfc698
Refactor AtomicChat components to enhance user experience and streaml…
arentant Feb 13, 2026
97bc8a7
Merge branch 'main-v2' into dev-amount-issues
arentant Feb 13, 2026
2602a7c
Refactor swap data structure to use 'requestedAmount' instead of 'amo…
yasha-meursault Feb 13, 2026
9a6be24
Refactor RoutePicker and RouteSearch components to improve search fun…
yasha-meursault Feb 13, 2026
35ba0ed
Add destinationAmount and timelockDelta to CreateHTLCParams and updat…
arentant Feb 13, 2026
0e9acd2
Refactor swap modal state initialization and update hashlock handling…
yasha-meursault Feb 13, 2026
11ef2cd
Merge pull request #58 from TrainProtocol/dev-search-updates
arentant Feb 16, 2026
1d83950
Merge pull request #57 from TrainProtocol/dev-amount-issues
arentant Feb 16, 2026
1d88f24
Enhance LayerswapMenu with ToggleItem component for auto-reveal funct…
arentant Feb 16, 2026
91d7feb
Enhance HTLC functionality by adding txId to LockParams and updating …
arentant Feb 16, 2026
80ea50b
Refactor WalletActionButton to utilize ActionWrapper for improved str…
arentant Feb 17, 2026
c7bb005
Refactor atomic context and related components to replace 'updateComm…
arentant Feb 17, 2026
ee591aa
Refactor AtomicChat actions to streamline state management and improv…
arentant Feb 17, 2026
91f1acb
Remove unused secret derivation context from AtomicChat component and…
arentant Feb 17, 2026
8b5aa9d
Refactor UserStatus and LoginModal components to enhance passkey mana…
arentant Feb 17, 2026
af3d133
Refactor UserStatus and LoginModal components to streamline passkey m…
arentant Feb 18, 2026
0b9d2f2
Refactor project to transition from Layerswap to Train branding. Upda…
arentant Feb 18, 2026
00e1b27
Refactor SecretDerivation and Swap components to replace CommitTransa…
arentant Feb 18, 2026
c50c357
Merge branch 'main-v2' into passkey-improvements
arentant Feb 18, 2026
94872a6
fix build
arentant Feb 18, 2026
b1ebc04
Merge branch 'main-v2' into passkey-improvements
arentant Feb 18, 2026
3f2a4df
Enhance passkey login flow with detailed UX steps and options. Introd…
arentant Feb 18, 2026
9503182
Remove ImmutableX support from the project, including related compone…
arentant Feb 18, 2026
08972d9
Update receiveAmount formatting in Swap component to use formatUnits …
arentant Feb 18, 2026
7ff5ec1
Refactor VaulDrawer exit animation for immediate closure and update C…
yasha-meursault Feb 19, 2026
15e648a
remove unnecessary code
yasha-meursault Feb 19, 2026
0ea19a0
Refactor action components to accept 'type' prop for improved styling…
arentant Feb 19, 2026
5dd18c2
Refactor action components to utilize SwapViewType for 'type' prop, e…
arentant Feb 19, 2026
ba24210
Merge pull request #60 from TrainProtocol/dev-vaul-animations
arentant Feb 19, 2026
ff870e5
Update TrainLogoSymbol size in LoadingConnect component for consisten…
arentant Feb 19, 2026
112be50
Add PendingSwap component to Navbar and HeaderWithMenu for improved u…
arentant Feb 19, 2026
e58a023
Refactor balance providers to enhance structure and functionality; ad…
yasha-meursault Feb 19, 2026
33801a0
Refactor imports in Amount, ReceiveAmount, and Routes components for …
yasha-meursault Feb 19, 2026
a4f8ee7
Refactor PendingSwap and Atomic components to improve state managemen…
arentant Feb 19, 2026
9f3d357
Merge remote-tracking branch 'origin/main-v2' into dev-balance
yasha-meursault Feb 19, 2026
c0c0fd1
Refactor network handling across components to utilize caip2Id instea…
arentant Feb 19, 2026
952bdb4
Refactor AtomicProvider to enhance event handling and state managemen…
arentant Feb 20, 2026
3837ccb
Merge branch 'main-v2' into dev-balance
arentant Feb 20, 2026
63854dd
fix build
arentant Feb 20, 2026
5a35fce
Update package dependencies and refactor AtomicProvider to streamline…
arentant Feb 20, 2026
557da41
Merge remote-tracking branch 'origin/main-v2' into dev-balance
yasha-meursault Feb 21, 2026
4a1a004
Add GetPricesAsync method to TrainApiClient and update getServerSideP…
yasha-meursault Feb 21, 2026
6a6f1e2
Enhance PendingSwap and RecoverSwap components by adding router path …
arentant Feb 21, 2026
968ec1c
Refactor NetworkTokenTitle to display USD amount conditionally with i…
yasha-meursault Feb 21, 2026
c33886e
Refactor Network model to replace logo property with logoUrl and intr…
arentant Feb 21, 2026
12206db
Merge branch 'main-v2' into dev-balance
arentant Feb 21, 2026
ab7e486
Update SelectItem component to set a fixed height for improved layout…
arentant Feb 21, 2026
512c15e
Refactor EVMLightClient and worker scripts to replace commit handling…
arentant Feb 21, 2026
926ee60
Add Balance component to display token balance and insufficient balan…
yasha-meursault Feb 21, 2026
df5ed84
Refactor imports across components to use absolute paths; introduce H…
yasha-meursault Feb 21, 2026
2aaa2ae
Merge pull request #61 from TrainProtocol/dev-balance
arentant Feb 21, 2026
82625d5
Update Aztec dependencies to version 4.0.0-devnet.2-patch.0, remove d…
arentant Feb 23, 2026
54feebd
Bring gas fetching system to TRAIN, resolves FRONT-875
arentant Feb 23, 2026
1b6cc39
Merge remote-tracking branch 'origin/main-v2' into dev-history
yasha-meursault Feb 23, 2026
f33684e
Add CircleCheckIcon component and integrate it into StatusIcons for i…
yasha-meursault Feb 23, 2026
bfc774a
Enhance SwapHistory and StatusIcons components with improved status h…
yasha-meursault Feb 23, 2026
90e3520
Refactor HTLCStatus handling and improve SwapHistory components with …
yasha-meursault Feb 24, 2026
8c00be8
Add blockTimestamp to SwapData and update related components for impr…
yasha-meursault Feb 24, 2026
788a3d5
Solver lock verification
arentant Feb 24, 2026
607555a
Remove unused setActiveHashlock from atomicContext to streamline stat…
arentant Feb 24, 2026
171dfc7
Refactor AtomicProvider to enhance hashlock handling and update polli…
arentant Feb 24, 2026
2922d41
Refactor SwapHistory and SwapDetailsPanel components to improve date …
arentant Feb 24, 2026
2a7931e
Merge branch 'main-v2' into dev-history
arentant Feb 24, 2026
2d108e6
Merge pull request #62 from TrainProtocol/dev-history
arentant Feb 25, 2026
92925cf
fix issues with History
yasha-meursault Feb 25, 2026
2dd19c9
fix issue with seconds
yasha-meursault Feb 25, 2026
fbe9da3
fix 2
yasha-meursault Feb 25, 2026
df0854d
Refactor PulsatingCircles context to use a store pattern, removing th…
arentant Feb 25, 2026
08424ae
Enhance navigatable list functionality by adding version control for …
yasha-meursault Feb 25, 2026
8220c54
Refactor order handling by replacing useOrderPolling with useOrderStr…
yasha-meursault Feb 25, 2026
f143130
Merge pull request #63 from TrainProtocol/dev-history-fixes
arentant Feb 25, 2026
0ff4c87
Enhance order streaming functionality by adding transaction event han…
yasha-meursault Feb 25, 2026
4d7ec62
Refactor network handling in transaction data structures to use netwo…
arentant Feb 26, 2026
4b6caa7
Update AtomicProvider and HTLCFromApi to use networkId instead of net…
arentant Feb 26, 2026
65e9ec8
Refactor SwapHistory to improve ongoing swap handling and update comp…
yasha-meursault Feb 26, 2026
3206f2c
Merge remote-tracking branch 'origin/main-v2' into dev-order-stream
yasha-meursault Feb 26, 2026
930442a
Update order streaming and API types to include network information f…
yasha-meursault Feb 26, 2026
a9921bf
Monorepo initial implementation
arentant Feb 26, 2026
3a644b9
Merge pull request #64 from TrainProtocol/dev-picker-fixes
arentant Feb 26, 2026
f062a85
Merge branch 'main-v2' into main-v2-monorepo
arentant Feb 27, 2026
006e480
Update configuration files and dependencies; refactor fee calculation…
arentant Feb 27, 2026
c38ae3d
Merge pull request #65 from TrainProtocol/dev-order-stream
arentant Feb 27, 2026
6e6aa98
Merge pull request #66 from TrainProtocol/dev-ongoing-transactions
arentant Feb 27, 2026
b6a98b4
Merge remote-tracking branch 'origin/main-v2' into main-v2-monorepo
arentant Feb 27, 2026
ad81791
Update Vercel configuration to use pnpm for installation and building…
arentant Feb 27, 2026
bd9dbed
Merge pull request #68 from TrainProtocol/main-v2-monorepo
arentant Feb 27, 2026
59baf40
Enhance UserActions component by integrating selected account handlin…
arentant Feb 27, 2026
94a97aa
Add missing error handlings for provider and client creation in UserA…
yasha-meursault Feb 27, 2026
9b7a304
aztec wallet changes
arentant Feb 27, 2026
600aa47
Refactor AtomicPage import to use static import instead of dynamic lo…
yasha-meursault Feb 27, 2026
1b3671d
fix alias paths
arentant Feb 27, 2026
e092344
Merge branch 'main-v2' into dev-v2-switch-chain
arentant Feb 27, 2026
c55ade0
Merge pull request #69 from TrainProtocol/dev-v2-switch-chain
arentant Feb 27, 2026
e8f43ad
Fix build
yasha-meursault Feb 27, 2026
2b4ae66
Add @train-protocol/sdk-evm package and integrate HTLC client for EVM…
arentant Feb 27, 2026
d1d2727
Refactor EvmHTLCClient to improve type safety with Hex type and strea…
arentant Feb 27, 2026
4f79415
Merge branch 'main-v2' into main-v2-evm-sdk
arentant Feb 27, 2026
11c99cc
Update package.json to specify sideEffects for ESM build, ensuring pr…
arentant Feb 27, 2026
6e80bc0
Merge pull request #70 from TrainProtocol/main-v2-evm-sdk
arentant Feb 27, 2026
05a3965
Replace implicit @train-protocol/sdk-evm side-effect registration wit…
arentant Feb 28, 2026
079e2b7
Merge pull request #71 from TrainProtocol/arentant/explicit-evm-sdk-init
arentant Feb 28, 2026
129973c
Update dependencies in pnpm-lock.yaml and package.json for @azguardwa…
arentant Feb 28, 2026
c90a16a
Merge pull request #73 from TrainProtocol/arentant/fix-azguard-detection
arentant Feb 28, 2026
31dded9
Refactor feedback feature: replace Popover with VaulDrawer for sugges…
yasha-meursault Feb 28, 2026
69038ad
Merge pull request #74 from TrainProtocol/dev-v2-menu-fixes
arentant Feb 28, 2026
8e96b80
Update Aztec SDK dependencies and configuration
arentant Feb 28, 2026
6014383
Merge branch 'main-v2' into arentant/aztec-mock-data
arentant Mar 2, 2026
bce01df
Update Aztec testnet configuration in getSettings.ts and modify mock …
arentant Mar 2, 2026
d850c4f
Remove unused build script for React in package.json, update mock con…
arentant Mar 2, 2026
f9d8763
Add Aztec balance fetching via direct public storage queries
yasha-meursault Mar 2, 2026
a625d2d
Move Aztec balance fetching from sdk-aztec into the app
yasha-meursault Mar 2, 2026
26ff374
Enhance project configuration and clean up code
arentant Mar 2, 2026
b4ee95b
Merge branch 'arentant/aztec-mock-data' into aztec-mock-data-balances
arentant Mar 2, 2026
60930fd
Merge pull request #76 from TrainProtocol/aztec-mock-data-balances
arentant Mar 2, 2026
6787ee1
Implement USD mode support across Amount components and related hooks…
yasha-meursault Mar 2, 2026
0f89ca3
Fix EVM chain switch race condition for contract calls
arentant Mar 2, 2026
1a1ebc4
Merge pull request #78 from TrainProtocol/arentant/fix-switch-chain-race
arentant Mar 2, 2026
9fb3d63
Merge pull request #77 from TrainProtocol/main-amount-switch
arentant Mar 2, 2026
281db77
Add Aztec wallet login support alongside EVM wallets
yasha-meursault Mar 2, 2026
3844581
Refactor HTLC client integration and update user actions
arentant Mar 2, 2026
964f280
Implement unified wallet login support and refactor Aztec wallet key …
yasha-meursault Mar 3, 2026
54a61bf
Refactor solver lock verification logic to utilize verifySolverLock f…
arentant Mar 3, 2026
08aad24
Remove CommitDetailsComponent, CommitmentsHistory index, and StatusIc…
arentant Mar 3, 2026
1ef214f
Merge branch 'main-v2' into arentant/aztec-mock-data
arentant Mar 3, 2026
3fc62e8
Refactor Aztec HTLC client and SDK integration
arentant Mar 3, 2026
87128a5
Extract wallet login derivation into WalletLoginContext and rename EV…
yasha-meursault Mar 3, 2026
2d55849
small improv
yasha-meursault Mar 3, 2026
3cafcba
Merge remote-tracking branch 'origin/arentant/aztec-mock-data' into a…
yasha-meursault Mar 3, 2026
e780a4c
Refactor getSolverLockDetails with multi-node verification
yasha-meursault Mar 3, 2026
4843e7d
Update Aztec network references and improve component structure
arentant Mar 3, 2026
f5b937e
Refactor wallet login context to use unified key derivation method
arentant Mar 3, 2026
f57e4d7
fix build
arentant Mar 3, 2026
58cba4a
Merge pull request #79 from TrainProtocol/aztec-wallet-login
arentant Mar 3, 2026
5e4291c
Merge pull request #75 from TrainProtocol/arentant/aztec-mock-data
arentant Mar 3, 2026
6839e3c
Merge branch 'main-v2' into secure-solver-lock-details
arentant Mar 3, 2026
5c367eb
Add useRpcConfigStore to AtomicProvider for effective RPC URL management
arentant Mar 3, 2026
2a24919
Add AztecDevnet settings to NetworkSettings
arentant Mar 4, 2026
be44297
Add logoUrl to AztecDevnet settings
arentant Mar 4, 2026
44db838
Enhance HTLC functionality with solver address integration
arentant Mar 4, 2026
d877f1a
Update timeout duration for HTLC state update in AtomicProvider
arentant Mar 4, 2026
77ab235
temp login fix
arentant Mar 4, 2026
4de70bb
Update Aztec Wallet SDK integration and migration documentation
arentant Mar 4, 2026
a9d79a6
Enhance Aztec Wallet SDK integration and improve atomic swap function…
arentant Mar 5, 2026
7baed84
Refactor Train Protocol SDK integration and update package structure
arentant Mar 5, 2026
a7bd98b
Refactor Train Protocol SDK integration and enhance blockchain support
arentant Mar 5, 2026
045d3f9
Merge pull request #80 from TrainProtocol/secure-solver-lock-details
arentant Mar 5, 2026
257c30a
Refactor HTLCClient methods for improved clarity and functionality
arentant Mar 5, 2026
ce31bb7
Refactor WalletModal components for improved QR code handling and con…
arentant Mar 5, 2026
76002f8
Remove default token decimals from IntegrationRules.md and update Azt…
arentant Mar 5, 2026
671de27
Starknet initial implementation
arentant Mar 5, 2026
7d8bcca
fix build
arentant Mar 5, 2026
943cfae
feat: add Solana blockchain support with HTLC client and wallet integ…
yasha-meursault Mar 5, 2026
9d2c0d6
Refactor Swap components and enhance Starknet integration
arentant Mar 6, 2026
8926525
Merge pull request #81 from TrainProtocol/main-v2-add-starknet
arentant Mar 6, 2026
3958801
Implement Starknet gas estimation in StarknetGasProvider
arentant Mar 6, 2026
1d51485
refactor: streamline refund process in SolanaHTLCClient by replacing …
yasha-meursault Mar 6, 2026
440d68c
Merge remote-tracking branch 'origin/main-v2' into dev-solana
yasha-meursault Mar 6, 2026
54723a3
refactor: enhance Solana gas estimation and streamline HTLC client me…
yasha-meursault Mar 6, 2026
f2a065f
feat: implement Solana wallet login integration and add tests for HTL…
yasha-meursault Mar 6, 2026
741ff08
refactor: update provider identifier from id to name across wallet co…
yasha-meursault Mar 6, 2026
2acf732
fix: unify connector providerName to provider.name and harden Solana …
yasha-meursault Mar 6, 2026
656c893
Enforce type safety in HTLC and wallet sign registries using declarat…
babkenmes Mar 6, 2026
72d8876
fix: harden Solana HTLC signer — use adapter.sendTransaction directly…
yasha-meursault Mar 9, 2026
cdb74e4
refactor(solana): harden wallet integration and extract transaction b…
yasha-meursault Mar 9, 2026
4e6a1d9
fixes
yasha-meursault Mar 9, 2026
98f61c8
remove unused metadata
yasha-meursault Mar 9, 2026
25fe634
Refactor EvmHTLCClient userLock method for improved parameter handling
arentant Mar 10, 2026
2b7ef87
Refactor EvmHTLCClient userLock method to streamline parameter usage
arentant Mar 10, 2026
8bf21d2
Merge branch 'main-v2' into dev-solana
arentant Mar 10, 2026
54965cc
refactor(solana): enhance return structure in SolanaHTLCClient
arentant Mar 10, 2026
37be2fb
refactor(walletLoginContext): streamline Solana wallet message signing
arentant Mar 10, 2026
45152cc
chore(dependencies): update package versions and switch to catalog re…
arentant Mar 10, 2026
7f91685
Merge pull request #82 from TrainProtocol/dev-solana
arentant Mar 10, 2026
d9f6305
update pnpm-lock
arentant Mar 10, 2026
5e79882
refactor(EvmHTLCClient): move waitForReceipt logic into the class
arentant Mar 10, 2026
710b5e0
update CLAUDE.md to refine lint command and enhance documentation
arentant Mar 10, 2026
dc075f0
Merge branch 'main-v2' into feature/type-safe-registry
arentant Mar 10, 2026
56baa77
refactor(solana): simplify Solana SDK registration and type definitions
arentant Mar 10, 2026
9b15690
update integration rules
arentant Mar 10, 2026
b7e23f9
Merge pull request #83 from TrainProtocol/feature/type-safe-registry
arentant Mar 10, 2026
ef0c551
Enhance user lock polling logic to stop polling when the lock status …
arentant Mar 10, 2026
0998087
Replace continuous router.query.hashlock fallback with a one-time
yasha-meursault Mar 10, 2026
e2ed850
Merge pull request #85 from TrainProtocol/dev-modal-fix
arentant Mar 10, 2026
c93946a
Update SolanaDevnet configuration in getSettings and knownIds
arentant Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
77 changes: 77 additions & 0 deletions .cursor/commands/reviewchanges.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# reviewchanges

Review all changes in the current branch compared to the dev branch using specialized subagents.

## What You Get

A comprehensive `pr-review-report.md` with:
- **TL;DR section** with verdict and action items upfront
- **Effort estimates** for each fix (helps prioritize)
- **Blocking vs non-blocking** classification
- **Copy-paste ready code fixes**
- **Single-location findings** (no duplicate issues across sections)

## Available Review Options

### Option 1: Comprehensive Multi-Perspective Review (Recommended)
Uses the **PR Review Coordinator** that runs 6 specialized subagents in parallel:

- **Architecture Review**: Design patterns, SOLID principles, modularity, separation of concerns
- **Bug Detection**: Edge cases, null checks, race conditions, error handling, cross-file impact
- **Performance Analysis**: N+1 queries, memory leaks, inefficient loops, caching opportunities
- **Code Quality**: Naming, readability, DRY violations, comments, maintainability
- **React Patterns**: Hooks usage, re-renders, state management, component patterns, a11y
- **Security Review**: Auth issues, XSS, injection, secrets exposure, CORS

Best for: Thorough, multi-dimensional code reviews before merging

### Option 2: Single Specialist Review
Uses the **PR Reviewer** for focused, faster reviews

Best for: Quick reviews or when you need a specific perspective

### Option 3: Codebase Exploration
Uses the **Explore Agent** to understand code structure and patterns

Best for: Onboarding, understanding existing patterns, or architectural questions

### Option 4: General Purpose
Uses the **General Purpose Agent** for complex multi-step analysis

Best for: Custom analysis or research questions about the codebase

## How to Use

Ask for a review using the command, specifying which type you want:
- `/reviewchanges comprehensive` - Full multi-perspective review (default)
- `/reviewchanges quick` - Single specialist review
- `/reviewchanges explore` - Codebase exploration
- `/reviewchanges general` - General purpose analysis

All reviews automatically compare your current branch against the dev branch.

## Report Format

The comprehensive review produces a report structured for actionability:

```
# PR Review: [branch] → [base]

## TL;DR
Verdict + action items table with effort estimates

## What This PR Does
Brief description

## Breaking Changes
Checklist

## Detailed Findings
Each issue once, numbered for reference

## File Summary
Quick navigation table

## Review Checklist
Single scannable checklist
```
306 changes: 306 additions & 0 deletions .cursor/skills/code-review/SKILL.md

Large diffs are not rendered by default.

153 changes: 153 additions & 0 deletions .cursor/skills/next-best-practices/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
---
name: next-best-practices
description: Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
user-invocable: false
---

# Next.js Best Practices

Apply these rules when writing or reviewing Next.js code.

## File Conventions

See [file-conventions.md](./file-conventions.md) for:
- Project structure and special files
- Route segments (dynamic, catch-all, groups)
- Parallel and intercepting routes
- Middleware rename in v16 (middleware → proxy)

## RSC Boundaries

Detect invalid React Server Component patterns.

See [rsc-boundaries.md](./rsc-boundaries.md) for:
- Async client component detection (invalid)
- Non-serializable props detection
- Server Action exceptions

## Async Patterns

Next.js 15+ async API changes.

See [async-patterns.md](./async-patterns.md) for:
- Async `params` and `searchParams`
- Async `cookies()` and `headers()`
- Migration codemod

## Runtime Selection

See [runtime-selection.md](./runtime-selection.md) for:
- Default to Node.js runtime
- When Edge runtime is appropriate

## Directives

See [directives.md](./directives.md) for:
- `'use client'`, `'use server'` (React)
- `'use cache'` (Next.js)

## Functions

See [functions.md](./functions.md) for:
- Navigation hooks: `useRouter`, `usePathname`, `useSearchParams`, `useParams`
- Server functions: `cookies`, `headers`, `draftMode`, `after`
- Generate functions: `generateStaticParams`, `generateMetadata`

## Error Handling

See [error-handling.md](./error-handling.md) for:
- `error.tsx`, `global-error.tsx`, `not-found.tsx`
- `redirect`, `permanentRedirect`, `notFound`
- `forbidden`, `unauthorized` (auth errors)
- `unstable_rethrow` for catch blocks

## Data Patterns

See [data-patterns.md](./data-patterns.md) for:
- Server Components vs Server Actions vs Route Handlers
- Avoiding data waterfalls (`Promise.all`, Suspense, preload)
- Client component data fetching

## Route Handlers

See [route-handlers.md](./route-handlers.md) for:
- `route.ts` basics
- GET handler conflicts with `page.tsx`
- Environment behavior (no React DOM)
- When to use vs Server Actions

## Metadata & OG Images

See [metadata.md](./metadata.md) for:
- Static and dynamic metadata
- `generateMetadata` function
- OG image generation with `next/og`
- File-based metadata conventions

## Image Optimization

See [image.md](./image.md) for:
- Always use `next/image` over `<img>`
- Remote images configuration
- Responsive `sizes` attribute
- Blur placeholders
- Priority loading for LCP

## Font Optimization

See [font.md](./font.md) for:
- `next/font` setup
- Google Fonts, local fonts
- Tailwind CSS integration
- Preloading subsets

## Bundling

See [bundling.md](./bundling.md) for:
- Server-incompatible packages
- CSS imports (not link tags)
- Polyfills (already included)
- ESM/CommonJS issues
- Bundle analysis

## Scripts

See [scripts.md](./scripts.md) for:
- `next/script` vs native script tags
- Inline scripts need `id`
- Loading strategies
- Google Analytics with `@next/third-parties`

## Hydration Errors

See [hydration-error.md](./hydration-error.md) for:
- Common causes (browser APIs, dates, invalid HTML)
- Debugging with error overlay
- Fixes for each cause

## Suspense Boundaries

See [suspense-boundaries.md](./suspense-boundaries.md) for:
- CSR bailout with `useSearchParams` and `usePathname`
- Which hooks require Suspense boundaries

## Parallel & Intercepting Routes

See [parallel-routes.md](./parallel-routes.md) for:
- Modal patterns with `@slot` and `(.)` interceptors
- `default.tsx` for fallbacks
- Closing modals correctly with `router.back()`

## Self-Hosting

See [self-hosting.md](./self-hosting.md) for:
- `output: 'standalone'` for Docker
- Cache handlers for multi-instance ISR
- What works vs needs extra setup

## Debug Tricks

See [debug-tricks.md](./debug-tricks.md) for:
- MCP endpoint for AI-assisted debugging
- Rebuild specific routes with `--debug-build-paths`

87 changes: 87 additions & 0 deletions .cursor/skills/next-best-practices/async-patterns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Async Patterns

In Next.js 15+, `params`, `searchParams`, `cookies()`, and `headers()` are asynchronous.

## Async Params and SearchParams

Always type them as `Promise<...>` and await them.

### Pages and Layouts

```tsx
type Props = { params: Promise<{ slug: string }> }

export default async function Page({ params }: Props) {
const { slug } = await params
}
```

### Route Handlers

```tsx
export async function GET(
request: Request,
{ params }: { params: Promise<{ id: string }> }
) {
const { id } = await params
}
```

### SearchParams

```tsx
type Props = {
params: Promise<{ slug: string }>
searchParams: Promise<{ query?: string }>
}

export default async function Page({ params, searchParams }: Props) {
const { slug } = await params
const { query } = await searchParams
}
```

### Synchronous Components

Use `React.use()` for non-async components:

```tsx
import { use } from 'react'

type Props = { params: Promise<{ slug: string }> }

export default function Page({ params }: Props) {
const { slug } = use(params)
}
```

### generateMetadata

```tsx
type Props = { params: Promise<{ slug: string }> }

export async function generateMetadata({ params }: Props): Promise<Metadata> {
const { slug } = await params
return { title: slug }
}
```

## Async Cookies and Headers

```tsx
import { cookies, headers } from 'next/headers'

export default async function Page() {
const cookieStore = await cookies()
const headersList = await headers()

const theme = cookieStore.get('theme')
const userAgent = headersList.get('user-agent')
}
```

## Migration Codemod

```bash
npx @next/codemod@latest next-async-request-api .
```
Loading