Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
348 commits
Select commit Hold shift + click to select a range
96cc313
feat: add support for signMessage event in StorageEventStore
nikdim03 Mar 24, 2026
6c568c0
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 24, 2026
4e4f2f9
fix: update address validation to use isValidAddress function
nikdim03 Mar 25, 2026
bcdc941
fix: handle address parsing errors in WalletV4R2 and WalletV5R1 adapters
nikdim03 Mar 25, 2026
f31c612
refactor: remove unused transaction preview logic in SignMessageHandler
nikdim03 Mar 25, 2026
7d6955d
fix: update address validation to use isValidAddress function
nikdim03 Mar 25, 2026
db92ce1
fix: handle address parsing errors in WalletV4R2 and WalletV5R1 adapters
nikdim03 Mar 25, 2026
bfb1a23
refactor: remove unused transaction preview logic in SignMessageHandler
nikdim03 Mar 25, 2026
5bff9d0
refactor: update type annotations to use 'unknown' for network and va…
nikdim03 Mar 25, 2026
5759993
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
ec53024
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
24beb99
refactor: enhance transaction message validation to support optional …
nikdim03 Mar 25, 2026
b78ba80
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
7971595
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
323f8b6
refactor: replace 'any' type with 'unknown' in transaction validation…
nikdim03 Mar 25, 2026
588af10
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
6d0e82b
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 25, 2026
484f0fb
fix: add MSW
nikdim03 Mar 25, 2026
bab6cb0
fix: update demo handler action type and simplify response structure
nikdim03 Mar 25, 2026
ab56268
feat(appkit): start input component
heyllog Mar 25, 2026
9c9baa1
feat(appkit): add fonts from figma
heyllog Mar 25, 2026
709e920
feat(appkit): add colors from figma
heyllog Mar 25, 2026
54fc8a1
fix: add missing newline in browser.ts for code consistency
nikdim03 Mar 25, 2026
506e0a4
feat(appkit): add new button styles
heyllog Mar 25, 2026
bb19fcc
fix: handle MSW initialization failure gracefully in main.tsx
nikdim03 Mar 25, 2026
96c90f9
fix: add timeout to fetch manifest request in ConnectHandler
nikdim03 Mar 25, 2026
dccd4de
fix: enhance SignMessageRequestModal with loading state and success f…
nikdim03 Mar 26, 2026
7504086
fix: improve message display layout in SignMessageRequestModal
nikdim03 Mar 26, 2026
9c577a0
fix: fix lint
nikdim03 Mar 26, 2026
74cca54
feat(swap): add initial swap UI
heyllog Mar 26, 2026
2335641
feat(appkit): start modal component
heyllog Mar 26, 2026
13ce447
feat(appkit): start reworking storybook
heyllog Mar 26, 2026
451f127
feat(storybook): rework storybook theme
heyllog Mar 26, 2026
c4dcbfc
refactor: update device info to include all wallet-supported features
nikdim03 Mar 27, 2026
b593da3
chore: remove MSW
nikdim03 Mar 27, 2026
215a329
fix: mark several dependencies as optional in pnpm-lock.yaml
nikdim03 Mar 27, 2026
79aee43
refactor: update device info to include all wallet-supported features
nikdim03 Mar 27, 2026
e57dfd8
feat: enhance supported features in WalletV4R2 and WalletV5R1 adapters
nikdim03 Mar 27, 2026
41b7741
feat: add support for signMessage action in IntentParser
nikdim03 Mar 27, 2026
a08cbec
feat: enhance supported features in WalletV4R2 and WalletV5R1 adapters
nikdim03 Mar 27, 2026
e5abdd6
feat: add support for signMessage action in IntentParser
nikdim03 Mar 27, 2026
6cdf76f
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 27, 2026
9c85d24
fix: add timeout to fetch manifest request in ConnectHandler
nikdim03 Mar 25, 2026
bb7ebe2
fix: add retry limit and error predicate to sendBoc in IntentHandler
nikdim03 Mar 27, 2026
19b2764
feat(swap): update storybook
heyllog Mar 29, 2026
7ff5f7d
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
c7e688f
feat(swap): add swap provider
heyllog Mar 30, 2026
f7b7d51
revert: move demo-only sign message files back to demo wallet branch
nikdim03 Mar 30, 2026
ede6a73
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
ed932e4
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
69d0a2e
chore: restore demo files after merging ton-359 revert
nikdim03 Mar 30, 2026
4c07c9d
chore: merge main into feature/ton-359-new-intent-api-design
nikdim03 Mar 30, 2026
696dbf5
chore: merge feature/ton-359-new-intent-api-design into feature/ton-3…
nikdim03 Mar 30, 2026
b5660ea
fix: regenerate pnpm-lock.yaml after bad conflict resolution
nikdim03 Mar 30, 2026
890d4b9
fix: remove extra blank line in TonWalletKit.ts
nikdim03 Mar 30, 2026
6a606e9
fix: remove extra blank line in TonWalletKit.ts
nikdim03 Mar 30, 2026
89add74
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
21657b1
fix: update resolveAndApproveAction to return resolved event alongsid…
nikdim03 Mar 30, 2026
e17b030
fix: streamline intent response handling and add missing fields to so…
nikdim03 Mar 30, 2026
87815d9
fix: update resolveAndApproveAction to return resolved event alongsid…
nikdim03 Mar 30, 2026
42e6507
fix: streamline intent response handling and add missing fields to so…
nikdim03 Mar 30, 2026
70e352e
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
ab00722
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Mar 30, 2026
0004310
refactor: remove unused preview property from SignMessageRequestEvent
nikdim03 Mar 30, 2026
05af4aa
feat(swap): add debounce
heyllog Mar 30, 2026
0f23804
fix: add TODO comments for future removal of type casting in Wallet a…
nikdim03 Mar 30, 2026
f8791b1
feat(swap): enable send button
heyllog Mar 30, 2026
d082c35
fix: add comments to clarify opcode definitions in WalletV5R1Adapter
nikdim03 Mar 30, 2026
e606f6c
feat(swap): start select currency modal
heyllog Mar 30, 2026
397c9f5
feat(swap): add more currencies
heyllog Mar 30, 2026
312d0cd
feat(swap): map addresses and show balances
heyllog Mar 31, 2026
2e5e664
Merge branch 'main' into feat/TON-376-swap-design
heyllog Mar 31, 2026
8397efe
feat(swap): add amount validation
heyllog Mar 31, 2026
4900885
feat(swap): add skeletons
heyllog Mar 31, 2026
f607161
feat(swap): add providers metadata
heyllog Mar 31, 2026
ad708ea
feat(swap): fix TON token
heyllog Mar 31, 2026
111b737
feat(swap): slippage
heyllog Mar 31, 2026
28814b1
chore: revert unrelated logic
nikdim03 Apr 1, 2026
c667f61
chore: add TODO
nikdim03 Apr 1, 2026
6e93f71
refactor: extract validation logic into separate transactionValidator…
nikdim03 Apr 1, 2026
cfdf884
refactor: remove preview property from SignMessageRequestEvent and re…
nikdim03 Apr 1, 2026
cdcccd9
fix: add BOC validation to sign message approval response
nikdim03 Apr 1, 2026
c3e0332
refactor: remove sendIntentResponse method and update IntentHandler t…
nikdim03 Apr 1, 2026
d061346
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
b561654
fix: add TODO comments for future removal of type casting in Wallet a…
nikdim03 Mar 30, 2026
348461a
fix: add comments to clarify opcode definitions in WalletV5R1Adapter
nikdim03 Mar 30, 2026
2192b60
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
a196de2
chore: revert sendIntentResponse
nikdim03 Apr 1, 2026
f52c22c
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
3634279
refactor: replace IntentParser instance with isIntentUrl function for…
nikdim03 Apr 1, 2026
3e72a09
test: enhance IntentParser tests with object storage scenarios and re…
nikdim03 Apr 1, 2026
f6102f3
refactor: streamline connect request parsing with a dedicated method …
nikdim03 Apr 1, 2026
6898551
fix: improve error handling and validation for signData and item mapp…
nikdim03 Apr 1, 2026
a1ab8e2
refactor: optimize intentItemsToTransactionRequest by using Promise.a…
nikdim03 Apr 1, 2026
d120e1f
fix: enhance URL validation in IntentParser and add timeout for fetch…
nikdim03 Apr 1, 2026
51d3a25
refactor: prevent duplicate intent request callbacks and optimize bat…
nikdim03 Apr 1, 2026
3b0f471
feat: add traceId and returnStrategy to batch processing in IntentHan…
nikdim03 Apr 1, 2026
f908ea8
refactor: streamline error handling in sendIntentResponse for batched…
nikdim03 Apr 1, 2026
8a778c2
test: add unit test for signMessage action response parsing as signOn…
nikdim03 Apr 1, 2026
4fd3cf7
refactor: rename TransactionDraftRequestEvent to TransactionIntentReq…
nikdim03 Apr 1, 2026
bf3034b
fix: remove timeout from fetch action URL to improve reliability
nikdim03 Apr 1, 2026
d33891d
Merge branch 'main' into feature/ton-359-new-intent-api-design
nikdim03 Apr 1, 2026
8e1c747
fix: remove timeout from fetch manifest
nikdim03 Apr 1, 2026
8831c48
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
b9d04fc
fix: if the transaction throws, the connect approval never runs
nikdim03 Apr 1, 2026
c333169
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
051b807
feat: enhance transaction request modal with delivery mode handling a…
nikdim03 Apr 1, 2026
edb61d3
refactor: simplify IntentRequestModal by removing unused functions an…
nikdim03 Apr 1, 2026
158bbd2
fix: restore transaction dialog
nikdim03 Apr 1, 2026
0ce6ada
feat: enhance message display in SignMessageRequestModal with improve…
nikdim03 Apr 1, 2026
2eb5257
feat: integrate IntentEventDetails into SignMessageRequestModal for t…
nikdim03 Apr 1, 2026
50964c7
feat(swap): add autoscale input and rework amount formats
heyllog Apr 1, 2026
6b0d14a
feat(swap): rework autoscale
heyllog Apr 1, 2026
07cfede
feat(swap): create InfoBlock component and rework SwapInfo
heyllog Apr 1, 2026
12cffe0
fix: handle session not found error when sending response in connecte…
nikdim03 Apr 1, 2026
a6adadd
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 1, 2026
0e31658
feat(swap): create separate TokenSelectModal
heyllog Apr 1, 2026
55da0d8
feat(swap): delete radix-ui
heyllog Apr 1, 2026
51133ab
feat(swap): get radix-ui back
heyllog Apr 1, 2026
0e45e1f
Merge branch 'main' into feature/ton-359-new-intent-api-design
nikdim03 Apr 2, 2026
d35ab87
fix: update eventEmitter type and error event handling in SignMessage…
nikdim03 Apr 2, 2026
f412104
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 2, 2026
ef580fe
Merge branch main into feature/TON-376-swap-design
heyllog Apr 3, 2026
9b91a21
feat(swap): start updating appkit-minter design
heyllog Apr 3, 2026
68e86e6
feat(swap): rework balances
heyllog Apr 3, 2026
e82e2af
feat(swap): fix storybook
heyllog Apr 3, 2026
1be3691
feat(swap): delete links from header
heyllog Apr 3, 2026
8b0be12
feat(swap): delete fake rates
heyllog Apr 3, 2026
62382a3
Merge branch 'main' into feat/TON-376-swap-design
heyllog Apr 6, 2026
5b75f27
feat(swap): add changeset
heyllog Apr 6, 2026
08ffa16
fix: deliver signed body via an internal message for gasless
nikdim03 Apr 6, 2026
5ef1c61
feat: implement connectWithIntent method and associated event handling
nikdim03 Apr 6, 2026
3c26c22
Merge branch 'main' into feature/ton-359-new-intent-api-design
nikdim03 Apr 6, 2026
2173130
Merge branch 'main' into feature/ton-359-new-intent-api-design
nikdim03 Apr 6, 2026
b4a3cc0
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 6, 2026
ea64bbf
feat: update handleIntentUrl method to include optional jsBridgeConte…
nikdim03 Apr 6, 2026
99f1f4c
feat: handle connectWithIntent in background and process pending inte…
nikdim03 Apr 6, 2026
9744ba3
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 6, 2026
ce79dad
feat: extend jsBridgeContext in handleIntentUrl to include connectReq…
nikdim03 Apr 6, 2026
9249cd2
feat: add connectRequest to pending JS bridge intent handling
nikdim03 Apr 6, 2026
b4f8dab
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 6, 2026
c38cfad
Merge branch 'main' into feature/ton-359-new-intent-api-design
TrueCarry Apr 6, 2026
581609f
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
TrueCarry Apr 6, 2026
a2e5064
chore: fix quality
TrueCarry Apr 6, 2026
535bf4c
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
TrueCarry Apr 6, 2026
c7ae9ef
feat: route intent draft events and connectWithIntent through EventSt…
nikdim03 Apr 6, 2026
71660a0
Merge branch 'feature/ton-359-new-intent-api-design' into feature/ton…
nikdim03 Apr 6, 2026
87bd8df
feat: open popup for connectWithIntent JS bridge requests
nikdim03 Apr 6, 2026
8365ce6
feat(onramp): start onramp widget
heyllog Apr 7, 2026
014bcdd
Merge branch 'main' into feat/TON-622-onramp-design
heyllog Apr 7, 2026
e0e4c33
feat(onramp): reword design
heyllog Apr 7, 2026
3e3d288
feat(onramp): add resize for input
heyllog Apr 7, 2026
db174a4
feat(onramp): create centered amount input
heyllog Apr 7, 2026
7ddf526
feat(onramp): cleanup
heyllog Apr 7, 2026
d28b3f7
feat(swap): cleanup
heyllog Apr 7, 2026
f300f59
feat(onramp): i18n
heyllog Apr 8, 2026
3795663
feat(onramp): add sections in list
heyllog Apr 8, 2026
99bf962
feat(onramp): add sections in currencies list
heyllog Apr 8, 2026
6cf3686
feat: remove intents
TrueCarry Apr 8, 2026
e007835
feat: simplified pr based on new SDK spec
TrueCarry Apr 8, 2026
765e343
feat(onramp): draft crypto onramp
heyllog Apr 13, 2026
23cc4bf
Merge branch 'main' into feat/TON-376-swap-design
heyllog Apr 14, 2026
adac739
feat(staking): start staking UI
heyllog Apr 14, 2026
c881754
feat(staking): add more fields in provider info
heyllog Apr 14, 2026
aa01185
feat(staking): start unstaking UI
heyllog Apr 14, 2026
ae1ed33
feat(swap): delete inline styles and replace button
heyllog Apr 14, 2026
e5ae53a
feat(staking): add unstake mode selector
heyllog Apr 15, 2026
b8d8d30
Handle embedded requests urls
ProudOfZiggy Apr 15, 2026
013913b
feat(staking): rework unstake number
heyllog Apr 15, 2026
3428899
Fixes comments
ProudOfZiggy Apr 15, 2026
0c9c1af
Update models according to spec
ProudOfZiggy Apr 15, 2026
d8afa86
Merge branch 'main' into dev/tim/sdk-sign-message-updates
ProudOfZiggy Apr 15, 2026
db20376
Fix annotations
ProudOfZiggy Apr 15, 2026
836952d
fix: pin alpha version of tonconnect
TrueCarry Apr 15, 2026
f998149
chore: update proxy dependencies
TrueCarry Apr 15, 2026
56fdd7d
feat: getgems auth and skill draft
TrueCarry Apr 15, 2026
a959cb0
feat(staking): add watchers and rework quotes
heyllog Apr 16, 2026
f1348d0
feat(staking): add addresses in metadata
heyllog Apr 16, 2026
2646151
feat(staking): receive token is optional
heyllog Apr 16, 2026
82b1667
feat(staking): rework reverse
heyllog Apr 16, 2026
c81248c
feat(staking): cleanup
heyllog Apr 16, 2026
117009a
feat(staking): add whenAvailable unstake mode and filters
heyllog Apr 16, 2026
0bcfe62
feat(staking): hide mode selector if 1 mode
heyllog Apr 16, 2026
ad32c16
feat(staking): cleanup
heyllog Apr 16, 2026
dd7985a
feat(staking): change colors
heyllog Apr 16, 2026
88f9d6c
Merge branch main into feature/TON-376-swap-design
heyllog Apr 16, 2026
8597a05
Merge branch 'feat/TON-376-swap-design' into feat/TON-729-staking-ui
heyllog Apr 16, 2026
50c5bf3
feat(staking): add changeset
heyllog Apr 16, 2026
c59b80b
feat(staking/swap): add stories and exports for internal components
heyllog Apr 17, 2026
65b4ebc
feat(staking): fix network selection
heyllog Apr 17, 2026
b9ffe7e
feat(swap): add network to hooks
heyllog Apr 17, 2026
5ed90a3
Merge branch 'feat/TON-376-swap-design' into feat/TON-622-onramp-design
heyllog Apr 17, 2026
bb69304
Merge branch feat/TON-240-onramp into feat/TON-622-onramp-design
heyllog Apr 17, 2026
5719b1d
feat(onramp): draft connect
heyllog Apr 17, 2026
47fc488
feat(swap): fix swap-field
heyllog Apr 17, 2026
f1a069a
feat(staking): add docs
heyllog Apr 17, 2026
2681eaa
feat(swaps): add docs
heyllog Apr 17, 2026
d37063e
docs: refine staking and swap documentation and remove provider hooks
heyllog Apr 17, 2026
ce684e2
Update iOS bridge
ProudOfZiggy Apr 15, 2026
10534a2
Update iOS bridge
ProudOfZiggy Apr 17, 2026
84c3ade
Session creation right after connection approval
ProudOfZiggy Apr 17, 2026
ec41a6d
Merge branch feat/TON-729-staking-ui into feat/TON-622-onramp-design
heyllog Apr 17, 2026
10cdd6e
feat(onramp): draft tonpay
heyllog Apr 17, 2026
6ffd96f
fix: make sure to load nft item index for agentic only once
TrueCarry Apr 17, 2026
6b09dc9
feat(staking): rework appkit-minter design
heyllog Apr 19, 2026
475e91a
Merge branch 'feat/TON-729-staking-ui' into feat/TON-622-onramp-design
heyllog Apr 20, 2026
cd3ecb5
feat(onramp): add tonpay widget in appkit-minter
heyllog Apr 20, 2026
41b1097
Merge branch 'main' into feat/TON-376-swap-design
heyllog Apr 20, 2026
aff927f
Merge branch 'feat/TON-376-swap-design' into feat/TON-729-staking-ui
heyllog Apr 20, 2026
d3c5194
Merge branch 'feat/TON-729-staking-ui' into feat/TON-622-onramp-design
heyllog Apr 20, 2026
79fe1b3
feat(swaps): create SwapProviderMetadataOverride
heyllog Apr 20, 2026
bc58ca0
Merge branch 'feat/TON-376-swap-design' into feat/TON-729-staking-ui
heyllog Apr 20, 2026
3f405b3
feat(staking): create StakingProviderMetadataOverride
heyllog Apr 20, 2026
e9545a9
Merge branch 'feat/TON-729-staking-ui' into feat/TON-622-onramp-design
heyllog Apr 20, 2026
cdc87fb
Merge remote-tracking branch 'origin/dev/tim/sdk-sign-message-updates…
TrueCarry Apr 20, 2026
cffb58b
Merge remote-tracking branch 'origin/feature/ton-461-getgems' into ex…
TrueCarry Apr 20, 2026
83fa1a3
Merge remote-tracking branch 'origin/feature/TON-801-token-address' i…
TrueCarry Apr 20, 2026
2ef6c4c
deps: get back ledger versions
heyllog Apr 20, 2026
2037da3
feat(appkit): add sign message
heyllog Apr 20, 2026
bf09272
feat: Add Privy connector with W5 api
TrueCarry Apr 20, 2026
bf2f7cc
Allow to buy NFT in appkit minter demo app
ProudOfZiggy Apr 20, 2026
982cdac
Show collection info
ProudOfZiggy Apr 20, 2026
bfe2af3
feat(appkit): draft gasless
heyllog Apr 20, 2026
a208f20
Allow to buy for USDT
ProudOfZiggy Apr 20, 2026
28fc410
Build transaction for purchasing NFT for USDT by ourself
ProudOfZiggy Apr 20, 2026
5d7320c
feat(appkit): use loadStateInit
heyllog Apr 20, 2026
a302db3
feat(gasless): move types to models
heyllog Apr 20, 2026
cd164c4
feat: add privy with autoconnect to minter app
TrueCarry Apr 20, 2026
77bd84f
feat: init wallet for mainnet by default, allow switching after conne…
TrueCarry Apr 20, 2026
9f2aedd
Merge branch 'experimental-nft-purchase-app-minter' into dev/tim/appk…
TrueCarry Apr 20, 2026
13f93e5
feat: add pagination to buy nft
TrueCarry Apr 20, 2026
f448f1b
Merge remote-tracking branch 'origin/feat/TON-803-gasless' into dev/t…
TrueCarry Apr 20, 2026
6144847
feat: Gassless nft buy
TrueCarry Apr 21, 2026
731e4fd
Merge branch feat/TON-622-onramp-design into feat/TON-622-crypto-onra…
heyllog Apr 21, 2026
83f6b38
feat(crypto-onramp): add crypto onramp manager/provider
heyllog Apr 21, 2026
63b3a2b
feat(crypto-onramp): add swaps.xyz
heyllog Apr 21, 2026
1820014
feat(crypto-onramp): add some crypto onramp hooks
heyllog Apr 21, 2026
fcdefe9
feat(crypto-onramp): add swaps.xyz
heyllog Apr 21, 2026
3614105
feat(crypto-onramp): add debounce
heyllog Apr 21, 2026
930b2a4
feat(crypto-onramp): handle errors
heyllog Apr 21, 2026
423976b
feat(crypto-onramp): add info section
heyllog Apr 21, 2026
9be2217
feat(crypto-onramp): ui adjustments
heyllog Apr 21, 2026
6099d23
feat(crypto-onramp): reset quote on modal closing
heyllog Apr 21, 2026
e5e9f4f
feat(crypto-onramp): add status checking
heyllog Apr 21, 2026
0c95bd6
feat(crypto-onramp): add refund address support
heyllog Apr 21, 2026
89dd20a
feat(crypto-onramp): integrate Layerswap provider and enhance balance…
TrueCarry Apr 21, 2026
cab48b5
Merge branch 'feat/TON-622-crypto-onramp-design' into dev/tim/appkit-…
TrueCarry Apr 21, 2026
1289f29
chore: add new env to build
TrueCarry Apr 21, 2026
18f754c
feat: add onramp modal to buy nft page
TrueCarry Apr 21, 2026
433b20a
feat: Add transfer between connected wallets
TrueCarry Apr 22, 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
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .changeset/smooth-bushes-wear.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
'@ton/appkit-react': patch
'@ton/walletkit': patch
'@ton/appkit': patch
---

- `@ton/appkit`:
- added `getSwapProvider` and `watchSwapProviders` actions
- added swap-related events and types to `AppKit` core
- added `calcFiatValue` and `formatLargeValue` amount utilities
- added `debounce` utility function
- `@ton/walletkit`:
- added `SwapProviderMetadata` interface
- added `getMetadata()` method to `SwapProvider`
- added metadata support to `DeDustSwapProvider` and `OmnistonSwapProvider`
- `@ton/appkit-react`:
- added `SwapWidget` and related UI components (`SwapField`, `SwapSettings`, `TokenSelector`, etc.)
- added `SwapWidgetProvider` for swap state management
- added hooks for swap: `useSwapProvider`, `useSwapQuote`, `useBuildSwapTransaction`
- added `useDebounceCallback`, `useDebounceValue`, and `useUnmount` utility hooks
- added English localizations for swap features
22 changes: 22 additions & 0 deletions .changeset/staking-ui-and-metadata-refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
'@ton/appkit-react': patch
'@ton/walletkit': patch
'@ton/appkit': patch
---

- `@ton/walletkit`:
- refactored `StakingProviderMetadata`: flat token fields replaced with `stakeToken: StakingTokenInfo` object and optional `receiveToken?: StakingTokenInfo` group to support both liquid and custodial staking providers
- made `contractAddress` optional in `StakingProviderMetadata` for custodial providers without on-chain contracts
- renamed `lstExchangeRate` to `exchangeRate` in `StakingProviderInfo`
- added `StakingTokenInfo` type export
- added `isReversed` parameter to `StakingQuoteParams` for reversed unstake quotes
- added deep-merge support for metadata overrides in `TonStakersStakingProvider` constructor
- added `getStakingProvider` and `watchStakingProviders` to `DefiManager`
- `@ton/appkit`:
- added `getStakingProviderMetadata`, `getStakingProvider`, and `watchStakingProviders` actions
- added `truncateDecimals` and `formatLargeValue` amount utilities
- exported `StakingTokenInfo` type
- `@ton/appkit-react`:
- added `StakingWidget` with full stake/unstake UI, balance display, reversed quotes, and unstake mode selector
- updated base design tokens to TonConnect colors
- added staking hooks and i18n translations
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ packages/walletkit-android-bridge/*.sh

release-artifacts
*.tgz
apps/appkit-minter/Caddyfile
5 changes: 5 additions & 0 deletions apps/appkit-minter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,13 @@
"@ton/appkit-react": "workspace:*",
"@ton/core": "catalog:",
"@ton/crypto": "catalog:",
"@privy-io/react-auth": "^3.22.1",
"@tonconnect/sdk": "catalog:",
"@tonconnect/ui-react": "catalog:",
"@radix-ui/react-dialog": "1.1.15",
"@radix-ui/react-separator": "1.1.8",
"@radix-ui/react-slot": "1.2.4",
"@radix-ui/react-tooltip": "1.2.8",
"buffer": "^6.0.3",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
Expand Down
21 changes: 16 additions & 5 deletions apps/appkit-minter/src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { AppKitProvider } from '@ton/appkit-react';

import { PrivyBridgeProvider } from './privyProvider';

import { appKit } from '@/core/configs/app-kit';
import { AppRouter, ThemeProvider, ToasterProvider } from '@/core/components';
import { ENV_PRIVY_APP_ID } from '@/core/configs/env';
import { AppRouter, ThemeProvider, ToasterProvider, TelegramPrivyAutoConnect } from '@/core/components';

import './core/styles/app.css';
import '@ton/appkit-react/styles.css';
import './core/styles/index.css';

const queryClient = new QueryClient();

Expand All @@ -22,8 +24,17 @@ export const App = () => {
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
<QueryClientProvider client={queryClient}>
<AppKitProvider appKit={appKit}>
<AppRouter />
<ToasterProvider />
<PrivyBridgeProvider>
<AppRouter />
<ToasterProvider />

{ENV_PRIVY_APP_ID && (
<>
<TelegramPrivyAutoConnect />
{/* <PrivyDebugPanel /> */}
</>
)}
</PrivyBridgeProvider>
</AppKitProvider>
</QueryClientProvider>
</ThemeProvider>
Expand Down
62 changes: 62 additions & 0 deletions apps/appkit-minter/src/core/components/app-logo/app-logo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/**
* Copyright (c) TonTech.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/

import type { ComponentProps, FC } from 'react';

import { cn } from '@/core/lib/utils';

export const AppLogo: FC<ComponentProps<'div'>> = ({ className, ...props }) => {
return (
<div
className={cn(
'flex size-10 items-center justify-center rounded-lg bg-gradient-to-br from-primary to-primary/60 p-1',
className,
)}
{...props}
>
<svg
viewBox="-33 0 255 255"
xmlns="http://www.w3.org/2000/svg"
preserveAspectRatio="xMidYMid"
className="h-full w-full"
aria-hidden="true"
>
<defs>
<linearGradient
id="app-logo-fire"
gradientUnits="userSpaceOnUse"
x1="94.141"
y1="255"
x2="94.141"
y2="0.188"
>
<stop offset="0" stopColor="#ff4c0d" />
<stop offset="1" stopColor="#fc9502" />
</linearGradient>
</defs>
<g>
<path
fill="url(#app-logo-fire)"
fillRule="evenodd"
d="M187.899,164.809 C185.803,214.868 144.574,254.812 94.000,254.812 C42.085,254.812 -0.000,211.312 -0.000,160.812 C-0.000,154.062 -0.121,140.572 10.000,117.812 C16.057,104.191 19.856,95.634 22.000,87.812 C23.178,83.513 25.469,76.683 32.000,87.812 C35.851,94.374 36.000,103.812 36.000,103.812 C36.000,103.812 50.328,92.817 60.000,71.812 C74.179,41.019 62.866,22.612 59.000,9.812 C57.662,5.384 56.822,-2.574 66.000,0.812 C75.352,4.263 100.076,21.570 113.000,39.812 C131.445,65.847 138.000,90.812 138.000,90.812 C138.000,90.812 143.906,83.482 146.000,75.812 C148.365,67.151 148.400,58.573 155.999,67.813 C163.226,76.600 173.959,93.113 180.000,108.812 C190.969,137.321 187.899,164.809 187.899,164.809 Z"
/>
<path
fill="#fc9502"
fillRule="evenodd"
d="M94.000,254.812 C58.101,254.812 29.000,225.711 29.000,189.812 C29.000,168.151 37.729,155.000 55.896,137.166 C67.528,125.747 78.415,111.722 83.042,102.172 C83.953,100.292 86.026,90.495 94.019,101.966 C98.212,107.982 104.785,118.681 109.000,127.812 C116.266,143.555 118.000,158.812 118.000,158.812 C118.000,158.812 125.121,154.616 130.000,143.812 C131.573,140.330 134.753,127.148 143.643,140.328 C150.166,150.000 159.127,167.390 159.000,189.812 C159.000,225.711 129.898,254.812 94.000,254.812 Z"
/>
<path
fill="#fce202"
fillRule="evenodd"
d="M95.000,183.812 C104.250,183.812 104.250,200.941 116.000,223.812 C123.824,239.041 112.121,254.812 95.000,254.812 C77.879,254.812 69.000,240.933 69.000,223.812 C69.000,206.692 85.750,183.812 95.000,183.812 Z"
/>
</g>
</svg>
</div>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
*
*/

export * from './components/swap-button';
export { AppLogo } from './app-logo';
62 changes: 0 additions & 62 deletions apps/appkit-minter/src/core/components/common/button.tsx

This file was deleted.

1 change: 0 additions & 1 deletion apps/appkit-minter/src/core/components/common/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@
*
*/

export { Button } from './button';
export { Card } from './card';
12 changes: 11 additions & 1 deletion apps/appkit-minter/src/core/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,18 @@
*/

// Common components
export { Button, Card } from './common';
export { Card } from './common';
export { ToasterProvider } from './common/toaster-provider';

// Layout components
export { Layout, AppRouter, ThemeProvider } from './layout';

// UI components
export { Sidebar } from './sidebar';
export { Sheet } from './sheet';
export { Separator } from './separator';
export { Tooltip } from './tooltip';

// Integrations
export { TelegramPrivyAutoConnect } from './telegram-privy-auto-connect';
export { PrivyDebugPanel } from './privy-debug-panel';
18 changes: 17 additions & 1 deletion apps/appkit-minter/src/core/components/layout/app-router.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,16 @@ import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { useWatchBalance, useWatchTransactions, useWatchJettons } from '@ton/appkit-react';
import { toast } from 'sonner';

import { MinterPage } from '@/pages';
import {
MinterPage,
StakingPage,
SwapPage,
OnrampPage,
SignMessagePage,
NftPurchasePage,
NftPurchaseCollectionPage,
GaslessPage,
} from '@/pages';

export const AppRouter: React.FC = () => {
// Enable global real-time balance updates
Expand Down Expand Up @@ -50,6 +59,13 @@ export const AppRouter: React.FC = () => {
<BrowserRouter>
<Routes>
<Route path="/" element={<MinterPage />} />
<Route path="/swap" element={<SwapPage />} />
<Route path="/staking" element={<StakingPage />} />
<Route path="/onramp" element={<OnrampPage />} />
<Route path="/sign" element={<SignMessagePage />} />
<Route path="/buy-nft" element={<NftPurchasePage />} />
<Route path="/buy-nft/:collectionAddress" element={<NftPurchaseCollectionPage />} />
<Route path="/gasless" element={<GaslessPage />} />
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
</BrowserRouter>
Expand Down
104 changes: 104 additions & 0 deletions apps/appkit-minter/src/core/components/layout/app-sidebar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/**
* Copyright (c) TonTech.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/

import type React from 'react';
import { Zap, Coins, ArrowLeftRight, Sparkles, BookOpen, Github, PenLine, CreditCard, ShoppingBag } from 'lucide-react';
import { Link, NavLink } from 'react-router-dom';

import { AppLogo } from '../app-logo';

import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarGroup,
SidebarGroupContent,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
useSidebar,
} from '@/core/components/sidebar';
import { NetworkPicker } from '@/features/network';
import { WalletSelector } from '@/features/wallet';

const NAV_LINKS: readonly { to: string; label: string; icon: React.ComponentType<{ className?: string }> }[] = [
{ to: '/', label: 'Mint', icon: Sparkles },
{ to: '/swap', label: 'Swap', icon: ArrowLeftRight },
{ to: '/staking', label: 'Staking', icon: Coins },
{ to: '/onramp', label: 'Buy', icon: CreditCard },
{ to: '/buy-nft', label: 'Buy NFT', icon: ShoppingBag },
{ to: '/sign', label: 'Sign Message', icon: PenLine },
{ to: '/gasless', label: 'Gasless', icon: Zap },
];

const EXTERNAL_LINKS: readonly { href: string; label: string; icon: React.ComponentType<{ className?: string }> }[] = [
{ href: 'https://docs.ton.org/ecosystem/appkit/overview', label: 'Docs', icon: BookOpen },
{ href: 'https://github.com/ton-connect/kit', label: 'GitHub', icon: Github },
];

export const AppSidebar: React.FC = () => {
const { setOpenMobile, isMobile } = useSidebar();

const closeOnMobile = () => {
if (isMobile) setOpenMobile(false);
};

return (
<Sidebar collapsible="icon" variant="floating">
<SidebarHeader>
<Link to="/" onClick={closeOnMobile} className="flex h-8 items-center gap-2 overflow-hidden">
<AppLogo className="size-8" />
<span className="truncate text-base font-bold group-data-[collapsible=icon]:hidden">
NFT Minter
</span>
</Link>
</SidebarHeader>

<SidebarContent>
<SidebarGroup>
<SidebarGroupContent>
<SidebarMenu>
{NAV_LINKS.map(({ to, label, icon: Icon }) => (
<SidebarMenuItem key={to}>
<NavLink to={to} end={to === '/'} onClick={closeOnMobile}>
{({ isActive }) => (
<SidebarMenuButton isActive={isActive} tooltip={label}>
<Icon />
<span>{label}</span>
</SidebarMenuButton>
)}
</NavLink>
</SidebarMenuItem>
))}
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
</SidebarContent>

<SidebarFooter>
<SidebarMenu>
{EXTERNAL_LINKS.map(({ href, label, icon: Icon }) => (
<SidebarMenuItem key={href}>
<SidebarMenuButton asChild tooltip={label}>
<a href={href} target="_blank" rel="noreferrer">
<Icon />
<span>{label}</span>
</a>
</SidebarMenuButton>
</SidebarMenuItem>
))}
</SidebarMenu>
<div className="group-data-[collapsible=icon]:hidden">
<NetworkPicker />
</div>
<WalletSelector />
</SidebarFooter>
</Sidebar>
);
};
Loading
Loading