thirdweb 5.99.3 → 5.100.0-nightly-713ebe0a2d6d8a409e41ce0f0317fc34b1f221bb-20250520000414
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/cjs/bridge/Buy.js +16 -12
- package/dist/cjs/bridge/Buy.js.map +1 -1
- package/dist/cjs/bridge/Chains.js +2 -2
- package/dist/cjs/bridge/Chains.js.map +1 -1
- package/dist/cjs/bridge/Routes.js +2 -2
- package/dist/cjs/bridge/Routes.js.map +1 -1
- package/dist/cjs/bridge/Sell.js +17 -13
- package/dist/cjs/bridge/Sell.js.map +1 -1
- package/dist/cjs/bridge/Status.js +15 -2
- package/dist/cjs/bridge/Status.js.map +1 -1
- package/dist/cjs/bridge/Transfer.js +229 -0
- package/dist/cjs/bridge/Transfer.js.map +1 -0
- package/dist/cjs/bridge/index.js +2 -1
- package/dist/cjs/bridge/index.js.map +1 -1
- package/dist/cjs/bridge/types/Token.js +3 -0
- package/dist/cjs/bridge/types/Token.js.map +1 -0
- package/dist/cjs/pay/buyWithCrypto/getQuote.js +159 -53
- package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getStatus.js +160 -14
- package/dist/cjs/pay/buyWithCrypto/getStatus.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js +95 -37
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/cjs/pay/utils/definitions.js +1 -31
- package/dist/cjs/pay/utils/definitions.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +23 -21
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +2 -15
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js +0 -135
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +3 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js +4 -4
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +83 -34
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +2 -2
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/cjs/utils/any-evm/zksync/constants.js +1 -0
- package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -1
- package/dist/cjs/utils/domains.js +3 -0
- package/dist/cjs/utils/domains.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bridge/Buy.js +16 -12
- package/dist/esm/bridge/Buy.js.map +1 -1
- package/dist/esm/bridge/Chains.js +2 -2
- package/dist/esm/bridge/Chains.js.map +1 -1
- package/dist/esm/bridge/Routes.js +2 -2
- package/dist/esm/bridge/Routes.js.map +1 -1
- package/dist/esm/bridge/Sell.js +17 -13
- package/dist/esm/bridge/Sell.js.map +1 -1
- package/dist/esm/bridge/Status.js +15 -2
- package/dist/esm/bridge/Status.js.map +1 -1
- package/dist/esm/bridge/Transfer.js +226 -0
- package/dist/esm/bridge/Transfer.js.map +1 -0
- package/dist/esm/bridge/index.js +1 -0
- package/dist/esm/bridge/index.js.map +1 -1
- package/dist/esm/bridge/types/Token.js +2 -0
- package/dist/esm/bridge/types/Token.js.map +1 -0
- package/dist/esm/pay/buyWithCrypto/getQuote.js +159 -53
- package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getStatus.js +160 -14
- package/dist/esm/pay/buyWithCrypto/getStatus.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getTransfer.js +95 -37
- package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/esm/pay/utils/definitions.js +0 -25
- package/dist/esm/pay/utils/definitions.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +23 -21
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +2 -15
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js +1 -134
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +3 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +84 -34
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +2 -2
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/esm/utils/any-evm/zksync/constants.js +1 -0
- package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -1
- package/dist/esm/utils/domains.js +3 -0
- package/dist/esm/utils/domains.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/bridge/Buy.d.ts +10 -8
- package/dist/types/bridge/Buy.d.ts.map +1 -1
- package/dist/types/bridge/Sell.d.ts +12 -10
- package/dist/types/bridge/Sell.d.ts.map +1 -1
- package/dist/types/bridge/Status.d.ts.map +1 -1
- package/dist/types/bridge/Transfer.d.ts +199 -0
- package/dist/types/bridge/Transfer.d.ts.map +1 -0
- package/dist/types/bridge/index.d.ts +1 -0
- package/dist/types/bridge/index.d.ts.map +1 -1
- package/dist/types/bridge/types/Route.d.ts +3 -17
- package/dist/types/bridge/types/Route.d.ts.map +1 -1
- package/dist/types/bridge/types/Status.d.ts +15 -0
- package/dist/types/bridge/types/Status.d.ts.map +1 -1
- package/dist/types/bridge/types/Token.d.ts +10 -0
- package/dist/types/bridge/types/Token.d.ts.map +1 -0
- package/dist/types/pay/buyWithCrypto/commonTypes.d.ts +0 -9
- package/dist/types/pay/buyWithCrypto/commonTypes.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getStatus.d.ts +1 -1
- package/dist/types/pay/buyWithCrypto/getStatus.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
- package/dist/types/pay/utils/definitions.d.ts +0 -25
- package/dist/types/pay/utils/definitions.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/TransactionsScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts +2 -13
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.d.ts +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.d.ts +8 -4
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
- package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -1
- package/dist/types/utils/domains.d.ts +6 -0
- package/dist/types/utils/domains.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bridge/Buy.ts +18 -12
- package/src/bridge/Chains.ts +2 -2
- package/src/bridge/Routes.ts +2 -2
- package/src/bridge/Sell.ts +19 -13
- package/src/bridge/Status.ts +15 -2
- package/src/bridge/Transfer.test.ts +76 -0
- package/src/bridge/Transfer.ts +270 -0
- package/src/bridge/index.ts +1 -0
- package/src/bridge/types/Route.ts +3 -17
- package/src/bridge/types/Status.ts +15 -1
- package/src/bridge/types/Token.ts +10 -0
- package/src/pay/buyWithCrypto/commonTypes.ts +0 -10
- package/src/pay/buyWithCrypto/getQuote.ts +210 -100
- package/src/pay/buyWithCrypto/getStatus.ts +213 -20
- package/src/pay/buyWithCrypto/getTransfer.ts +129 -61
- package/src/pay/utils/definitions.ts +0 -34
- package/src/react/core/hooks/transaction/useSendTransaction.ts +27 -33
- package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +29 -35
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +3 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.ts +2 -181
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +3 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.ts +1 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.ts +118 -63
- package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +0 -2
- package/src/utils/any-evm/zksync/constants.ts +1 -0
- package/src/utils/domain.test.ts +1 -0
- package/src/utils/domains.ts +8 -0
- package/src/version.ts +1 -1
- package/dist/cjs/bridge/constants.js +0 -5
- package/dist/cjs/bridge/constants.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +0 -54
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +0 -52
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +0 -1
- package/dist/esm/bridge/constants.js +0 -2
- package/dist/esm/bridge/constants.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +0 -51
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +0 -48
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +0 -1
- package/dist/types/bridge/constants.d.ts +0 -2
- package/dist/types/bridge/constants.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts +0 -10
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.d.ts +0 -9
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.d.ts.map +0 -1
- package/src/bridge/constants.ts +0 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx +0 -163
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.tsx +0 -127
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { status as bridgeStatus } from "../../bridge/index.js";
|
2
|
+
import { toTokens } from "../../utils/units.js";
|
3
3
|
/**
|
4
4
|
* Gets the status of a buy with crypto transaction
|
5
5
|
* @param buyWithCryptoTransaction - Object of type [`BuyWithCryptoTransaction`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransaction)
|
@@ -37,7 +37,7 @@ import { getPayBuyWithCryptoStatusUrl } from "../utils/definitions.js";
|
|
37
37
|
* }});
|
38
38
|
* ```
|
39
39
|
* @returns Object of type [`BuyWithCryptoStatus`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoStatus)
|
40
|
-
* @deprecated
|
40
|
+
* @deprecated use Bridge.status instead
|
41
41
|
* @buyCrypto
|
42
42
|
*/
|
43
43
|
export async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
|
@@ -45,23 +45,169 @@ export async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
|
|
45
45
|
if (!buyWithCryptoTransaction.transactionHash) {
|
46
46
|
throw new Error("Transaction hash is required");
|
47
47
|
}
|
48
|
-
const
|
48
|
+
const result = await bridgeStatus({
|
49
49
|
transactionHash: buyWithCryptoTransaction.transactionHash,
|
50
|
-
chainId: buyWithCryptoTransaction.chainId
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
50
|
+
chainId: buyWithCryptoTransaction.chainId,
|
51
|
+
client: buyWithCryptoTransaction.client,
|
52
|
+
});
|
53
|
+
switch (result.status) {
|
54
|
+
case "COMPLETED": {
|
55
|
+
const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
|
56
|
+
const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
|
57
|
+
return toBuyWithCryptoStatus({
|
58
|
+
originTransaction,
|
59
|
+
destinationTransaction,
|
60
|
+
originAmount: result.originAmount,
|
61
|
+
destinationAmount: result.destinationAmount,
|
62
|
+
originTokenAddress: result.originTokenAddress,
|
63
|
+
destinationTokenAddress: result.destinationTokenAddress,
|
64
|
+
originChainId: result.originChainId,
|
65
|
+
destinationChainId: result.destinationChainId,
|
66
|
+
status: result.status,
|
67
|
+
sender: result.sender,
|
68
|
+
receiver: result.receiver,
|
69
|
+
paymentId: result.paymentId,
|
70
|
+
originToken: result.originToken,
|
71
|
+
destinationToken: result.destinationToken,
|
72
|
+
purchaseData: result.purchaseData,
|
73
|
+
});
|
74
|
+
}
|
75
|
+
case "PENDING": {
|
76
|
+
return toBuyWithCryptoStatus({
|
77
|
+
originAmount: result.originAmount,
|
78
|
+
originTokenAddress: result.originTokenAddress,
|
79
|
+
destinationTokenAddress: result.destinationTokenAddress,
|
80
|
+
originChainId: result.originChainId,
|
81
|
+
destinationChainId: result.destinationChainId,
|
82
|
+
status: result.status,
|
83
|
+
sender: result.sender,
|
84
|
+
receiver: result.receiver,
|
85
|
+
paymentId: result.paymentId,
|
86
|
+
originToken: result.originToken,
|
87
|
+
destinationToken: result.destinationToken,
|
88
|
+
purchaseData: result.purchaseData,
|
89
|
+
});
|
90
|
+
}
|
91
|
+
case "FAILED": {
|
92
|
+
const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
|
93
|
+
const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
|
94
|
+
return toBuyWithCryptoStatus({
|
95
|
+
originTransaction,
|
96
|
+
destinationTransaction,
|
97
|
+
originAmount: BigInt(0), // TODO: get from API
|
98
|
+
originTokenAddress: "", // TODO: get from API
|
99
|
+
destinationTokenAddress: "", // TODO: get from API
|
100
|
+
originChainId: 0, // TODO: get from API
|
101
|
+
destinationChainId: 0, // TODO: get from API
|
102
|
+
status: result.status,
|
103
|
+
sender: "",
|
104
|
+
receiver: "",
|
105
|
+
paymentId: "",
|
106
|
+
originToken: undefined,
|
107
|
+
destinationToken: undefined,
|
108
|
+
purchaseData: result.purchaseData,
|
109
|
+
});
|
110
|
+
}
|
111
|
+
default: {
|
112
|
+
return {
|
113
|
+
status: "NOT_FOUND",
|
114
|
+
};
|
115
|
+
}
|
58
116
|
}
|
59
|
-
const data = (await response.json()).result;
|
60
|
-
return data;
|
61
117
|
}
|
62
118
|
catch (error) {
|
63
119
|
console.error("Fetch error:", error);
|
64
120
|
throw new Error(`Fetch failed: ${error}`);
|
65
121
|
}
|
66
122
|
}
|
123
|
+
function toBuyWithCryptoStatus(args) {
|
124
|
+
const { originTransaction, destinationTransaction, status, purchaseData, originAmount, destinationAmount, originTokenAddress, destinationTokenAddress, originChainId, destinationChainId, sender, receiver, originToken, destinationToken, } = args;
|
125
|
+
return {
|
126
|
+
fromAddress: sender,
|
127
|
+
toAddress: receiver,
|
128
|
+
quote: {
|
129
|
+
createdAt: new Date().toISOString(),
|
130
|
+
estimated: {
|
131
|
+
fromAmountUSDCents: 0,
|
132
|
+
toAmountMinUSDCents: 0,
|
133
|
+
toAmountUSDCents: 0,
|
134
|
+
slippageBPS: 0,
|
135
|
+
feesUSDCents: 0,
|
136
|
+
gasCostUSDCents: 0,
|
137
|
+
durationSeconds: 0,
|
138
|
+
},
|
139
|
+
fromAmount: originToken
|
140
|
+
? toTokens(originAmount, originToken.decimals).toString()
|
141
|
+
: "",
|
142
|
+
fromAmountWei: originAmount.toString(),
|
143
|
+
toAmount: destinationToken && destinationAmount
|
144
|
+
? toTokens(destinationAmount, destinationToken.decimals).toString()
|
145
|
+
: "",
|
146
|
+
toAmountWei: destinationAmount ? destinationAmount.toString() : "",
|
147
|
+
toAmountMin: destinationToken
|
148
|
+
? toTokens(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
|
149
|
+
: "",
|
150
|
+
toAmountMinWei: destinationAmount ? destinationAmount.toString() : "",
|
151
|
+
fromToken: {
|
152
|
+
tokenAddress: originTokenAddress,
|
153
|
+
chainId: originChainId,
|
154
|
+
decimals: originToken?.decimals ?? 18,
|
155
|
+
name: originToken?.name ?? "",
|
156
|
+
symbol: originToken?.symbol ?? "",
|
157
|
+
priceUSDCents: 0,
|
158
|
+
},
|
159
|
+
toToken: {
|
160
|
+
tokenAddress: destinationTokenAddress,
|
161
|
+
chainId: destinationChainId,
|
162
|
+
decimals: destinationToken?.decimals ?? 18,
|
163
|
+
name: destinationToken?.name ?? "",
|
164
|
+
symbol: destinationToken?.symbol ?? "",
|
165
|
+
priceUSDCents: 0,
|
166
|
+
},
|
167
|
+
},
|
168
|
+
swapType: originTransaction?.chainId === destinationTransaction?.chainId
|
169
|
+
? "SAME_CHAIN"
|
170
|
+
: "CROSS_CHAIN", // TODO transfer type?
|
171
|
+
status: status,
|
172
|
+
subStatus: status === "COMPLETED" ? "SUCCESS" : "NONE",
|
173
|
+
purchaseData: purchaseData,
|
174
|
+
bridge: "STARPORT",
|
175
|
+
destination: {
|
176
|
+
amount: destinationToken
|
177
|
+
? toTokens(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
|
178
|
+
: "",
|
179
|
+
amountWei: destinationAmount?.toString() ?? "",
|
180
|
+
token: {
|
181
|
+
tokenAddress: destinationTokenAddress,
|
182
|
+
chainId: destinationChainId,
|
183
|
+
decimals: destinationToken?.decimals ?? 18,
|
184
|
+
name: destinationToken?.name ?? "",
|
185
|
+
symbol: destinationToken?.symbol ?? "",
|
186
|
+
priceUSDCents: 0,
|
187
|
+
},
|
188
|
+
amountUSDCents: 0,
|
189
|
+
completedAt: new Date().toISOString(),
|
190
|
+
explorerLink: "",
|
191
|
+
transactionHash: destinationTransaction?.transactionHash ?? "",
|
192
|
+
},
|
193
|
+
source: {
|
194
|
+
amount: originToken
|
195
|
+
? toTokens(originAmount, originToken.decimals).toString()
|
196
|
+
: "",
|
197
|
+
amountWei: originAmount.toString(),
|
198
|
+
token: {
|
199
|
+
tokenAddress: originTokenAddress,
|
200
|
+
chainId: originChainId,
|
201
|
+
decimals: originToken?.decimals ?? 18,
|
202
|
+
name: originToken?.name ?? "",
|
203
|
+
symbol: originToken?.symbol ?? "",
|
204
|
+
priceUSDCents: 0,
|
205
|
+
},
|
206
|
+
amountUSDCents: 0,
|
207
|
+
completedAt: new Date().toISOString(),
|
208
|
+
explorerLink: "",
|
209
|
+
transactionHash: originTransaction?.transactionHash ?? "",
|
210
|
+
},
|
211
|
+
};
|
212
|
+
}
|
67
213
|
//# sourceMappingURL=getStatus.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getStatus.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAsFhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,wBAAkD;IAElD,IAAI,CAAC;QACH,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,eAAe,EAAE,wBAAwB,CAAC,eAAsB;YAChE,OAAO,EAAE,wBAAwB,CAAC,OAAO;YACzC,MAAM,EAAE,wBAAwB,CAAC,MAAM;SACxC,CAAC,CAAC;QAEH,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,wBAAwB,CAAC,OAAO,CACxD,CAAC;gBACF,MAAM,sBAAsB,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,CACtD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,wBAAwB,CAAC,OAAO,CACxD,CAAC;gBAEF,OAAO,qBAAqB,CAAC;oBAC3B,iBAAiB;oBACjB,sBAAsB;oBACtB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;oBACvD,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,YAAY,EAAE,MAAM,CAAC,YAAkC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,OAAO,qBAAqB,CAAC;oBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;oBACvD,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,YAAY,EAAE,MAAM,CAAC,YAAkC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,wBAAwB,CAAC,OAAO,CACxD,CAAC;gBACF,MAAM,sBAAsB,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,CACtD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,wBAAwB,CAAC,OAAO,CACxD,CAAC;gBACF,OAAO,qBAAqB,CAAC;oBAC3B,iBAAiB;oBACjB,sBAAsB;oBACtB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,qBAAqB;oBAC9C,kBAAkB,EAAE,EAAE,EAAE,qBAAqB;oBAC7C,uBAAuB,EAAE,EAAE,EAAE,qBAAqB;oBAClD,aAAa,EAAE,CAAC,EAAE,qBAAqB;oBACvC,kBAAkB,EAAE,CAAC,EAAE,qBAAqB;oBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,SAAS;oBACtB,gBAAgB,EAAE,SAAS;oBAC3B,YAAY,EAAE,MAAM,CAAC,YAAkC;iBACxD,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO;oBACL,MAAM,EAAE,WAAW;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAgB9B;IACC,MAAM,EACJ,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,gBAAgB,GACjB,GAAG,IAAI,CAAC;IACT,OAAO;QACL,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE;gBACT,kBAAkB,EAAE,CAAC;gBACrB,mBAAmB,EAAE,CAAC;gBACtB,gBAAgB,EAAE,CAAC;gBACnB,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,CAAC;aACnB;YACD,UAAU,EAAE,WAAW;gBACrB,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBACzD,CAAC,CAAC,EAAE;YACN,aAAa,EAAE,YAAY,CAAC,QAAQ,EAAE;YACtC,QAAQ,EACN,gBAAgB,IAAI,iBAAiB;gBACnC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBACnE,CAAC,CAAC,EAAE;YACR,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;YAClE,WAAW,EAAE,gBAAgB;gBAC3B,CAAC,CAAC,QAAQ,CACN,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAC9B,gBAAgB,CAAC,QAAQ,CAC1B,CAAC,QAAQ,EAAE;gBACd,CAAC,CAAC,EAAE;YACN,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;YACrE,SAAS,EAAE;gBACT,YAAY,EAAE,kBAAkB;gBAChC,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,EAAE;gBACrC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;gBAC7B,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,EAAE;gBACjC,aAAa,EAAE,CAAC;aACjB;YACD,OAAO,EAAE;gBACP,YAAY,EAAE,uBAAuB;gBACrC,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE;gBAC1C,IAAI,EAAE,gBAAgB,EAAE,IAAI,IAAI,EAAE;gBAClC,MAAM,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAAE;gBACtC,aAAa,EAAE,CAAC;aACjB;SACF;QACD,QAAQ,EACN,iBAAiB,EAAE,OAAO,KAAK,sBAAsB,EAAE,OAAO;YAC5D,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,aAAa,EAAE,sBAAsB;QAC3C,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QACtD,YAAY,EAAE,YAAkC;QAChD,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE;YACX,MAAM,EAAE,gBAAgB;gBACtB,CAAC,CAAC,QAAQ,CACN,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAC9B,gBAAgB,CAAC,QAAQ,CAC1B,CAAC,QAAQ,EAAE;gBACd,CAAC,CAAC,EAAE;YACN,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9C,KAAK,EAAE;gBACL,YAAY,EAAE,uBAAuB;gBACrC,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE;gBAC1C,IAAI,EAAE,gBAAgB,EAAE,IAAI,IAAI,EAAE;gBAClC,MAAM,EAAE,gBAAgB,EAAE,MAAM,IAAI,EAAE;gBACtC,aAAa,EAAE,CAAC;aACjB;YACD,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,sBAAsB,EAAE,eAAe,IAAI,EAAE;SAC/D;QACD,MAAM,EAAE;YACN,MAAM,EAAE,WAAW;gBACjB,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBACzD,CAAC,CAAC,EAAE;YACN,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE;YAClC,KAAK,EAAE;gBACL,YAAY,EAAE,kBAAkB;gBAChC,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,EAAE;gBACrC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;gBAC7B,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,EAAE;gBACjC,aAAa,EAAE,CAAC;aACjB;YACD,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,iBAAiB,EAAE,eAAe,IAAI,EAAE;SAC1D;KACF,CAAC;AACJ,CAAC"}
|
@@ -1,7 +1,10 @@
|
|
1
|
+
import { Value } from "ox";
|
2
|
+
import * as ox__AbiFunction from "ox/AbiFunction";
|
3
|
+
import { Transfer } from "../../bridge/index.js";
|
1
4
|
import { getCachedChain } from "../../chains/utils.js";
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
5
|
+
import { NATIVE_TOKEN_ADDRESS } from "../../constants/addresses.js";
|
6
|
+
import { getContract } from "../../contract/contract.js";
|
7
|
+
import { decimals } from "../../extensions/erc20/read/decimals.js";
|
5
8
|
/**
|
6
9
|
* Get a quote of type [`BuyWithCryptoTransfer`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransfer) to facilitate a token transfer transaction.
|
7
10
|
* Using this instead of a native transfer allows you to receive status and webhooks about successful or failed payments.
|
@@ -31,46 +34,101 @@ import { getPayBuyWithCryptoTransferEndpoint } from "../utils/definitions.js";
|
|
31
34
|
*/
|
32
35
|
export async function getBuyWithCryptoTransfer(params) {
|
33
36
|
try {
|
34
|
-
const
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
Accept: "application/json",
|
39
|
-
"Content-Type": "application/json",
|
40
|
-
},
|
41
|
-
body: stringify({
|
42
|
-
fromAddress: params.fromAddress,
|
43
|
-
toAddress: params.toAddress,
|
44
|
-
chainId: params.chainId,
|
45
|
-
tokenAddress: params.tokenAddress,
|
46
|
-
amount: params.amount,
|
47
|
-
purchaseData: params.purchaseData,
|
48
|
-
feePayer: params.feePayer,
|
49
|
-
}),
|
37
|
+
const tokenContract = getContract({
|
38
|
+
address: params.tokenAddress,
|
39
|
+
chain: getCachedChain(params.chainId),
|
40
|
+
client: params.client,
|
50
41
|
});
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
56
|
-
|
42
|
+
const tokenDecimals = tokenContract.address.toLowerCase() === NATIVE_TOKEN_ADDRESS
|
43
|
+
? 18
|
44
|
+
: await decimals({
|
45
|
+
contract: tokenContract,
|
46
|
+
});
|
47
|
+
const amount = Value.from(params.amount, tokenDecimals);
|
48
|
+
const quote = await Transfer.prepare({
|
49
|
+
chainId: params.chainId,
|
50
|
+
tokenAddress: params.tokenAddress,
|
51
|
+
amount,
|
52
|
+
sender: params.fromAddress,
|
53
|
+
receiver: params.toAddress,
|
54
|
+
client: params.client,
|
55
|
+
feePayer: params.feePayer,
|
56
|
+
});
|
57
|
+
const firstStep = quote.steps[0];
|
58
|
+
if (!firstStep) {
|
59
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
60
|
+
}
|
61
|
+
const approvalTxs = firstStep.transactions.filter((tx) => tx.action === "approval");
|
62
|
+
if (approvalTxs.length > 1) {
|
63
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
64
|
+
}
|
65
|
+
const approvalTx = approvalTxs[0];
|
66
|
+
let approvalData;
|
67
|
+
if (approvalTx) {
|
68
|
+
const abiFunction = ox__AbiFunction.from([
|
69
|
+
"function approve(address spender, uint256 amount)",
|
70
|
+
]);
|
71
|
+
const [spender, amount] = ox__AbiFunction.decodeData(abiFunction, approvalTx.data);
|
72
|
+
approvalData = {
|
73
|
+
chainId: firstStep.originToken.chainId,
|
74
|
+
tokenAddress: firstStep.originToken.address,
|
75
|
+
spenderAddress: spender,
|
76
|
+
amountWei: amount.toString(),
|
77
|
+
};
|
78
|
+
}
|
79
|
+
const txs = firstStep.transactions.filter((tx) => tx.action !== "approval");
|
80
|
+
if (txs.length > 1) {
|
81
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
82
|
+
}
|
83
|
+
const tx = txs[0];
|
84
|
+
if (!tx) {
|
85
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
57
86
|
}
|
58
|
-
const data = (await response.json()).result;
|
59
87
|
const transfer = {
|
60
88
|
transactionRequest: {
|
61
|
-
|
62
|
-
client: params.client,
|
63
|
-
data: data.transactionRequest.data,
|
64
|
-
to: data.transactionRequest.to,
|
65
|
-
value: BigInt(data.transactionRequest.value),
|
89
|
+
...tx,
|
66
90
|
extraGas: 50000n, // extra gas buffer
|
67
91
|
},
|
68
|
-
approvalData
|
69
|
-
fromAddress:
|
70
|
-
toAddress:
|
71
|
-
paymentToken:
|
72
|
-
|
73
|
-
|
92
|
+
approvalData,
|
93
|
+
fromAddress: params.fromAddress,
|
94
|
+
toAddress: params.toAddress,
|
95
|
+
paymentToken: {
|
96
|
+
token: {
|
97
|
+
tokenAddress: firstStep.originToken.address,
|
98
|
+
chainId: firstStep.originToken.chainId,
|
99
|
+
decimals: firstStep.originToken.decimals,
|
100
|
+
symbol: firstStep.originToken.symbol,
|
101
|
+
name: firstStep.originToken.name,
|
102
|
+
priceUSDCents: firstStep.originToken.priceUsd * 100,
|
103
|
+
},
|
104
|
+
amountWei: quote.originAmount.toString(),
|
105
|
+
amount: Value.format(quote.originAmount, firstStep.originToken.decimals).toString(),
|
106
|
+
amountUSDCents: Number(Value.format(quote.originAmount, firstStep.originToken.decimals)) *
|
107
|
+
firstStep.originToken.priceUsd *
|
108
|
+
100,
|
109
|
+
},
|
110
|
+
processingFee: {
|
111
|
+
token: {
|
112
|
+
tokenAddress: firstStep.originToken.address,
|
113
|
+
chainId: firstStep.originToken.chainId,
|
114
|
+
decimals: firstStep.originToken.decimals,
|
115
|
+
symbol: firstStep.originToken.symbol,
|
116
|
+
name: firstStep.originToken.name,
|
117
|
+
priceUSDCents: firstStep.originToken.priceUsd * 100,
|
118
|
+
},
|
119
|
+
amountWei: params.feePayer === "sender"
|
120
|
+
? (quote.originAmount - quote.destinationAmount).toString()
|
121
|
+
: "0",
|
122
|
+
amount: params.feePayer === "sender"
|
123
|
+
? Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals).toString()
|
124
|
+
: "0",
|
125
|
+
amountUSDCents: params.feePayer === "sender"
|
126
|
+
? Number(Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals)) *
|
127
|
+
firstStep.originToken.priceUsd *
|
128
|
+
100
|
129
|
+
: 0,
|
130
|
+
},
|
131
|
+
estimatedGasCostUSDCents: 0,
|
74
132
|
client: params.client,
|
75
133
|
};
|
76
134
|
return transfer;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":"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"}
|
@@ -5,21 +5,6 @@ const getPayBaseUrl = () => {
|
|
5
5
|
? `http://${payDomain}`
|
6
6
|
: `https://${payDomain}`;
|
7
7
|
};
|
8
|
-
/**
|
9
|
-
* Endpoint to get the status of a "Buy with Crypto" quote.
|
10
|
-
* @internal
|
11
|
-
*/
|
12
|
-
export const getPayBuyWithCryptoStatusUrl = () => `${getPayBaseUrl()}/buy-with-crypto/status/v1`;
|
13
|
-
/**
|
14
|
-
* Endpoint to get "Buy with Crypto" quote.
|
15
|
-
* @internal
|
16
|
-
*/
|
17
|
-
export const getPayBuyWithCryptoQuoteEndpoint = () => `${getPayBaseUrl()}/buy-with-crypto/quote/v1`;
|
18
|
-
/**
|
19
|
-
* Endpoint to get "Buy with Crypto" transfer.
|
20
|
-
* @internal
|
21
|
-
*/
|
22
|
-
export const getPayBuyWithCryptoTransferEndpoint = () => `${getPayBaseUrl()}/buy-with-crypto/transfer/v1`;
|
23
8
|
/**
|
24
9
|
* Endpoint to get a "Buy with Fiat" quote.
|
25
10
|
* @internal
|
@@ -40,16 +25,6 @@ export const getPayBuyWithFiatHistoryEndpoint = () => `${getPayBaseUrl()}/buy-wi
|
|
40
25
|
* @internal
|
41
26
|
*/
|
42
27
|
export const getPayBuyWithCryptoHistoryEndpoint = () => `${getPayBaseUrl()}/buy-with-crypto/history/v1`;
|
43
|
-
/**
|
44
|
-
* Endpoint to get a list of supported destination chains and tokens for thirdweb pay.
|
45
|
-
* @internal
|
46
|
-
*/
|
47
|
-
export const getPaySupportedDestinations = () => `${getPayBaseUrl()}/destination-tokens/v1`;
|
48
|
-
/**
|
49
|
-
* Endpoint to get a list of supported source chains + tokens for thirdweb pay.
|
50
|
-
* @internal
|
51
|
-
*/
|
52
|
-
export const getPaySupportedSources = () => `${getPayBaseUrl()}/buy-with-crypto/source-tokens/v1`;
|
53
28
|
/**
|
54
29
|
* Endpoint to get buy history for a given wallet address.
|
55
30
|
* This includes both "Buy with Crypto" and "Buy with Fiat" transactions.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../src/pay/utils/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,SAAS,GAAW,kBAAkB,EAAE,CAAC,GAAG,CAAC;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,UAAU,SAAS,EAAE;QACvB,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../../src/pay/utils/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,SAAS,GAAW,kBAAkB,EAAE,CAAC,GAAG,CAAC;IACnD,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,UAAU,SAAS,EAAE;QACvB,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE,CACjD,GAAG,aAAa,EAAE,yBAAyB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAClD,GAAG,aAAa,EAAE,0BAA0B,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,GAAG,aAAa,EAAE,2BAA2B,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,EAAE,CACrD,GAAG,aAAa,EAAE,6BAA6B,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,GAAG,aAAa,EAAE,oBAAoB,CAAC;AAEzC,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,EAAE,CACpD,GAAG,aAAa,EAAE,4BAA4B,CAAC;AAEjD,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,EAAE,CACpD,GAAG,aAAa,EAAE,4BAA4B,CAAC"}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { useMutation } from "@tanstack/react-query";
|
2
2
|
import { trackPayEvent } from "../../../../analytics/track/pay.js";
|
3
|
+
import * as Bridge from "../../../../bridge/index.js";
|
3
4
|
import { sendTransaction } from "../../../../transaction/actions/send-transaction.js";
|
4
5
|
import { getTransactionGasCost } from "../../../../transaction/utils.js";
|
5
6
|
import { resolvePromisedValue } from "../../../../utils/promise/resolve-promised-value.js";
|
6
7
|
import { getTokenBalance } from "../../../../wallets/utils/getTokenBalance.js";
|
7
8
|
import { getWalletBalance } from "../../../../wallets/utils/getWalletBalance.js";
|
8
|
-
import { fetchBuySupportedDestinations } from "../../../web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js";
|
9
9
|
import { hasSponsoredTransactionsEnabled } from "../../utils/wallet.js";
|
10
10
|
/**
|
11
11
|
* A hook to send a transaction.
|
@@ -65,33 +65,31 @@ export function useSendTransactionCore(args) {
|
|
65
65
|
};
|
66
66
|
(async () => {
|
67
67
|
try {
|
68
|
-
const [_nativeValue, _erc20Value
|
68
|
+
const [_nativeValue, _erc20Value] = await Promise.all([
|
69
69
|
resolvePromisedValue(tx.value),
|
70
70
|
resolvePromisedValue(tx.erc20Value),
|
71
|
-
fetchBuySupportedDestinations(tx.client).catch((err) => {
|
72
|
-
trackPayEvent({
|
73
|
-
client: tx.client,
|
74
|
-
walletAddress: account.address,
|
75
|
-
walletType: wallet?.id,
|
76
|
-
toChainId: tx.chain.id,
|
77
|
-
event: "pay_transaction_modal_pay_api_error",
|
78
|
-
error: err?.message,
|
79
|
-
});
|
80
|
-
return null;
|
81
|
-
}),
|
82
71
|
]);
|
72
|
+
const supportedDestinations = await Bridge.routes({
|
73
|
+
client: tx.client,
|
74
|
+
destinationChainId: tx.chain.id,
|
75
|
+
destinationTokenAddress: _erc20Value?.tokenAddress,
|
76
|
+
}).catch((err) => {
|
77
|
+
trackPayEvent({
|
78
|
+
client: tx.client,
|
79
|
+
walletAddress: account.address,
|
80
|
+
walletType: wallet?.id,
|
81
|
+
toChainId: tx.chain.id,
|
82
|
+
event: "pay_transaction_modal_pay_api_error",
|
83
|
+
error: err?.message,
|
84
|
+
});
|
85
|
+
return null;
|
86
|
+
});
|
83
87
|
if (!supportedDestinations) {
|
84
88
|
// could not fetch supported destinations, just send the tx
|
85
89
|
sendTx();
|
86
90
|
return;
|
87
91
|
}
|
88
|
-
if (
|
89
|
-
.map((x) => x.chain.id)
|
90
|
-
.includes(tx.chain.id) ||
|
91
|
-
(_erc20Value &&
|
92
|
-
!supportedDestinations.some((x) => x.chain.id === tx.chain.id &&
|
93
|
-
x.tokens.find((t) => t.address.toLowerCase() ===
|
94
|
-
_erc20Value.tokenAddress.toLowerCase())))) {
|
92
|
+
if (supportedDestinations.length === 0) {
|
95
93
|
trackPayEvent({
|
96
94
|
client: tx.client,
|
97
95
|
walletAddress: account.address,
|
@@ -99,7 +97,11 @@ export function useSendTransactionCore(args) {
|
|
99
97
|
toChainId: tx.chain.id,
|
100
98
|
toToken: _erc20Value?.tokenAddress || undefined,
|
101
99
|
event: "pay_transaction_modal_chain_token_not_supported",
|
102
|
-
error:
|
100
|
+
error: JSON.stringify({
|
101
|
+
chain: tx.chain.id,
|
102
|
+
token: _erc20Value?.tokenAddress,
|
103
|
+
message: "chain/token not supported",
|
104
|
+
}),
|
103
105
|
});
|
104
106
|
// chain/token not supported, just send the tx
|
105
107
|
sendTx();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/transaction/useSendTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;
|
1
|
+
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/transaction/useSendTransaction.ts"],"names":[],"mappings":"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"}
|
@@ -10,12 +10,8 @@ import { useActiveWallet } from "../../../core/hooks/wallets/useActiveWallet.js"
|
|
10
10
|
import { useActiveWalletChain } from "../../../core/hooks/wallets/useActiveWalletChain.js";
|
11
11
|
import { LoadingScreen } from "../../wallets/shared/LoadingScreen.js";
|
12
12
|
import { Spacer } from "../components/Spacer.js";
|
13
|
-
import Tabs from "../components/Tabs.js";
|
14
13
|
import { Container, Line, ModalHeader } from "../components/basic.js";
|
15
14
|
import { ButtonLink } from "../components/buttons.js";
|
16
|
-
import { CoinsIcon } from "./icons/CoinsIcon.js";
|
17
|
-
import { FundsIcon } from "./icons/FundsIcon.js";
|
18
|
-
import { PayTxHistoryList } from "./screens/Buy/pay-transactions/BuyTxHistory.js";
|
19
15
|
import { TxDetailsScreen } from "./screens/Buy/pay-transactions/TxDetailsScreen.js";
|
20
16
|
import { WalletTransactionHistory } from "./screens/WalletTransactionHistory.js";
|
21
17
|
//
|
@@ -23,7 +19,7 @@ import { WalletTransactionHistory } from "./screens/WalletTransactionHistory.js"
|
|
23
19
|
* @internal
|
24
20
|
*/
|
25
21
|
export function TransactionsScreen(props) {
|
26
|
-
const [activeTab, setActiveTab] = useState("Transactions");
|
22
|
+
// const [activeTab, setActiveTab] = useState("Transactions");
|
27
23
|
// For now, you can only select pay transactions (purcahses)
|
28
24
|
const [selectedTx, setSelectedTx] = useState(null);
|
29
25
|
const activeChain = useActiveWalletChain();
|
@@ -41,16 +37,7 @@ export function TransactionsScreen(props) {
|
|
41
37
|
}
|
42
38
|
return (_jsxs(Container, { animate: "fadein", children: [_jsx(Container, { p: "lg", children: _jsx(ModalHeader, { title: props.locale.transactions, onBack: props.onBack }) }), _jsx(Line, {}), _jsxs(Container, { px: "lg", scrollY: true, style: {
|
43
39
|
minHeight: "330px",
|
44
|
-
}, children: [_jsx(Spacer, { y: "md" }), _jsxs(
|
45
|
-
{
|
46
|
-
label: (_jsxs("span", { className: "flex gap-2", children: [_jsx(CoinsIcon, { size: iconSize.sm }), " Transactions"] })),
|
47
|
-
value: "Transactions",
|
48
|
-
},
|
49
|
-
{
|
50
|
-
label: (_jsxs("span", { className: "flex gap-2", children: [_jsx(FundsIcon, { size: iconSize.sm }), " Purchases"] })),
|
51
|
-
value: "Purchases",
|
52
|
-
},
|
53
|
-
], selected: activeTab, onSelect: setActiveTab, children: [activeTab === "Purchases" && (_jsx(PayTxHistoryList, { client: props.client, onSelectTx: setSelectedTx })), activeTab === "Transactions" && (_jsx(WalletTransactionHistory, { locale: props.locale, client: props.client, address: payer.account.address }))] })] }), _jsx(Line, {}), _jsx(Container, { p: "lg", children: _jsxs(ButtonLink, { fullWidth: true, variant: "outline", href: formatExplorerAddressUrl(chainExplorers.explorers[0]?.url ?? "", activeAccount?.address ?? ""), target: "_blank", as: "a", gap: "xs", style: {
|
40
|
+
}, children: [_jsx(Spacer, { y: "md" }), _jsx(WalletTransactionHistory, { locale: props.locale, client: props.client, address: payer.account.address })] }), _jsx(Line, {}), _jsx(Container, { p: "lg", children: _jsxs(ButtonLink, { fullWidth: true, variant: "outline", href: formatExplorerAddressUrl(chainExplorers.explorers[0]?.url ?? "", activeAccount?.address ?? ""), target: "_blank", as: "a", gap: "xs", style: {
|
54
41
|
textDecoration: "none",
|
55
42
|
color: "inherit",
|
56
43
|
}, children: ["View on Explorer", _jsx(ExternalLinkIcon, { width: iconSize.sm, height: iconSize.sm })] }) })] }));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TransactionsScreen.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/ConnectWallet/TransactionsScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,
|
1
|
+
{"version":3,"file":"TransactionsScreen.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/ConnectWallet/TransactionsScreen.tsx"],"names":[],"mappings":"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"}
|
@@ -208,7 +208,7 @@ function BuyScreenContent(props) {
|
|
208
208
|
return (_jsx(ChainSelectionScreen, { chains: chains, client: props.client, connectLocale: props.connectLocale, setChain: setToChain, goBack: goBack }));
|
209
209
|
}
|
210
210
|
return (_jsx(TokenSelector, { onBack: goBack, tokenList: ((toChain?.id ? destinationSupportedTokens[toChain.id] : undefined) ||
|
211
|
-
[]).filter((x) => x.address !== NATIVE_TOKEN_ADDRESS), onTokenSelect: (tokenInfo) => {
|
211
|
+
[]).filter((x) => x.address.toLowerCase() !== NATIVE_TOKEN_ADDRESS.toLowerCase()), onTokenSelect: (tokenInfo) => {
|
212
212
|
setToToken(tokenInfo);
|
213
213
|
goBack();
|
214
214
|
}, chain: toChain, chainSelection:
|