0xtrails 0.1.13 → 0.2.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.
- package/dist/aave.d.ts.map +1 -1
- package/dist/analytics.d.ts +11 -2
- package/dist/analytics.d.ts.map +1 -1
- package/dist/apiClient.d.ts +1 -1
- package/dist/apiClient.d.ts.map +1 -1
- package/dist/{proxyCaller.d.ts → balanceInjector.d.ts} +5 -4
- package/dist/balanceInjector.d.ts.map +1 -0
- package/dist/{ccip-D3gTQONK.js → ccip-D6ToCrWc.js} +12 -12
- package/dist/cctp.d.ts.map +1 -1
- package/dist/cctpqueue.d.ts +3 -3
- package/dist/cctpqueue.d.ts.map +1 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/config.d.ts +17 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/constants.d.ts +5 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/contractUtils.d.ts +2 -0
- package/dist/contractUtils.d.ts.map +1 -1
- package/dist/customChains.d.ts +24 -0
- package/dist/customChains.d.ts.map +1 -0
- package/dist/{index-CnUM7lKf.js → index-BqgeTLL8.js} +34072 -30146
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +411 -400
- package/dist/intentEntrypoint.d.ts +96 -0
- package/dist/intentEntrypoint.d.ts.map +1 -0
- package/dist/intents.d.ts +5 -3
- package/dist/intents.d.ts.map +1 -1
- package/dist/metaTxnMonitor.d.ts.map +1 -1
- package/dist/morpho.d.ts.map +1 -1
- package/dist/pools.d.ts +3 -1
- package/dist/pools.d.ts.map +1 -1
- package/dist/prepareSend.d.ts +8 -2
- package/dist/prepareSend.d.ts.map +1 -1
- package/dist/prices.d.ts +1 -1
- package/dist/prices.d.ts.map +1 -1
- package/dist/relaySdk.d.ts.map +1 -1
- package/dist/relayer.d.ts.map +1 -1
- package/dist/toast.d.ts +9 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/tokenBalances.d.ts +6 -2
- package/dist/tokenBalances.d.ts.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/trails.d.ts +6 -5
- package/dist/trails.d.ts.map +1 -1
- package/dist/trailsClient.d.ts +12 -0
- package/dist/trailsClient.d.ts.map +1 -0
- package/dist/transactions.d.ts +8 -0
- package/dist/transactions.d.ts.map +1 -1
- package/dist/wallets.d.ts.map +1 -1
- package/dist/widget/components/AccountActionsDropdown.d.ts.map +1 -1
- package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
- package/dist/widget/components/AccountSettings.d.ts +7 -0
- package/dist/widget/components/AccountSettings.d.ts.map +1 -0
- package/dist/widget/components/ChainList.d.ts +0 -1
- package/dist/widget/components/ChainList.d.ts.map +1 -1
- package/dist/widget/components/ClassicSwap.d.ts +46 -0
- package/dist/widget/components/ClassicSwap.d.ts.map +1 -0
- package/dist/widget/components/ConfigDisplay.d.ts.map +1 -1
- package/dist/widget/components/ConnectedWallets.d.ts +9 -0
- package/dist/widget/components/ConnectedWallets.d.ts.map +1 -0
- package/dist/widget/components/DebugMenu.d.ts.map +1 -1
- package/dist/widget/components/DebugScreensList.d.ts.map +1 -1
- package/dist/widget/components/DebugToast.d.ts +3 -0
- package/dist/widget/components/DebugToast.d.ts.map +1 -0
- package/dist/widget/components/Earn.d.ts.map +1 -1
- package/dist/widget/components/EarnPools.d.ts.map +1 -1
- package/dist/widget/components/Fund.d.ts +44 -0
- package/dist/widget/components/Fund.d.ts.map +1 -0
- package/dist/widget/components/Identicon.d.ts +9 -0
- package/dist/widget/components/Identicon.d.ts.map +1 -0
- package/dist/widget/components/Pay.d.ts +46 -0
- package/dist/widget/components/Pay.d.ts.map +1 -0
- package/dist/widget/components/Receive.d.ts.map +1 -1
- package/dist/widget/components/RecentTokens.d.ts.map +1 -1
- package/dist/widget/components/Recipients.d.ts +9 -0
- package/dist/widget/components/Recipients.d.ts.map +1 -0
- package/dist/widget/components/RefundWarning.d.ts +9 -0
- package/dist/widget/components/RefundWarning.d.ts.map +1 -0
- package/dist/widget/components/SimpleSwap.d.ts.map +1 -1
- package/dist/widget/components/Swap.d.ts.map +1 -1
- package/dist/widget/components/SwapSettings.d.ts +1 -5
- package/dist/widget/components/SwapSettings.d.ts.map +1 -1
- package/dist/widget/components/ThemeProvider.d.ts.map +1 -1
- package/dist/widget/components/ThemeSyncer.d.ts +6 -0
- package/dist/widget/components/ThemeSyncer.d.ts.map +1 -0
- package/dist/widget/components/Toast.d.ts +24 -0
- package/dist/widget/components/Toast.d.ts.map +1 -0
- package/dist/widget/components/TokenList.d.ts.map +1 -1
- package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
- package/dist/widget/components/TruncatedAddress.d.ts +2 -0
- package/dist/widget/components/TruncatedAddress.d.ts.map +1 -1
- package/dist/widget/components/UserPreferences.d.ts +7 -0
- package/dist/widget/components/UserPreferences.d.ts.map +1 -0
- package/dist/widget/hooks/useBalanceVisible.d.ts +1 -0
- package/dist/widget/hooks/useBalanceVisible.d.ts.map +1 -1
- package/dist/widget/hooks/useCheckout.d.ts.map +1 -1
- package/dist/widget/hooks/useCurrentScreen.d.ts +1 -1
- package/dist/widget/hooks/useCurrentScreen.d.ts.map +1 -1
- package/dist/widget/hooks/useDebugScreens.d.ts +1 -1
- package/dist/widget/hooks/useDebugScreens.d.ts.map +1 -1
- package/dist/widget/hooks/useDefaultTokenSelection.d.ts +54 -0
- package/dist/widget/hooks/useDefaultTokenSelection.d.ts.map +1 -0
- package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +1 -1
- package/dist/widget/hooks/usePayMessage.d.ts +34 -0
- package/dist/widget/hooks/usePayMessage.d.ts.map +1 -0
- package/dist/widget/hooks/useRecipients.d.ts +17 -0
- package/dist/widget/hooks/useRecipients.d.ts.map +1 -0
- package/dist/widget/hooks/useSelectedRecipient.d.ts +12 -0
- package/dist/widget/hooks/useSelectedRecipient.d.ts.map +1 -0
- package/dist/widget/hooks/useSendForm.d.ts +2 -0
- package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
- package/dist/widget/hooks/useSwapAmount.d.ts +13 -0
- package/dist/widget/hooks/useSwapAmount.d.ts.map +1 -0
- package/dist/widget/hooks/useSwapSettings.d.ts +16 -0
- package/dist/widget/hooks/useSwapSettings.d.ts.map +1 -0
- package/dist/widget/hooks/useTargetAmount.d.ts +5 -0
- package/dist/widget/hooks/useTargetAmount.d.ts.map +1 -0
- package/dist/widget/hooks/useTheme.d.ts +14 -0
- package/dist/widget/hooks/useTheme.d.ts.map +1 -0
- package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
- package/dist/widget/index.js +2 -2
- package/dist/widget/widget.d.ts +9 -0
- package/dist/widget/widget.d.ts.map +1 -1
- package/package.json +29 -28
- package/src/aave.ts +6 -1
- package/src/analytics.ts +103 -53
- package/src/apiClient.ts +1 -1
- package/src/{proxyCaller.ts → balanceInjector.ts} +22 -17
- package/src/cctp.ts +6 -2
- package/src/cctpqueue.ts +7 -7
- package/src/chains.ts +8 -0
- package/src/config.ts +40 -9
- package/src/constants.ts +11 -8
- package/src/contractUtils.ts +33 -2
- package/src/customChains.ts +24 -0
- package/src/index.ts +11 -1
- package/src/intentEntrypoint.ts +253 -0
- package/src/intents.ts +87 -54
- package/src/metaTxnMonitor.ts +1 -0
- package/src/morpho.ts +13 -2
- package/src/pools.ts +68 -86
- package/src/prepareSend.ts +437 -207
- package/src/prices.ts +51 -7
- package/src/relaySdk.ts +6 -4
- package/src/relayer.ts +2 -0
- package/src/toast.ts +110 -0
- package/src/tokenBalances.ts +112 -20
- package/src/tokens.ts +70 -7
- package/src/trails.ts +80 -77
- package/src/trailsClient.ts +45 -0
- package/src/transactions.ts +27 -35
- package/src/umd.tsx +1 -1
- package/src/wallets.ts +2 -1
- package/src/widget/assets/sequence-logo.svg +15 -0
- package/src/widget/compiled.css +2 -2
- package/src/widget/components/AccountActionsDropdown.tsx +18 -159
- package/src/widget/components/AccountIntentTransactionHistory.tsx +346 -63
- package/src/widget/components/AccountSettings.tsx +96 -0
- package/src/widget/components/ChainFilterDropdown.tsx +1 -1
- package/src/widget/components/ChainList.tsx +10 -20
- package/src/widget/components/ClassicSwap.tsx +923 -0
- package/src/widget/components/ConfigDisplay.tsx +8 -5
- package/src/widget/components/ConnectedWallets.tsx +260 -0
- package/src/widget/components/DebugMenu.tsx +2 -0
- package/src/widget/components/DebugScreensList.tsx +3 -0
- package/src/widget/components/DebugToast.tsx +63 -0
- package/src/widget/components/Earn.tsx +108 -116
- package/src/widget/components/EarnPools.tsx +2 -4
- package/src/widget/components/EarnPoolsFilters.tsx +6 -6
- package/src/widget/components/Fund.tsx +1245 -0
- package/src/widget/components/FundMethods.tsx +1 -1
- package/src/widget/components/FundSendForm.tsx +1 -1
- package/src/widget/components/Identicon.tsx +158 -0
- package/src/widget/components/Pay.tsx +1088 -0
- package/src/widget/components/PaySendForm.tsx +1 -1
- package/src/widget/components/QuoteDetails.tsx +1 -1
- package/src/widget/components/Receipt.tsx +1 -1
- package/src/widget/components/Receive.tsx +4 -2
- package/src/widget/components/RecentTokens.tsx +2 -1
- package/src/widget/components/Recipients.tsx +448 -0
- package/src/widget/components/RefundWarning.tsx +61 -0
- package/src/widget/components/ScreenHeader.tsx +1 -1
- package/src/widget/components/SimpleSwap.tsx +74 -58
- package/src/widget/components/Swap.tsx +35 -853
- package/src/widget/components/SwapSettings.tsx +5 -11
- package/src/widget/components/ThemeProvider.tsx +32 -0
- package/src/widget/components/ThemeSyncer.tsx +47 -0
- package/src/widget/components/Toast.tsx +315 -0
- package/src/widget/components/TokenList.tsx +2 -34
- package/src/widget/components/TokenSelector.tsx +3 -3
- package/src/widget/components/TransactionDetails.tsx +153 -13
- package/src/widget/components/TruncatedAddress.tsx +5 -1
- package/src/widget/components/UserPreferences.tsx +156 -0
- package/src/widget/components/WalletList.tsx +1 -1
- package/src/widget/hooks/useBalanceVisible.tsx +40 -2
- package/src/widget/hooks/useCheckout.ts +13 -0
- package/src/widget/hooks/useCurrentScreen.tsx +3 -0
- package/src/widget/hooks/useDebugScreens.ts +12 -2
- package/src/widget/hooks/useDefaultTokenSelection.tsx +475 -0
- package/src/widget/hooks/useIntentTransactionHistory.ts +212 -0
- package/src/widget/hooks/usePayMessage.tsx +370 -0
- package/src/widget/hooks/useRecipients.ts +168 -0
- package/src/widget/hooks/useSelectedRecipient.tsx +48 -0
- package/src/widget/hooks/useSendForm.ts +179 -26
- package/src/widget/hooks/useSwapAmount.tsx +50 -0
- package/src/widget/hooks/useSwapSettings.tsx +100 -0
- package/src/widget/hooks/useTargetAmount.ts +23 -0
- package/src/widget/hooks/useTheme.tsx +80 -0
- package/src/widget/hooks/useTokenList.ts +20 -11
- package/src/widget/index.css +45 -21
- package/src/widget/widget.tsx +164 -68
- package/dist/address.d.ts +0 -2
- package/dist/address.d.ts.map +0 -1
- package/dist/proxyCaller.d.ts.map +0 -1
- package/src/address.ts +0 -6
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { LogOut, Plus, User, ChevronRight, History } from "lucide-react"
|
|
2
|
+
import type React from "react"
|
|
3
|
+
import { useWidgetProps } from "../hooks/useWidgetProps.js"
|
|
4
|
+
import { useCurrentScreen, type Screen } from "../hooks/useCurrentScreen.js"
|
|
5
|
+
import { ConnectedWallets } from "./ConnectedWallets.js"
|
|
6
|
+
import { ScreenHeader } from "./ScreenHeader.js"
|
|
7
|
+
|
|
8
|
+
const ACTIONS = [
|
|
9
|
+
{
|
|
10
|
+
label: "History",
|
|
11
|
+
screen: "account-history",
|
|
12
|
+
icon: History,
|
|
13
|
+
disabled: false,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
label: "User preferences",
|
|
17
|
+
screen: "user-preferences",
|
|
18
|
+
icon: User,
|
|
19
|
+
disabled: false,
|
|
20
|
+
},
|
|
21
|
+
{ label: "Disconnect", screen: "disconnect", icon: LogOut, disabled: false },
|
|
22
|
+
] as const
|
|
23
|
+
|
|
24
|
+
interface AccountSettingsProps {
|
|
25
|
+
onBack?: () => void
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const AccountSettings: React.FC<AccountSettingsProps> = ({ onBack }) => {
|
|
29
|
+
const { hideDisconnect, decoupleWagmi } = useWidgetProps()
|
|
30
|
+
const { setCurrentScreen } = useCurrentScreen()
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<div className="flex flex-col h-full">
|
|
34
|
+
<ScreenHeader
|
|
35
|
+
headerContent="Settings"
|
|
36
|
+
headerContentAlign="left"
|
|
37
|
+
onBack={onBack}
|
|
38
|
+
showAccountActions={false}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
{/* Connected Wallets */}
|
|
42
|
+
<div>
|
|
43
|
+
<ConnectedWallets />
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
{/* Link a Wallet */}
|
|
47
|
+
<div className="mb-4">
|
|
48
|
+
<button
|
|
49
|
+
type="button"
|
|
50
|
+
onClick={() => setCurrentScreen("wallet-list")}
|
|
51
|
+
className="w-full text-left px-0 py-3 text-sm trails-list-item flex items-center justify-between cursor-pointer transition-colors border-b border-gray-200 dark:border-gray-700 trails-text-primary"
|
|
52
|
+
>
|
|
53
|
+
<div className="flex items-center gap-3">
|
|
54
|
+
<Plus className="w-4 h-4" />
|
|
55
|
+
Link a Wallet
|
|
56
|
+
</div>
|
|
57
|
+
<span className="text-sm text-gray-500 dark:text-gray-400">›</span>
|
|
58
|
+
</button>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
{/* Actions */}
|
|
62
|
+
<div className="space-y-0">
|
|
63
|
+
{ACTIONS.map((action) => {
|
|
64
|
+
if (action.disabled) return null
|
|
65
|
+
// Hide disconnect action if hideDisconnect is true
|
|
66
|
+
if (
|
|
67
|
+
(hideDisconnect || decoupleWagmi) &&
|
|
68
|
+
action.screen === "disconnect"
|
|
69
|
+
)
|
|
70
|
+
return null
|
|
71
|
+
|
|
72
|
+
const IconComponent = action.icon
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<button
|
|
76
|
+
key={action.screen}
|
|
77
|
+
type="button"
|
|
78
|
+
onClick={() => {
|
|
79
|
+
setCurrentScreen(action.screen as Screen)
|
|
80
|
+
}}
|
|
81
|
+
className={`w-full text-left px-0 py-3 text-sm trails-list-item flex items-center justify-between cursor-pointer transition-colors trails-text-primary`}
|
|
82
|
+
>
|
|
83
|
+
<div className="flex items-center gap-3">
|
|
84
|
+
<IconComponent className="w-4 h-4" />
|
|
85
|
+
{action.label}
|
|
86
|
+
</div>
|
|
87
|
+
<ChevronRight className="w-4 h-4 text-gray-400" />
|
|
88
|
+
</button>
|
|
89
|
+
)
|
|
90
|
+
})}
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export default AccountSettings
|
|
@@ -119,7 +119,7 @@ export const ChainFilterDropdown: React.FC<ChainFilterDropdownProps> = ({
|
|
|
119
119
|
/>
|
|
120
120
|
)}
|
|
121
121
|
<ChevronDown
|
|
122
|
-
className={`h-
|
|
122
|
+
className={`h-5 w-5 text-gray-400 transition-all duration-200 ${
|
|
123
123
|
isOpen ? "rotate-180" : ""
|
|
124
124
|
}`}
|
|
125
125
|
/>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useMemo
|
|
1
|
+
import { useState, useMemo } from "react"
|
|
2
2
|
import type React from "react"
|
|
3
3
|
import { AnimatePresence, motion } from "framer-motion"
|
|
4
4
|
import { ScreenHeader } from "./ScreenHeader.js"
|
|
@@ -6,8 +6,7 @@ import { ChainImage } from "./ChainImage.js"
|
|
|
6
6
|
import { AllChainsIcon } from "./AllChainsIcon.js"
|
|
7
7
|
import { SearchInputField } from "./SearchInputField.js"
|
|
8
8
|
import { useChainFilter } from "../hooks/useChainFilter.js"
|
|
9
|
-
import {
|
|
10
|
-
import type { Chain } from "viem"
|
|
9
|
+
import { useSupportedChains } from "../../chains.js"
|
|
11
10
|
|
|
12
11
|
export interface ChainListItem {
|
|
13
12
|
chainId: number
|
|
@@ -16,33 +15,22 @@ export interface ChainListItem {
|
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
interface ChainListProps {
|
|
19
|
-
chains?: ChainListItem[]
|
|
20
18
|
onBack: () => void
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
export const ChainList: React.FC<ChainListProps> = ({
|
|
21
|
+
export const ChainList: React.FC<ChainListProps> = ({ onBack }) => {
|
|
24
22
|
const [searchQuery, setSearchQuery] = useState("")
|
|
25
|
-
const [supportedChains, setSupportedChains] = useState<Chain[]>([])
|
|
26
23
|
const { selectedChainId, setSelectedChainId } = useChainFilter()
|
|
27
|
-
|
|
28
|
-
// Load supported chains on mount if no chains provided
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (!chains) {
|
|
31
|
-
getSupportedSequenceChains().then(setSupportedChains)
|
|
32
|
-
}
|
|
33
|
-
}, [chains])
|
|
24
|
+
const { supportedChains } = useSupportedChains()
|
|
34
25
|
|
|
35
26
|
// Convert chains to ChainListItem format
|
|
36
27
|
const chainList = useMemo(() => {
|
|
37
|
-
if (chains) {
|
|
38
|
-
return chains
|
|
39
|
-
}
|
|
40
28
|
return supportedChains.map((chain) => ({
|
|
41
29
|
chainId: chain.id,
|
|
42
30
|
name: chain.name,
|
|
43
31
|
imageUrl: "", // ChainImage component handles the icons
|
|
44
32
|
}))
|
|
45
|
-
}, [
|
|
33
|
+
}, [supportedChains])
|
|
46
34
|
|
|
47
35
|
// Filter chains based on search query
|
|
48
36
|
const filteredChains = useMemo(() => {
|
|
@@ -83,7 +71,7 @@ export const ChainList: React.FC<ChainListProps> = ({ chains, onBack }) => {
|
|
|
83
71
|
<motion.button
|
|
84
72
|
type="button"
|
|
85
73
|
onClick={() => handleChainSelect(null)}
|
|
86
|
-
className="w-full py-2 px-4 flex items-center space-x-3 transition-all duration-200 trails-
|
|
74
|
+
className="w-full py-2 px-4 flex items-center space-x-3 transition-all duration-200 trails-list-item trails-border-radius-list-button cursor-pointer"
|
|
87
75
|
title="Show tokens from all chains"
|
|
88
76
|
initial={{ opacity: 0, y: 20 }}
|
|
89
77
|
animate={{ opacity: 1, y: 0 }}
|
|
@@ -112,8 +100,10 @@ export const ChainList: React.FC<ChainListProps> = ({ chains, onBack }) => {
|
|
|
112
100
|
key={chain.chainId}
|
|
113
101
|
type="button"
|
|
114
102
|
onClick={() => handleChainSelect(chain.chainId)}
|
|
115
|
-
className={`w-full py-2 px-4 flex items-center space-x-3 transition-all duration-200 trails-
|
|
116
|
-
selectedChainId === chain.chainId
|
|
103
|
+
className={`w-full py-2 px-4 flex items-center space-x-3 transition-all duration-200 trails-list-item trails-border-radius-list-button cursor-pointer ${
|
|
104
|
+
selectedChainId === chain.chainId
|
|
105
|
+
? "trails-list-item-selected"
|
|
106
|
+
: ""
|
|
117
107
|
}`}
|
|
118
108
|
title={`Select ${chain.name}`}
|
|
119
109
|
initial={{ opacity: 0, y: 20 }}
|