thirdweb 5.100.0-nightly-713ebe0a2d6d8a409e41ce0f0317fc34b1f221bb-20250520000414 → 5.100.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/cjs/bridge/Buy.js +1 -1
- package/dist/cjs/bridge/Onramp.js +152 -0
- package/dist/cjs/bridge/Onramp.js.map +1 -0
- package/dist/cjs/bridge/OnrampStatus.js +78 -0
- package/dist/cjs/bridge/OnrampStatus.js.map +1 -0
- package/dist/cjs/bridge/Sell.js +1 -1
- package/dist/cjs/bridge/index.js +2 -1
- package/dist/cjs/bridge/index.js.map +1 -1
- package/dist/cjs/{react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js → bridge/types/BridgeAction.js} +1 -1
- package/dist/cjs/bridge/types/BridgeAction.js.map +1 -0
- package/dist/cjs/extensions/ens/resolve-l2-name.js +0 -2
- package/dist/cjs/extensions/ens/resolve-l2-name.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js +129 -33
- package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getStatus.js +71 -20
- package/dist/cjs/pay/buyWithFiat/getStatus.js.map +1 -1
- package/dist/cjs/pay/utils/commonTypes.js +1 -1
- package/dist/cjs/pay/utils/commonTypes.js.map +1 -1
- package/dist/cjs/pay/utils/definitions.js +1 -13
- package/dist/cjs/pay/utils/definitions.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -3
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +42 -38
- package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/core/utils/wallet.js +15 -0
- package/dist/cjs/react/core/utils/wallet.js.map +1 -1
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +1 -1
- package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +0 -9
- package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +0 -177
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +2 -10
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +5 -8
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +0 -15
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js +0 -60
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +133 -0
- package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -0
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +4 -3
- package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +9 -1
- package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.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 +1 -1
- package/dist/esm/bridge/Onramp.js +147 -0
- package/dist/esm/bridge/Onramp.js.map +1 -0
- package/dist/esm/bridge/OnrampStatus.js +75 -0
- package/dist/esm/bridge/OnrampStatus.js.map +1 -0
- package/dist/esm/bridge/Sell.js +1 -1
- package/dist/esm/bridge/index.js +1 -0
- package/dist/esm/bridge/index.js.map +1 -1
- package/dist/esm/bridge/types/BridgeAction.js +2 -0
- package/dist/esm/bridge/types/BridgeAction.js.map +1 -0
- package/dist/esm/extensions/ens/resolve-l2-name.js +0 -2
- package/dist/esm/extensions/ens/resolve-l2-name.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js +129 -33
- package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getStatus.js +71 -20
- package/dist/esm/pay/buyWithFiat/getStatus.js.map +1 -1
- package/dist/esm/pay/utils/commonTypes.js +1 -1
- package/dist/esm/pay/utils/commonTypes.js.map +1 -1
- package/dist/esm/pay/utils/definitions.js +0 -10
- package/dist/esm/pay/utils/definitions.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -3
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +42 -38
- package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/core/utils/wallet.js +15 -0
- package/dist/esm/react/core/utils/wallet.js.map +1 -1
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +1 -1
- package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +0 -9
- package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +4 -180
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +2 -10
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +5 -8
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +2 -16
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js +0 -59
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +130 -0
- package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -0
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +4 -3
- package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +9 -1
- package/dist/esm/react/web/ui/TransactionButton/TransactionModal.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 +1 -1
- package/dist/types/bridge/Onramp.d.ts +123 -0
- package/dist/types/bridge/Onramp.d.ts.map +1 -0
- package/dist/types/bridge/OnrampStatus.d.ts +108 -0
- package/dist/types/bridge/OnrampStatus.d.ts.map +1 -0
- package/dist/types/bridge/Sell.d.ts +1 -1
- package/dist/types/bridge/index.d.ts +6 -3
- package/dist/types/bridge/index.d.ts.map +1 -1
- package/dist/types/bridge/types/BridgeAction.d.ts +2 -0
- package/dist/types/bridge/types/BridgeAction.d.ts.map +1 -0
- package/dist/types/bridge/types/Quote.d.ts +3 -65
- package/dist/types/bridge/types/Quote.d.ts.map +1 -1
- package/dist/types/bridge/types/Route.d.ts +35 -0
- package/dist/types/bridge/types/Route.d.ts.map +1 -1
- package/dist/types/bridge/types/Token.d.ts +1 -0
- package/dist/types/bridge/types/Token.d.ts.map +1 -1
- package/dist/types/extensions/ens/resolve-l2-name.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getStatus.d.ts +1 -12
- package/dist/types/pay/buyWithFiat/getStatus.d.ts.map +1 -1
- package/dist/types/pay/utils/commonTypes.d.ts +1 -1
- package/dist/types/pay/utils/commonTypes.d.ts.map +1 -1
- package/dist/types/pay/utils/definitions.d.ts +0 -10
- package/dist/types/pay/utils/definitions.d.ts.map +1 -1
- package/dist/types/react/core/hooks/pay/useBuyWithFiatStatus.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -0
- package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
- package/dist/types/react/web/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/fiat/FiatSteps.d.ts +1 -30
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +2 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts +2 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.d.ts +0 -5
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.d.ts +1 -3
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts +15 -0
- package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -0
- package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts +1 -0
- package/dist/types/react/web/ui/TransactionButton/TransactionModal.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 +15 -15
- package/src/bridge/Buy.ts +1 -1
- package/src/bridge/Onramp.test.ts +118 -0
- package/src/bridge/Onramp.ts +244 -0
- package/src/bridge/OnrampStatus.ts +133 -0
- package/src/bridge/Sell.ts +1 -1
- package/src/bridge/index.ts +11 -3
- package/src/bridge/types/BridgeAction.ts +1 -0
- package/src/bridge/types/Quote.ts +3 -65
- package/src/bridge/types/Route.ts +39 -0
- package/src/bridge/types/Token.ts +1 -0
- package/src/extensions/ens/resolve-l2-name.ts +0 -2
- package/src/pay/buyWithFiat/getQuote.ts +184 -33
- package/src/pay/buyWithFiat/getStatus.ts +101 -42
- package/src/pay/convert/cryptoToFiat.test.ts +7 -5
- package/src/pay/convert/fiatToCrypto.test.ts +6 -4
- package/src/pay/utils/commonTypes.ts +1 -1
- package/src/pay/utils/definitions.ts +0 -14
- package/src/react/core/hooks/pay/useBuyWithFiatStatus.ts +0 -2
- package/src/react/core/hooks/transaction/useSendTransaction.ts +48 -41
- package/src/react/core/utils/wallet.ts +15 -0
- package/src/react/web/hooks/transaction/useSendTransaction.tsx +1 -0
- package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +0 -53
- package/src/react/web/ui/ConnectWallet/locale/en.ts +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +3 -510
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +2 -12
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +2 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +19 -20
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx +1 -37
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.test.ts +1 -95
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.ts +0 -69
- package/src/react/web/ui/TransactionButton/DepositScreen.tsx +295 -0
- package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +4 -3
- package/src/react/web/ui/TransactionButton/TransactionModal.tsx +20 -1
- package/src/version.ts +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +0 -37
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +0 -86
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +0 -25
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +0 -81
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +0 -17
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +0 -34
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +0 -83
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +0 -22
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +0 -78
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +0 -14
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js +0 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts +0 -26
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts +0 -16
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts +0 -23
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts +0 -14
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts +0 -14
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts.map +0 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts +0 -10
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts.map +0 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +0 -142
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +0 -170
- package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.tsx +0 -63
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.tsx +0 -138
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.tsx +0 -45
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.ts +0 -12
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FiatSteps.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"FiatSteps.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,8CAkEA"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { ChainMetadata } from "../../../../../../../chains/types.js";
|
1
2
|
import type { BuyWithCryptoQuote } from "../../../../../../../pay/buyWithCrypto/getQuote.js";
|
2
3
|
import type { BuyWithFiatQuote } from "../../../../../../../pay/buyWithFiat/getQuote.js";
|
3
4
|
import type { GetWalletBalanceResult } from "../../../../../../../wallets/utils/getWalletBalance.js";
|
@@ -8,6 +9,7 @@ export type TransactionCostAndData = {
|
|
8
9
|
walletBalance: GetWalletBalanceResult;
|
9
10
|
transactionValueWei: bigint;
|
10
11
|
gasCostWei: bigint;
|
12
|
+
chainMetadata: ChainMetadata;
|
11
13
|
};
|
12
14
|
export type SelectedScreen = {
|
13
15
|
id: "main" | "select-payment-method" | "buy-with-fiat";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,sBAAsB,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,sBAAsB,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IACE,EAAE,EAAE,MAAM,GAAG,uBAAuB,GAAG,eAAe,CAAC;CACxD,GACD;IACE,EAAE,EAAE,iBAAiB,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACD;IACE,EAAE,EAAE,mBAAmB,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;CAC5B,GACD;IACE,EAAE,EAAE,iBAAiB,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;CAC5B,GACD;IACE,EAAE,EAAE,iBAAiB,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;CAC5B,GACD;IACE,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;CACzB,GACD;IACE,EAAE,EAAE,eAAe,CAAC;CACrB,GACD;IACE,EAAE,EAAE,sBAAsB,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B,CAAC"}
|
@@ -5,6 +5,7 @@ export declare function useTransactionCostAndData(args: {
|
|
5
5
|
transaction: PreparedTransaction;
|
6
6
|
account: Account | undefined;
|
7
7
|
supportedDestinations: SupportedChainAndTokens;
|
8
|
+
refetchIntervalMs?: number;
|
8
9
|
}): import("@tanstack/react-query").UseQueryResult<{
|
9
10
|
token: {
|
10
11
|
address: string;
|
@@ -13,6 +14,7 @@ export declare function useTransactionCostAndData(args: {
|
|
13
14
|
icon: string | undefined;
|
14
15
|
};
|
15
16
|
decimals: number;
|
17
|
+
chainMetadata: import("../../../../../../../chains/types.js").ChainMetadata;
|
16
18
|
walletBalance: import("../../../../../../../exports/extensions/erc20.js").GetBalanceResult;
|
17
19
|
gasCostWei: bigint;
|
18
20
|
transactionValueWei: bigint;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useBuyTxStates.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAInG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mDAAmD,CAAC;AAEjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qBAAqB,EAAE,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"useBuyTxStates.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAInG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mDAAmD,CAAC;AAEjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qBAAqB,EAAE,uBAAuB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;;;;;;;;;;;;UAoHA"}
|
package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.d.ts
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../../../client/client.js";
|
2
2
|
import type { BuyWithCryptoQuote } from "../../../../../../../pay/buyWithCrypto/getQuote.js";
|
3
3
|
import type { ValidBuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
|
4
|
-
export declare function SwapDetailsScreen(props: {
|
5
|
-
status: ValidBuyWithCryptoStatus;
|
6
|
-
onBack: () => void;
|
7
|
-
client: ThirdwebClient;
|
8
|
-
}): import("react/jsx-runtime.js").JSX.Element;
|
9
4
|
export declare function SwapTxDetailsTable(props: {
|
10
5
|
type: "quote";
|
11
6
|
quote: BuyWithCryptoQuote;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SwapDetailsScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;
|
1
|
+
{"version":3,"file":"SwapDetailsScreen.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AA+CpG,wBAAgB,kBAAkB,CAChC,KAAK,EACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;CACxB,GACD;IACE,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,wBAAwB,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,8CAwON"}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import type { BuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
|
2
|
-
import type { BuyWithFiatStatus } from "../../../../../../../pay/buyWithFiat/getStatus.js";
|
3
2
|
import type { Theme } from "../../../../../../core/design-system/index.js";
|
4
3
|
export type StatusMeta = {
|
5
4
|
status: string;
|
@@ -12,7 +11,6 @@ export type FiatStatusMeta = {
|
|
12
11
|
color: keyof Theme["colors"];
|
13
12
|
loading?: true;
|
14
13
|
step: 1 | 2;
|
15
|
-
progressStatus: "pending" | "completed" | "failed" | "actionRequired" | "
|
14
|
+
progressStatus: "pending" | "completed" | "failed" | "actionRequired" | "unknown";
|
16
15
|
};
|
17
|
-
export declare function getBuyWithFiatStatusMeta(fiatStatus: BuyWithFiatStatus): FiatStatusMeta;
|
18
16
|
//# sourceMappingURL=statusMeta.d.ts.map
|
package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"statusMeta.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"statusMeta.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+CAA+C,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,mBAAmB,GAChC,UAAU,CAoDZ;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,cAAc,EACV,SAAS,GACT,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,SAAS,CAAC;CACf,CAAC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
|
+
import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
|
3
|
+
import type { ConnectLocale } from "../ConnectWallet/locale/types.js";
|
4
|
+
/**
|
5
|
+
*
|
6
|
+
* @internal
|
7
|
+
*/
|
8
|
+
export declare function DepositScreen(props: {
|
9
|
+
onBack: (() => void) | undefined;
|
10
|
+
connectLocale: ConnectLocale;
|
11
|
+
client: ThirdwebClient;
|
12
|
+
tx: PreparedTransaction;
|
13
|
+
onDone: () => void;
|
14
|
+
}): import("react/jsx-runtime.js").JSX.Element;
|
15
|
+
//# sourceMappingURL=DepositScreen.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DepositScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/TransactionButton/DepositScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAiB1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAqDtE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,mBAAmB,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,8CAiMA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExecutingScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/TransactionButton/ExecutingScreen.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAY1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,EAAE,EAAE,mBAAmB,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,
|
1
|
+
{"version":3,"file":"ExecutingScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/TransactionButton/ExecutingScreen.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAY1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,EAAE,EAAE,mBAAmB,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,8CA4GA"}
|
@@ -17,6 +17,7 @@ type ModalProps = {
|
|
17
17
|
tx: PreparedTransaction;
|
18
18
|
payOptions: PayUIOptions;
|
19
19
|
onTxSent: (data: WaitForReceiptOptions) => void;
|
20
|
+
modalMode: "buy" | "deposit";
|
20
21
|
};
|
21
22
|
export declare function TransactionModal(props: ModalProps): import("react/jsx-runtime.js").JSX.Element;
|
22
23
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TransactionModal.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/TransactionButton/TransactionModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAG1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAK5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"TransactionModal.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/TransactionButton/TransactionModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAG1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAK5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,EAAE,EAAE,mBAAmB,CAAC;IACxB,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,8CA4CjD"}
|
package/dist/types/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "5.100.0
|
1
|
+
export declare const version = "5.100.0";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "thirdweb",
|
3
|
-
"version": "5.100.0
|
3
|
+
"version": "5.100.0",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
@@ -175,7 +175,7 @@
|
|
175
175
|
"./dist/types/exports/react.d.ts"
|
176
176
|
],
|
177
177
|
"react-native": [
|
178
|
-
"./dist/types/exports/react
|
178
|
+
"./dist/types/exports/react.native.d.ts"
|
179
179
|
],
|
180
180
|
"rpc": [
|
181
181
|
"./dist/types/exports/rpc.d.ts"
|
@@ -334,30 +334,30 @@
|
|
334
334
|
"@mobile-wallet-protocol/client": "1.0.0",
|
335
335
|
"@react-native-async-storage/async-storage": "2.1.2",
|
336
336
|
"@size-limit/preset-big-lib": "11.2.0",
|
337
|
-
"@storybook/addon-essentials": "8.6.
|
338
|
-
"@storybook/addon-interactions": "8.6.
|
339
|
-
"@storybook/addon-links": "8.6.
|
340
|
-
"@storybook/addon-onboarding": "8.6.
|
341
|
-
"@storybook/react": "8.6.
|
342
|
-
"@storybook/react-vite": "8.6.
|
343
|
-
"@storybook/test": "8.6.
|
337
|
+
"@storybook/addon-essentials": "8.6.14",
|
338
|
+
"@storybook/addon-interactions": "8.6.14",
|
339
|
+
"@storybook/addon-links": "8.6.14",
|
340
|
+
"@storybook/addon-onboarding": "8.6.14",
|
341
|
+
"@storybook/react": "8.6.14",
|
342
|
+
"@storybook/react-vite": "8.6.14",
|
343
|
+
"@storybook/test": "8.6.14",
|
344
344
|
"@testing-library/jest-dom": "^6.6.3",
|
345
345
|
"@testing-library/react": "^16.3.0",
|
346
346
|
"@testing-library/user-event": "^14.6.1",
|
347
347
|
"@types/cross-spawn": "^6.0.6",
|
348
348
|
"@types/prompts": "2.4.9",
|
349
|
-
"@types/react": "19.1.
|
349
|
+
"@types/react": "19.1.4",
|
350
350
|
"@viem/anvil": "0.0.10",
|
351
351
|
"@vitejs/plugin-react": "^4.4.1",
|
352
352
|
"@vitest/coverage-v8": "3.1.2",
|
353
|
-
"@vitest/ui": "3.1.
|
353
|
+
"@vitest/ui": "3.1.4",
|
354
354
|
"dotenv-mono": "^1.3.14",
|
355
355
|
"ethers5": "npm:ethers@5",
|
356
356
|
"ethers6": "npm:ethers@6",
|
357
357
|
"expo-linking": "7.0.5",
|
358
358
|
"expo-web-browser": "14.0.2",
|
359
359
|
"happy-dom": "17.4.4",
|
360
|
-
"knip": "5.
|
360
|
+
"knip": "5.56.0",
|
361
361
|
"msw": "2.7.5",
|
362
362
|
"prettier": "3.5.3",
|
363
363
|
"react": "19.1.0",
|
@@ -370,12 +370,12 @@
|
|
370
370
|
"rimraf": "6.0.1",
|
371
371
|
"sharp": "^0.33.5",
|
372
372
|
"size-limit": "11.2.0",
|
373
|
-
"storybook": "8.6.
|
373
|
+
"storybook": "8.6.14",
|
374
374
|
"typedoc": "0.27.9",
|
375
375
|
"typedoc-better-json": "0.9.4",
|
376
376
|
"typescript": "5.8.3",
|
377
|
-
"vite": "6.3.
|
378
|
-
"vitest": "3.1.
|
377
|
+
"vite": "6.3.5",
|
378
|
+
"vitest": "3.1.4"
|
379
379
|
},
|
380
380
|
"scripts": {
|
381
381
|
"bench:compare": "bun run ./benchmarks/run.ts",
|
package/src/bridge/Buy.ts
CHANGED
@@ -260,7 +260,7 @@ export declare namespace quote {
|
|
260
260
|
* ```
|
261
261
|
*
|
262
262
|
* ## Sending the transactions
|
263
|
-
* The `transactions` array is a series of
|
263
|
+
* The `transactions` array is a series of transactions ready to be executed (with `sendTransaction`) one after the other in order to fulfill the complete route. There are a few things to keep in mind when executing these transactions:
|
264
264
|
* - Approvals will have the `approval` action specified. You can perform approvals with `sendAndConfirmTransaction`, then proceed to the next transaction.
|
265
265
|
* - All transactions are assumed to be executed by the `sender` address, regardless of which chain they are on. The final transaction will use the `receiver` as the recipient address.
|
266
266
|
* - If an `expiration` timestamp is provided, all transactions must be executed before that time to guarantee successful execution at the specified price.
|
@@ -0,0 +1,118 @@
|
|
1
|
+
import { toWei } from "src/utils/units.js";
|
2
|
+
import { describe, expect, it } from "vitest";
|
3
|
+
import { TEST_CLIENT } from "~test/test-clients.js";
|
4
|
+
import * as Onramp from "./Onramp.js";
|
5
|
+
|
6
|
+
// Use the same receiver address as other bridge tests
|
7
|
+
const RECEIVER_ADDRESS = "0x2a4f24F935Eb178e3e7BA9B53A5Ee6d8407C0709";
|
8
|
+
const NATIVE_TOKEN_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
9
|
+
|
10
|
+
/**
|
11
|
+
* These tests call the real Bridge Onramp API. They are executed only when a
|
12
|
+
* `TW_SECRET_KEY` environment variable is present, mirroring the behaviour of
|
13
|
+
* the other bridge tests in this package.
|
14
|
+
*/
|
15
|
+
describe.runIf(process.env.TW_SECRET_KEY)("Bridge.Onramp.prepare", () => {
|
16
|
+
it("should prepare an onramp successfully", async () => {
|
17
|
+
const prepared = await Onramp.prepare({
|
18
|
+
client: TEST_CLIENT,
|
19
|
+
onramp: "stripe",
|
20
|
+
chainId: 1,
|
21
|
+
tokenAddress: NATIVE_TOKEN_ADDRESS,
|
22
|
+
receiver: RECEIVER_ADDRESS,
|
23
|
+
amount: toWei("0.01"),
|
24
|
+
});
|
25
|
+
|
26
|
+
expect(prepared).toBeDefined();
|
27
|
+
|
28
|
+
// The destinationAmount should be a bigint and greater than zero
|
29
|
+
expect(typeof prepared.destinationAmount).toBe("bigint");
|
30
|
+
expect(prepared.destinationAmount > 0n).toBe(true);
|
31
|
+
|
32
|
+
// A redirect link for the user should be provided
|
33
|
+
expect(prepared.link).toBeDefined();
|
34
|
+
expect(typeof prepared.link).toBe("string");
|
35
|
+
|
36
|
+
// Intent must be present and reference the correct receiver
|
37
|
+
expect(prepared.intent).toBeDefined();
|
38
|
+
expect(prepared.intent.receiver.toLowerCase()).toBe(
|
39
|
+
RECEIVER_ADDRESS.toLowerCase(),
|
40
|
+
);
|
41
|
+
|
42
|
+
// Steps array should be defined (it may be empty if the provider supports the destination token natively)
|
43
|
+
expect(Array.isArray(prepared.steps)).toBe(true);
|
44
|
+
});
|
45
|
+
|
46
|
+
it("should surface any errors", async () => {
|
47
|
+
await expect(
|
48
|
+
Onramp.prepare({
|
49
|
+
client: TEST_CLIENT,
|
50
|
+
onramp: "stripe",
|
51
|
+
chainId: 444, // Unsupported chain ID
|
52
|
+
tokenAddress: NATIVE_TOKEN_ADDRESS,
|
53
|
+
receiver: RECEIVER_ADDRESS,
|
54
|
+
amount: toWei("0.01"),
|
55
|
+
}),
|
56
|
+
).rejects.toThrowError();
|
57
|
+
});
|
58
|
+
|
59
|
+
it("should prepare a Coinbase onramp successfully", async () => {
|
60
|
+
const prepared = await Onramp.prepare({
|
61
|
+
client: TEST_CLIENT,
|
62
|
+
onramp: "coinbase",
|
63
|
+
chainId: 1,
|
64
|
+
tokenAddress: NATIVE_TOKEN_ADDRESS,
|
65
|
+
receiver: RECEIVER_ADDRESS,
|
66
|
+
amount: toWei("0.01"),
|
67
|
+
});
|
68
|
+
|
69
|
+
expect(prepared).toBeDefined();
|
70
|
+
|
71
|
+
// The destinationAmount should be a bigint and greater than zero
|
72
|
+
expect(typeof prepared.destinationAmount).toBe("bigint");
|
73
|
+
expect(prepared.destinationAmount > 0n).toBe(true);
|
74
|
+
|
75
|
+
// A redirect link for the user should be provided
|
76
|
+
expect(prepared.link).toBeDefined();
|
77
|
+
expect(typeof prepared.link).toBe("string");
|
78
|
+
|
79
|
+
// Intent must be present and reference the correct receiver
|
80
|
+
expect(prepared.intent).toBeDefined();
|
81
|
+
expect(prepared.intent.receiver.toLowerCase()).toBe(
|
82
|
+
RECEIVER_ADDRESS.toLowerCase(),
|
83
|
+
);
|
84
|
+
|
85
|
+
// Steps array should be defined (it may be empty if the provider supports the destination token natively)
|
86
|
+
expect(Array.isArray(prepared.steps)).toBe(true);
|
87
|
+
});
|
88
|
+
|
89
|
+
it("should prepare a Transak onramp successfully", async () => {
|
90
|
+
const prepared = await Onramp.prepare({
|
91
|
+
client: TEST_CLIENT,
|
92
|
+
onramp: "transak",
|
93
|
+
chainId: 1,
|
94
|
+
tokenAddress: NATIVE_TOKEN_ADDRESS,
|
95
|
+
receiver: RECEIVER_ADDRESS,
|
96
|
+
amount: toWei("0.01"),
|
97
|
+
});
|
98
|
+
|
99
|
+
expect(prepared).toBeDefined();
|
100
|
+
|
101
|
+
// The destinationAmount should be a bigint and greater than zero
|
102
|
+
expect(typeof prepared.destinationAmount).toBe("bigint");
|
103
|
+
expect(prepared.destinationAmount > 0n).toBe(true);
|
104
|
+
|
105
|
+
// A redirect link for the user should be provided
|
106
|
+
expect(prepared.link).toBeDefined();
|
107
|
+
expect(typeof prepared.link).toBe("string");
|
108
|
+
|
109
|
+
// Intent must be present and reference the correct receiver
|
110
|
+
expect(prepared.intent).toBeDefined();
|
111
|
+
expect(prepared.intent.receiver.toLowerCase()).toBe(
|
112
|
+
RECEIVER_ADDRESS.toLowerCase(),
|
113
|
+
);
|
114
|
+
|
115
|
+
// Steps array should be defined (it may be empty if the provider supports the destination token natively)
|
116
|
+
expect(Array.isArray(prepared.steps)).toBe(true);
|
117
|
+
});
|
118
|
+
});
|
@@ -0,0 +1,244 @@
|
|
1
|
+
import type { Address as ox__Address } from "ox";
|
2
|
+
import type { ThirdwebClient } from "../client/client.js";
|
3
|
+
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
4
|
+
import { getClientFetch } from "../utils/fetch.js";
|
5
|
+
import { stringify } from "../utils/json.js";
|
6
|
+
import type { RouteStep } from "./types/Route.js";
|
7
|
+
import type { Token } from "./types/Token.js";
|
8
|
+
|
9
|
+
// export status within the Onramp module
|
10
|
+
export { status } from "./OnrampStatus.js";
|
11
|
+
|
12
|
+
type OnrampIntent = {
|
13
|
+
onramp: "stripe" | "coinbase" | "transak";
|
14
|
+
chainId: number;
|
15
|
+
tokenAddress: ox__Address.Address;
|
16
|
+
receiver: ox__Address.Address;
|
17
|
+
amount?: string; // Corresponds to buyAmountWei in some other contexts
|
18
|
+
purchaseData?: unknown;
|
19
|
+
sender?: ox__Address.Address;
|
20
|
+
onrampTokenAddress?: ox__Address.Address;
|
21
|
+
onrampChainId?: number;
|
22
|
+
currency?: string;
|
23
|
+
maxSteps?: number;
|
24
|
+
excludeChainIds?: string | string[];
|
25
|
+
};
|
26
|
+
|
27
|
+
type OnrampPrepareQuoteResponseData = {
|
28
|
+
id: string;
|
29
|
+
link: string;
|
30
|
+
currency: string;
|
31
|
+
currencyAmount: number;
|
32
|
+
destinationAmount: bigint;
|
33
|
+
destinationToken: Token;
|
34
|
+
timestamp?: number;
|
35
|
+
expiration?: number;
|
36
|
+
steps: RouteStep[];
|
37
|
+
intent: OnrampIntent;
|
38
|
+
};
|
39
|
+
|
40
|
+
// Explicit type for the API request body
|
41
|
+
interface OnrampApiRequestBody {
|
42
|
+
onramp: "stripe" | "coinbase" | "transak";
|
43
|
+
chainId: number;
|
44
|
+
tokenAddress: ox__Address.Address;
|
45
|
+
receiver: ox__Address.Address;
|
46
|
+
amount?: string;
|
47
|
+
purchaseData?: unknown;
|
48
|
+
sender?: ox__Address.Address;
|
49
|
+
onrampTokenAddress?: ox__Address.Address;
|
50
|
+
onrampChainId?: number;
|
51
|
+
currency?: string;
|
52
|
+
maxSteps?: number;
|
53
|
+
excludeChainIds?: string;
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Prepares an onramp transaction, returning a link from the specified provider to onramp to the specified token.
|
58
|
+
*
|
59
|
+
* @example
|
60
|
+
* ```typescript
|
61
|
+
* import { Bridge } from "thirdweb";
|
62
|
+
* import { ethereum } from "thirdweb/chains";
|
63
|
+
* import { NATIVE_TOKEN_ADDRESS, toWei } from "thirdweb/utils";
|
64
|
+
*
|
65
|
+
* const preparedOnramp = await Bridge.Onramp.prepare({
|
66
|
+
* client: thirdwebClient,
|
67
|
+
* onramp: "stripe",
|
68
|
+
* chainId: ethereum.id,
|
69
|
+
* tokenAddress: NATIVE_TOKEN_ADDRESS,
|
70
|
+
* receiver: "0x...", // receiver's address
|
71
|
+
* amount: toWei("10"), // 10 of the destination token
|
72
|
+
* // Optional params:
|
73
|
+
* // sender: "0x...", // sender's address
|
74
|
+
* // onrampTokenAddress: NATIVE_TOKEN_ADDRESS, // token to initially onramp to
|
75
|
+
* // onrampChainId: 1, // chain to initially onramp to
|
76
|
+
* // currency: "USD",
|
77
|
+
* // maxSteps: 2,
|
78
|
+
* // purchaseData: { customId: "123" }
|
79
|
+
* });
|
80
|
+
*
|
81
|
+
* console.log(preparedOnramp.link); // URL to redirect the user to
|
82
|
+
* console.log(preparedOnramp.currencyAmount); // Amount in fiat the user will pay
|
83
|
+
* ```
|
84
|
+
*
|
85
|
+
* This function returns a quote that might look like:
|
86
|
+
* ```typescript
|
87
|
+
* {
|
88
|
+
* id: "123e4567-e89b-12d3-a456-426614174000",
|
89
|
+
* link: "https://onramp.example.com/session?id=...",
|
90
|
+
* currency: "USD",
|
91
|
+
* currencyAmount: 10.52,
|
92
|
+
* destinationAmount: 10000000000000000000n, // 10 ETH if decimals 18
|
93
|
+
* timestamp: 1689812800,
|
94
|
+
* expiration: 1689842800,
|
95
|
+
* steps: [
|
96
|
+
* // ... further steps if any post-onramp swaps are needed
|
97
|
+
* ],
|
98
|
+
* intent: {
|
99
|
+
* onramp: "stripe",
|
100
|
+
* chainId: 1,
|
101
|
+
* tokenAddress: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
|
102
|
+
* receiver: "0x...",
|
103
|
+
* amount: "10000000000000000000"
|
104
|
+
* }
|
105
|
+
* }
|
106
|
+
* ```
|
107
|
+
*
|
108
|
+
* @param options - The options for preparing the onramp.
|
109
|
+
* @param options.client - Your thirdweb client.
|
110
|
+
* @param options.onramp - The onramp provider to use (e.g., "stripe", "coinbase", "transak").
|
111
|
+
* @param options.chainId - The destination chain ID.
|
112
|
+
* @param options.tokenAddress - The destination token address.
|
113
|
+
* @param options.receiver - The address that will receive the output token.
|
114
|
+
* @param [options.amount] - The desired token amount in wei.
|
115
|
+
* @param [options.purchaseData] - Arbitrary purchase data.
|
116
|
+
* @param [options.sender] - An optional address to associate as the onramp sender.
|
117
|
+
* @param [options.onrampTokenAddress] - The token to initially onramp to if the destination token is not supported by the provider.
|
118
|
+
* @param [options.onrampChainId] - The chain ID to initially onramp to if the destination chain is not supported.
|
119
|
+
* @param [options.currency] - The currency for the onramp (e.g., "USD", "GBP"). Defaults to user's preferred or "USD".
|
120
|
+
* @param [options.maxSteps] - Maximum number of post-onramp steps.
|
121
|
+
* @param [options.excludeChainIds] - Chain IDs to exclude from the route (string or array of strings).
|
122
|
+
*
|
123
|
+
* @returns A promise that resolves to the prepared onramp details, including the link and quote.
|
124
|
+
* @throws Will throw an error if there is an issue preparing the onramp.
|
125
|
+
* @bridge Onramp
|
126
|
+
* @beta
|
127
|
+
*/
|
128
|
+
export async function prepare(
|
129
|
+
options: prepare.Options,
|
130
|
+
): Promise<prepare.Result> {
|
131
|
+
const {
|
132
|
+
client,
|
133
|
+
onramp,
|
134
|
+
chainId,
|
135
|
+
tokenAddress,
|
136
|
+
receiver,
|
137
|
+
amount,
|
138
|
+
purchaseData,
|
139
|
+
sender,
|
140
|
+
onrampTokenAddress,
|
141
|
+
onrampChainId,
|
142
|
+
currency,
|
143
|
+
maxSteps,
|
144
|
+
excludeChainIds,
|
145
|
+
} = options;
|
146
|
+
|
147
|
+
const clientFetch = getClientFetch(client);
|
148
|
+
const url = `${getThirdwebBaseUrl("bridge")}/v1/onramp/prepare`;
|
149
|
+
|
150
|
+
const apiRequestBody: OnrampApiRequestBody = {
|
151
|
+
onramp,
|
152
|
+
chainId: Number(chainId),
|
153
|
+
tokenAddress,
|
154
|
+
receiver,
|
155
|
+
};
|
156
|
+
|
157
|
+
if (amount !== undefined) {
|
158
|
+
apiRequestBody.amount = amount.toString();
|
159
|
+
}
|
160
|
+
if (purchaseData !== undefined) {
|
161
|
+
apiRequestBody.purchaseData = purchaseData;
|
162
|
+
}
|
163
|
+
if (sender !== undefined) {
|
164
|
+
apiRequestBody.sender = sender;
|
165
|
+
}
|
166
|
+
if (onrampTokenAddress !== undefined) {
|
167
|
+
apiRequestBody.onrampTokenAddress = onrampTokenAddress;
|
168
|
+
}
|
169
|
+
if (onrampChainId !== undefined) {
|
170
|
+
apiRequestBody.onrampChainId = Number(onrampChainId);
|
171
|
+
}
|
172
|
+
if (currency !== undefined) {
|
173
|
+
apiRequestBody.currency = currency;
|
174
|
+
}
|
175
|
+
if (maxSteps !== undefined) {
|
176
|
+
apiRequestBody.maxSteps = maxSteps;
|
177
|
+
}
|
178
|
+
if (excludeChainIds !== undefined) {
|
179
|
+
apiRequestBody.excludeChainIds = Array.isArray(excludeChainIds)
|
180
|
+
? excludeChainIds.join(",")
|
181
|
+
: excludeChainIds;
|
182
|
+
}
|
183
|
+
|
184
|
+
const response = await clientFetch(url, {
|
185
|
+
method: "POST",
|
186
|
+
headers: {
|
187
|
+
"Content-Type": "application/json",
|
188
|
+
},
|
189
|
+
body: stringify(apiRequestBody),
|
190
|
+
});
|
191
|
+
|
192
|
+
if (!response.ok) {
|
193
|
+
const errorJson = await response.json();
|
194
|
+
throw new Error(
|
195
|
+
`${errorJson.code || response.status} | ${errorJson.message || response.statusText} - ${errorJson.correlationId || "N/A"}`,
|
196
|
+
);
|
197
|
+
}
|
198
|
+
|
199
|
+
const { data }: { data: OnrampPrepareQuoteResponseData } =
|
200
|
+
await response.json();
|
201
|
+
|
202
|
+
// Transform amounts from string to bigint where appropriate
|
203
|
+
const transformedSteps = data.steps.map((step) => ({
|
204
|
+
...step,
|
205
|
+
originAmount: BigInt(step.originAmount),
|
206
|
+
destinationAmount: BigInt(step.destinationAmount),
|
207
|
+
transactions: step.transactions.map((tx) => ({
|
208
|
+
...tx,
|
209
|
+
value: tx.value ? BigInt(tx.value) : undefined,
|
210
|
+
})),
|
211
|
+
}));
|
212
|
+
|
213
|
+
const intentFromResponse = {
|
214
|
+
...data.intent,
|
215
|
+
amount: data.intent.amount ? data.intent.amount : undefined,
|
216
|
+
};
|
217
|
+
|
218
|
+
return {
|
219
|
+
...data,
|
220
|
+
destinationAmount: BigInt(data.destinationAmount),
|
221
|
+
steps: transformedSteps,
|
222
|
+
intent: intentFromResponse,
|
223
|
+
};
|
224
|
+
}
|
225
|
+
|
226
|
+
export declare namespace prepare {
|
227
|
+
export type Options = {
|
228
|
+
client: ThirdwebClient;
|
229
|
+
onramp: "stripe" | "coinbase" | "transak";
|
230
|
+
chainId: number;
|
231
|
+
tokenAddress: ox__Address.Address;
|
232
|
+
receiver: ox__Address.Address;
|
233
|
+
amount?: bigint;
|
234
|
+
purchaseData?: unknown;
|
235
|
+
sender?: ox__Address.Address;
|
236
|
+
onrampTokenAddress?: ox__Address.Address;
|
237
|
+
onrampChainId?: number;
|
238
|
+
currency?: string;
|
239
|
+
maxSteps?: number;
|
240
|
+
excludeChainIds?: string | string[];
|
241
|
+
};
|
242
|
+
|
243
|
+
export type Result = OnrampPrepareQuoteResponseData;
|
244
|
+
}
|