@shapeshiftoss/swap-widget 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/index.d.ts +233 -0
  2. package/dist/index.js +63612 -0
  3. package/dist/style.css +1 -0
  4. package/package.json +69 -18
  5. package/Dockerfile +0 -87
  6. package/dist/assets/PhArrowCircleDown-B305t-Sh.js +0 -14
  7. package/dist/assets/PhArrowClockwise-CJPxQhr_.js +0 -14
  8. package/dist/assets/PhArrowDown-C4hT9BVu.js +0 -14
  9. package/dist/assets/PhArrowLeft-Way4Cu-r.js +0 -14
  10. package/dist/assets/PhArrowRight-Cp5ZME0F.js +0 -14
  11. package/dist/assets/PhArrowSquareOut-NnrK69c5.js +0 -14
  12. package/dist/assets/PhArrowUp-Dph6j8rm.js +0 -14
  13. package/dist/assets/PhArrowUpRight-BpJjRRRh.js +0 -14
  14. package/dist/assets/PhArrowsClockwise-CFUT8X7R.js +0 -14
  15. package/dist/assets/PhArrowsDownUp-BjBI4ckC.js +0 -14
  16. package/dist/assets/PhArrowsLeftRight-CuLpbKRk.js +0 -14
  17. package/dist/assets/PhBank-Dchr4XQJ.js +0 -14
  18. package/dist/assets/PhBrowser-dUu2TrC1.js +0 -14
  19. package/dist/assets/PhCaretDown-78IuKU3V.js +0 -14
  20. package/dist/assets/PhCaretLeft-_aiyH7n1.js +0 -14
  21. package/dist/assets/PhCaretRight-8zJQEuDX.js +0 -14
  22. package/dist/assets/PhCaretUp-CiCxKWwN.js +0 -14
  23. package/dist/assets/PhCheck-CcADx8br.js +0 -14
  24. package/dist/assets/PhCircleHalf-BYzSzd2h.js +0 -14
  25. package/dist/assets/PhClock-UItiXeJq.js +0 -14
  26. package/dist/assets/PhCompass-CUy3uA7t.js +0 -14
  27. package/dist/assets/PhCopy-C-PDgSlZ.js +0 -14
  28. package/dist/assets/PhCreditCard-CWRaUT6F.js +0 -14
  29. package/dist/assets/PhCurrencyDollar-Cqla3AXT.js +0 -14
  30. package/dist/assets/PhDesktop-BBIPrYLl.js +0 -14
  31. package/dist/assets/PhDeviceMobile-BdsPaATg.js +0 -14
  32. package/dist/assets/PhDotsThree-BMXCQl-0.js +0 -14
  33. package/dist/assets/PhEnvelope-yUsis6yU.js +0 -14
  34. package/dist/assets/PhFunnelSimple-Ba7BbWTp.js +0 -14
  35. package/dist/assets/PhGlobe-DgLxBk5U.js +0 -14
  36. package/dist/assets/PhIdentificationCard-Czjmq9Z3.js +0 -14
  37. package/dist/assets/PhImage-BAJ_erz6.js +0 -14
  38. package/dist/assets/PhInfo-Cr4DhVUE.js +0 -14
  39. package/dist/assets/PhLightbulb-BX_7duTr.js +0 -14
  40. package/dist/assets/PhMagnifyingGlass-Mygfryvz.js +0 -14
  41. package/dist/assets/PhPaperPlaneRight-BeuCA660.js +0 -14
  42. package/dist/assets/PhPlus-BMjcHjsT.js +0 -14
  43. package/dist/assets/PhPower-CGffGmdb.js +0 -14
  44. package/dist/assets/PhPuzzlePiece-wm_GpVSi.js +0 -14
  45. package/dist/assets/PhQrCode-DRwRzXCH.js +0 -14
  46. package/dist/assets/PhQuestion-M09j2U0T.js +0 -14
  47. package/dist/assets/PhQuestionMark-BP9EMB6h.js +0 -14
  48. package/dist/assets/PhSealCheck-BfG80yKn.js +0 -14
  49. package/dist/assets/PhSignOut-C5YOWlPT.js +0 -14
  50. package/dist/assets/PhSpinner-BXooDYzU.js +0 -14
  51. package/dist/assets/PhTrash-Biq6rmmL.js +0 -14
  52. package/dist/assets/PhUser-CAgZSpGe.js +0 -14
  53. package/dist/assets/PhVault-l2PHF38a.js +0 -14
  54. package/dist/assets/PhWallet-w25D16It.js +0 -14
  55. package/dist/assets/PhWarning-DPEydIPw.js +0 -14
  56. package/dist/assets/PhWarningCircle-BqjT745H.js +0 -14
  57. package/dist/assets/PhX-s-SmVExa.js +0 -14
  58. package/dist/assets/SwapController-If0bFrNc.js +0 -1
  59. package/dist/assets/ccip-BBB7uCdL.js +0 -1
  60. package/dist/assets/ccip-CkkdfKKI.js +0 -1
  61. package/dist/assets/data-capture-D4gAy-Yc.js +0 -242
  62. package/dist/assets/email-B1AJehis.js +0 -90
  63. package/dist/assets/embedded-wallet-Q6DQopDk.js +0 -410
  64. package/dist/assets/features-B6JAPAFb.js +0 -5
  65. package/dist/assets/index-5jd8RPN9.js +0 -7428
  66. package/dist/assets/index-B4kNtSTk.js +0 -1080
  67. package/dist/assets/index-B753eAob.js +0 -1
  68. package/dist/assets/index-BZoLTv77.js +0 -3
  69. package/dist/assets/index-Bcw9UURX.js +0 -3
  70. package/dist/assets/index-BkrV-ahK.js +0 -2
  71. package/dist/assets/index-CRQzQ_up.js +0 -9
  72. package/dist/assets/index-CSW0Gt5y.js +0 -132
  73. package/dist/assets/index-CZ4jTIsk.js +0 -138
  74. package/dist/assets/index-Cwa8SB3h.js +0 -61
  75. package/dist/assets/index-DEwQgT4r.js +0 -78
  76. package/dist/assets/index-DVfQiQ1d.js +0 -1
  77. package/dist/assets/index-cV3UdaMs.css +0 -1
  78. package/dist/assets/index-hAmu622O.js +0 -43
  79. package/dist/assets/onramp-XcPNCLRU.js +0 -422
  80. package/dist/assets/pay-with-exchange-BeHt4OF4.js +0 -280
  81. package/dist/assets/property-C9JG5tag.js +0 -27
  82. package/dist/assets/receive-7ff4he2S.js +0 -131
  83. package/dist/assets/send-CkMBIRXT.js +0 -554
  84. package/dist/assets/socials-DmmxuLrP.js +0 -250
  85. package/dist/assets/swaps-IHAYRQ0x.js +0 -1050
  86. package/dist/assets/transactions-9Cxdk7o9.js +0 -16
  87. package/dist/assets/v4-BOvFkHkt.js +0 -1
  88. package/dist/assets/w3m-modal-kJzFnBfB.js +0 -891
  89. package/dist/assets/wallet-standard-Dv8LMoUB.js +0 -1
  90. package/dist/favicon.png +0 -0
  91. package/dist/favicon.svg +0 -11
  92. package/dist/icon-192x192.png +0 -0
  93. package/dist/icon-512x512.png +0 -0
  94. package/dist/index.html +0 -33
  95. package/index.html +0 -32
  96. package/public/favicon.png +0 -0
  97. package/public/favicon.svg +0 -11
  98. package/public/icon-192x192.png +0 -0
  99. package/public/icon-512x512.png +0 -0
  100. package/railway.toml +0 -10
  101. package/src/api/client.ts +0 -95
  102. package/src/components/AddressInputModal.css +0 -173
  103. package/src/components/AddressInputModal.tsx +0 -250
  104. package/src/components/ApprovalStep.tsx +0 -92
  105. package/src/components/ExecutionStep.tsx +0 -27
  106. package/src/components/InputStep.tsx +0 -431
  107. package/src/components/QuoteSelector.css +0 -146
  108. package/src/components/QuoteSelector.tsx +0 -137
  109. package/src/components/QuotesModal.css +0 -250
  110. package/src/components/QuotesModal.tsx +0 -182
  111. package/src/components/SettingsModal.css +0 -145
  112. package/src/components/SettingsModal.tsx +0 -180
  113. package/src/components/StatusStep.tsx +0 -139
  114. package/src/components/SwapWidget.css +0 -713
  115. package/src/components/SwapWidget.tsx +0 -607
  116. package/src/components/TokenSelectModal.css +0 -438
  117. package/src/components/TokenSelectModal.tsx +0 -487
  118. package/src/components/WalletProvider.tsx +0 -92
  119. package/src/config/appkit.ts +0 -104
  120. package/src/config/wagmi.ts +0 -27
  121. package/src/constants/chains.ts +0 -72
  122. package/src/constants/defaults.ts +0 -28
  123. package/src/constants/swappers.ts +0 -48
  124. package/src/constants/viemChains.ts +0 -69
  125. package/src/contexts/SwapWalletContext.tsx +0 -25
  126. package/src/demo/App.css +0 -458
  127. package/src/demo/App.tsx +0 -481
  128. package/src/demo/main.tsx +0 -25
  129. package/src/hooks/useAssets.ts +0 -180
  130. package/src/hooks/useBalances.ts +0 -822
  131. package/src/hooks/useBitcoinSigning.ts +0 -276
  132. package/src/hooks/useMarketData.ts +0 -169
  133. package/src/hooks/useSolanaSigning.ts +0 -275
  134. package/src/hooks/useStatusPolling.ts +0 -137
  135. package/src/hooks/useSwapApproval.ts +0 -106
  136. package/src/hooks/useSwapDisplayValues.ts +0 -157
  137. package/src/hooks/useSwapExecution.ts +0 -199
  138. package/src/hooks/useSwapHandlers.ts +0 -119
  139. package/src/hooks/useSwapQuote.ts +0 -71
  140. package/src/hooks/useSwapQuoting.ts +0 -102
  141. package/src/hooks/useSwapRates.ts +0 -61
  142. package/src/index.ts +0 -43
  143. package/src/machines/SwapMachineContext.ts +0 -5
  144. package/src/machines/__tests__/guards.test.ts +0 -228
  145. package/src/machines/__tests__/setup.test.ts +0 -7
  146. package/src/machines/__tests__/swapMachine.test.ts +0 -544
  147. package/src/machines/__tests__/types.test.ts +0 -124
  148. package/src/machines/guards.ts +0 -33
  149. package/src/machines/swapMachine.ts +0 -288
  150. package/src/machines/types.ts +0 -54
  151. package/src/services/transactionStatus.ts +0 -322
  152. package/src/types/index.ts +0 -361
  153. package/src/utils/addressValidation.ts +0 -201
  154. package/src/utils/redirect.ts +0 -45
  155. package/src/vite-env.d.ts +0 -10
  156. package/tsconfig.json +0 -23
  157. package/tsconfig.node.json +0 -10
  158. package/vite.config.ts +0 -101
  159. package/vitest.config.ts +0 -18
@@ -0,0 +1,233 @@
1
+ import { Asset as Asset_2 } from '@shapeshiftoss/types';
2
+ import { AssetId } from '@shapeshiftoss/caip';
3
+ import { ChainId } from '@shapeshiftoss/caip';
4
+ import { JSX } from 'react/jsx-runtime';
5
+ import { UseQueryResult } from '@tanstack/react-query';
6
+ import { WalletClient } from 'viem';
7
+
8
+ export declare type Asset = {
9
+ assetId: AssetId;
10
+ chainId: ChainId;
11
+ symbol: string;
12
+ name: string;
13
+ precision: number;
14
+ icon?: string;
15
+ color?: string;
16
+ networkName?: string;
17
+ networkIcon?: string;
18
+ explorer?: string;
19
+ explorerTxLink?: string;
20
+ explorerAddressLink?: string;
21
+ relatedAssetKey?: AssetId | null;
22
+ };
23
+
24
+ export { AssetId }
25
+
26
+ declare type AssetQueryResult<TData> = Omit<UseQueryResult<RawAssetData>, 'data'> & {
27
+ data: TData;
28
+ };
29
+
30
+ export declare type Chain = {
31
+ chainId: ChainId;
32
+ name: string;
33
+ icon: string;
34
+ color: string;
35
+ nativeAssetId: AssetId;
36
+ };
37
+
38
+ export { ChainId }
39
+
40
+ declare type ChainInfo = {
41
+ chainId: ChainId;
42
+ name: string;
43
+ icon?: string;
44
+ color?: string;
45
+ nativeAsset: Asset;
46
+ };
47
+
48
+ export declare const COSMOS_CHAIN_IDS: {
49
+ readonly cosmos: ChainId;
50
+ readonly thorchain: ChainId;
51
+ readonly mayachain: ChainId;
52
+ };
53
+
54
+ export declare const EVM_CHAIN_IDS: {
55
+ readonly ethereum: ChainId;
56
+ readonly arbitrum: ChainId;
57
+ readonly optimism: ChainId;
58
+ readonly polygon: ChainId;
59
+ readonly base: ChainId;
60
+ readonly avalanche: ChainId;
61
+ readonly bsc: ChainId;
62
+ readonly gnosis: ChainId;
63
+ readonly monad: ChainId;
64
+ readonly hyperEvm: ChainId;
65
+ readonly plasma: ChainId;
66
+ readonly worldChain: ChainId;
67
+ readonly katana: ChainId;
68
+ };
69
+
70
+ export declare const formatAmount: (amount: string, decimals: number, maxDecimals?: number) => string;
71
+
72
+ export declare const getBaseAsset: (chainId: ChainId) => Asset_2 | undefined;
73
+
74
+ export declare const getChainColor: (chainId: ChainId) => string;
75
+
76
+ export declare const getChainIcon: (chainId: ChainId) => string | undefined;
77
+
78
+ export declare const getChainName: (chainId: ChainId) => string;
79
+
80
+ export declare const getChainType: (chainId: string) => 'evm' | 'utxo' | 'cosmos' | 'solana' | 'other';
81
+
82
+ export declare const getEvmNetworkId: (chainId: string) => number;
83
+
84
+ export declare const getExplorerTxLink: (chainId: ChainId) => string;
85
+
86
+ export declare const isEvmChainId: (chainId: string) => boolean;
87
+
88
+ export declare const OTHER_CHAIN_IDS: {
89
+ readonly solana: ChainId;
90
+ };
91
+
92
+ export declare const parseAmount: (amount: string, decimals: number) => string;
93
+
94
+ declare type RawAssetData = {
95
+ byId: Record<AssetId, Asset>;
96
+ ids: AssetId[];
97
+ };
98
+
99
+ export declare enum SwapperName {
100
+ Thorchain = "THORChain",
101
+ Mayachain = "MAYAChain",
102
+ CowSwap = "CoW Swap",
103
+ Zrx = "0x",
104
+ ArbitrumBridge = "Arbitrum Bridge",
105
+ Portals = "Portals",
106
+ Chainflip = "Chainflip",
107
+ Jupiter = "Jupiter",
108
+ Relay = "Relay",
109
+ ButterSwap = "ButterSwap",
110
+ Bebop = "Bebop",
111
+ NearIntents = "NEAR Intents",
112
+ Cetus = "Cetus",
113
+ Sunio = "Sun.io",
114
+ Avnu = "AVNU"
115
+ }
116
+
117
+ export declare const SwapWidget: (props: SwapWidgetProps) => JSX.Element;
118
+
119
+ export declare type SwapWidgetProps = {
120
+ affiliateAddress?: string;
121
+ affiliateBps?: string;
122
+ apiBaseUrl?: string;
123
+ defaultSellAsset?: Asset;
124
+ defaultBuyAsset?: Asset;
125
+ disabledChainIds?: ChainId[];
126
+ disabledAssetIds?: AssetId[];
127
+ allowedChainIds?: ChainId[];
128
+ sellDisabledChainIds?: ChainId[];
129
+ buyDisabledChainIds?: ChainId[];
130
+ sellDisabledAssetIds?: AssetId[];
131
+ buyDisabledAssetIds?: AssetId[];
132
+ sellAllowedChainIds?: ChainId[];
133
+ buyAllowedChainIds?: ChainId[];
134
+ sellAllowedAssetIds?: AssetId[];
135
+ buyAllowedAssetIds?: AssetId[];
136
+ allowedSwapperNames?: SwapperName[];
137
+ walletClient?: WalletClient;
138
+ onConnectWallet?: () => void;
139
+ onSwapSuccess?: (txHash: string) => void;
140
+ onSwapError?: (error: Error) => void;
141
+ onAssetSelect?: (type: 'sell' | 'buy', asset: Asset) => void;
142
+ theme?: ThemeMode | ThemeConfig;
143
+ defaultSlippage?: string;
144
+ showPoweredBy?: boolean;
145
+ enableWalletConnection?: boolean;
146
+ walletConnectProjectId?: string;
147
+ defaultReceiveAddress?: string;
148
+ ratesRefetchInterval?: number;
149
+ isBuyAssetLocked?: boolean;
150
+ };
151
+
152
+ export declare type ThemeConfig = {
153
+ mode: ThemeMode;
154
+ accentColor?: string;
155
+ backgroundColor?: string;
156
+ cardColor?: string;
157
+ textColor?: string;
158
+ borderRadius?: string;
159
+ fontFamily?: string;
160
+ borderColor?: string;
161
+ secondaryTextColor?: string;
162
+ mutedTextColor?: string;
163
+ inputColor?: string;
164
+ hoverColor?: string;
165
+ buttonVariant?: 'filled' | 'outline';
166
+ };
167
+
168
+ export declare type ThemeMode = 'light' | 'dark';
169
+
170
+ export declare type TradeQuote = {
171
+ id: string;
172
+ rate: string;
173
+ swapperName: SwapperName;
174
+ steps: TradeQuoteStep[];
175
+ receiveAddress: string;
176
+ affiliateBps: string;
177
+ slippageTolerancePercentageDecimal?: string;
178
+ isStreaming?: boolean;
179
+ };
180
+
181
+ declare type TradeQuoteStep = {
182
+ sellAsset: Asset;
183
+ buyAsset: Asset;
184
+ sellAmountCryptoBaseUnit: string;
185
+ buyAmountCryptoBaseUnit: string;
186
+ rate: string;
187
+ source: SwapperName;
188
+ feeData: {
189
+ networkFeeCryptoBaseUnit: string;
190
+ protocolFees?: Record<AssetId, {
191
+ amountCryptoBaseUnit: string;
192
+ }>;
193
+ };
194
+ allowanceContract?: string;
195
+ estimatedExecutionTimeMs?: number;
196
+ };
197
+
198
+ export declare type TradeRate = {
199
+ swapperName: SwapperName;
200
+ rate: string;
201
+ buyAmountCryptoBaseUnit: string;
202
+ sellAmountCryptoBaseUnit: string;
203
+ steps: number;
204
+ estimatedExecutionTimeMs?: number;
205
+ affiliateBps: string;
206
+ networkFeeCryptoBaseUnit?: string;
207
+ error?: {
208
+ code: string;
209
+ message: string;
210
+ };
211
+ id?: string;
212
+ };
213
+
214
+ export declare const truncateAddress: (address: string, chars?: number) => string;
215
+
216
+ export declare const useAssetById: (assetId: AssetId | undefined) => AssetQueryResult<Asset | undefined>;
217
+
218
+ export declare const useAssets: () => AssetQueryResult<Asset[]>;
219
+
220
+ export declare const useAssetsByChainId: (chainId: ChainId | undefined) => AssetQueryResult<Asset[]>;
221
+
222
+ export declare const useAssetSearch: (query: string, chainId?: ChainId) => AssetQueryResult<Asset[]>;
223
+
224
+ export declare const useChains: () => AssetQueryResult<ChainInfo[]>;
225
+
226
+ export declare const UTXO_CHAIN_IDS: {
227
+ readonly bitcoin: ChainId;
228
+ readonly bitcoinCash: ChainId;
229
+ readonly dogecoin: ChainId;
230
+ readonly litecoin: ChainId;
231
+ };
232
+
233
+ export { }