thirdweb 5.99.3 → 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 +17 -13
- 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/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/Routes.js +2 -2
- package/dist/cjs/bridge/Routes.js.map +1 -1
- package/dist/cjs/bridge/Sell.js +18 -14
- 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 +3 -1
- package/dist/cjs/bridge/index.js.map +1 -1
- package/dist/cjs/bridge/types/BridgeAction.js +3 -0
- package/dist/cjs/bridge/types/BridgeAction.js.map +1 -0
- package/dist/cjs/bridge/types/Token.js +3 -0
- package/dist/cjs/bridge/types/Token.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/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/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 -43
- 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 +44 -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 +1 -23
- 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/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/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/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/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/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 +17 -13
- 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/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/Routes.js +2 -2
- package/dist/esm/bridge/Routes.js.map +1 -1
- package/dist/esm/bridge/Sell.js +18 -14
- 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 +2 -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/bridge/types/Token.js +2 -0
- package/dist/esm/bridge/types/Token.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/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/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 -35
- 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 +44 -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 +1 -23
- 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/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/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/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/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/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 +11 -9
- package/dist/types/bridge/Buy.d.ts.map +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 +13 -11
- 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 +7 -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 +38 -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 +11 -0
- package/dist/types/bridge/types/Token.d.ts.map +1 -0
- package/dist/types/extensions/ens/resolve-l2-name.d.ts.map +1 -1
- 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/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 -35
- 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/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/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/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 +15 -15
- package/src/bridge/Buy.ts +19 -13
- package/src/bridge/Chains.ts +2 -2
- 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/Routes.ts +2 -2
- package/src/bridge/Sell.ts +20 -14
- 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 +12 -3
- package/src/bridge/types/BridgeAction.ts +1 -0
- package/src/bridge/types/Quote.ts +3 -65
- package/src/bridge/types/Route.ts +42 -17
- package/src/bridge/types/Status.ts +15 -1
- package/src/bridge/types/Token.ts +11 -0
- package/src/extensions/ens/resolve-l2-name.ts +0 -2
- 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/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 -48
- package/src/react/core/hooks/pay/useBuyWithFiatStatus.ts +0 -2
- package/src/react/core/hooks/transaction/useSendTransaction.ts +53 -52
- 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 +5 -64
- package/src/react/web/ui/ConnectWallet/locale/en.ts +1 -1
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +3 -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/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/DepositScreen.tsx +295 -0
- package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +4 -5
- package/src/react/web/ui/TransactionButton/TransactionModal.tsx +20 -1
- 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/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/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/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 +0 -138
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.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/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/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/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 -135
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.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/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/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/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 -21
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts.map +0 -1
- package/src/bridge/constants.ts +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/BuyTxHistory.tsx +0 -163
- package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.tsx +0 -127
- 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 -191
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getBuyWithCryptoStatus = getBuyWithCryptoStatus;
|
4
|
-
const
|
5
|
-
const
|
4
|
+
const index_js_1 = require("../../bridge/index.js");
|
5
|
+
const units_js_1 = require("../../utils/units.js");
|
6
6
|
/**
|
7
7
|
* Gets the status of a buy with crypto transaction
|
8
8
|
* @param buyWithCryptoTransaction - Object of type [`BuyWithCryptoTransaction`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransaction)
|
@@ -40,7 +40,7 @@ const definitions_js_1 = require("../utils/definitions.js");
|
|
40
40
|
* }});
|
41
41
|
* ```
|
42
42
|
* @returns Object of type [`BuyWithCryptoStatus`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoStatus)
|
43
|
-
* @deprecated
|
43
|
+
* @deprecated use Bridge.status instead
|
44
44
|
* @buyCrypto
|
45
45
|
*/
|
46
46
|
async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
|
@@ -48,23 +48,169 @@ async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
|
|
48
48
|
if (!buyWithCryptoTransaction.transactionHash) {
|
49
49
|
throw new Error("Transaction hash is required");
|
50
50
|
}
|
51
|
-
const
|
51
|
+
const result = await (0, index_js_1.status)({
|
52
52
|
transactionHash: buyWithCryptoTransaction.transactionHash,
|
53
|
-
chainId: buyWithCryptoTransaction.chainId
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
53
|
+
chainId: buyWithCryptoTransaction.chainId,
|
54
|
+
client: buyWithCryptoTransaction.client,
|
55
|
+
});
|
56
|
+
switch (result.status) {
|
57
|
+
case "COMPLETED": {
|
58
|
+
const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
|
59
|
+
const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
|
60
|
+
return toBuyWithCryptoStatus({
|
61
|
+
originTransaction,
|
62
|
+
destinationTransaction,
|
63
|
+
originAmount: result.originAmount,
|
64
|
+
destinationAmount: result.destinationAmount,
|
65
|
+
originTokenAddress: result.originTokenAddress,
|
66
|
+
destinationTokenAddress: result.destinationTokenAddress,
|
67
|
+
originChainId: result.originChainId,
|
68
|
+
destinationChainId: result.destinationChainId,
|
69
|
+
status: result.status,
|
70
|
+
sender: result.sender,
|
71
|
+
receiver: result.receiver,
|
72
|
+
paymentId: result.paymentId,
|
73
|
+
originToken: result.originToken,
|
74
|
+
destinationToken: result.destinationToken,
|
75
|
+
purchaseData: result.purchaseData,
|
76
|
+
});
|
77
|
+
}
|
78
|
+
case "PENDING": {
|
79
|
+
return toBuyWithCryptoStatus({
|
80
|
+
originAmount: result.originAmount,
|
81
|
+
originTokenAddress: result.originTokenAddress,
|
82
|
+
destinationTokenAddress: result.destinationTokenAddress,
|
83
|
+
originChainId: result.originChainId,
|
84
|
+
destinationChainId: result.destinationChainId,
|
85
|
+
status: result.status,
|
86
|
+
sender: result.sender,
|
87
|
+
receiver: result.receiver,
|
88
|
+
paymentId: result.paymentId,
|
89
|
+
originToken: result.originToken,
|
90
|
+
destinationToken: result.destinationToken,
|
91
|
+
purchaseData: result.purchaseData,
|
92
|
+
});
|
93
|
+
}
|
94
|
+
case "FAILED": {
|
95
|
+
const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
|
96
|
+
const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
|
97
|
+
return toBuyWithCryptoStatus({
|
98
|
+
originTransaction,
|
99
|
+
destinationTransaction,
|
100
|
+
originAmount: BigInt(0), // TODO: get from API
|
101
|
+
originTokenAddress: "", // TODO: get from API
|
102
|
+
destinationTokenAddress: "", // TODO: get from API
|
103
|
+
originChainId: 0, // TODO: get from API
|
104
|
+
destinationChainId: 0, // TODO: get from API
|
105
|
+
status: result.status,
|
106
|
+
sender: "",
|
107
|
+
receiver: "",
|
108
|
+
paymentId: "",
|
109
|
+
originToken: undefined,
|
110
|
+
destinationToken: undefined,
|
111
|
+
purchaseData: result.purchaseData,
|
112
|
+
});
|
113
|
+
}
|
114
|
+
default: {
|
115
|
+
return {
|
116
|
+
status: "NOT_FOUND",
|
117
|
+
};
|
118
|
+
}
|
61
119
|
}
|
62
|
-
const data = (await response.json()).result;
|
63
|
-
return data;
|
64
120
|
}
|
65
121
|
catch (error) {
|
66
122
|
console.error("Fetch error:", error);
|
67
123
|
throw new Error(`Fetch failed: ${error}`);
|
68
124
|
}
|
69
125
|
}
|
126
|
+
function toBuyWithCryptoStatus(args) {
|
127
|
+
const { originTransaction, destinationTransaction, status, purchaseData, originAmount, destinationAmount, originTokenAddress, destinationTokenAddress, originChainId, destinationChainId, sender, receiver, originToken, destinationToken, } = args;
|
128
|
+
return {
|
129
|
+
fromAddress: sender,
|
130
|
+
toAddress: receiver,
|
131
|
+
quote: {
|
132
|
+
createdAt: new Date().toISOString(),
|
133
|
+
estimated: {
|
134
|
+
fromAmountUSDCents: 0,
|
135
|
+
toAmountMinUSDCents: 0,
|
136
|
+
toAmountUSDCents: 0,
|
137
|
+
slippageBPS: 0,
|
138
|
+
feesUSDCents: 0,
|
139
|
+
gasCostUSDCents: 0,
|
140
|
+
durationSeconds: 0,
|
141
|
+
},
|
142
|
+
fromAmount: originToken
|
143
|
+
? (0, units_js_1.toTokens)(originAmount, originToken.decimals).toString()
|
144
|
+
: "",
|
145
|
+
fromAmountWei: originAmount.toString(),
|
146
|
+
toAmount: destinationToken && destinationAmount
|
147
|
+
? (0, units_js_1.toTokens)(destinationAmount, destinationToken.decimals).toString()
|
148
|
+
: "",
|
149
|
+
toAmountWei: destinationAmount ? destinationAmount.toString() : "",
|
150
|
+
toAmountMin: destinationToken
|
151
|
+
? (0, units_js_1.toTokens)(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
|
152
|
+
: "",
|
153
|
+
toAmountMinWei: destinationAmount ? destinationAmount.toString() : "",
|
154
|
+
fromToken: {
|
155
|
+
tokenAddress: originTokenAddress,
|
156
|
+
chainId: originChainId,
|
157
|
+
decimals: originToken?.decimals ?? 18,
|
158
|
+
name: originToken?.name ?? "",
|
159
|
+
symbol: originToken?.symbol ?? "",
|
160
|
+
priceUSDCents: 0,
|
161
|
+
},
|
162
|
+
toToken: {
|
163
|
+
tokenAddress: destinationTokenAddress,
|
164
|
+
chainId: destinationChainId,
|
165
|
+
decimals: destinationToken?.decimals ?? 18,
|
166
|
+
name: destinationToken?.name ?? "",
|
167
|
+
symbol: destinationToken?.symbol ?? "",
|
168
|
+
priceUSDCents: 0,
|
169
|
+
},
|
170
|
+
},
|
171
|
+
swapType: originTransaction?.chainId === destinationTransaction?.chainId
|
172
|
+
? "SAME_CHAIN"
|
173
|
+
: "CROSS_CHAIN", // TODO transfer type?
|
174
|
+
status: status,
|
175
|
+
subStatus: status === "COMPLETED" ? "SUCCESS" : "NONE",
|
176
|
+
purchaseData: purchaseData,
|
177
|
+
bridge: "STARPORT",
|
178
|
+
destination: {
|
179
|
+
amount: destinationToken
|
180
|
+
? (0, units_js_1.toTokens)(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
|
181
|
+
: "",
|
182
|
+
amountWei: destinationAmount?.toString() ?? "",
|
183
|
+
token: {
|
184
|
+
tokenAddress: destinationTokenAddress,
|
185
|
+
chainId: destinationChainId,
|
186
|
+
decimals: destinationToken?.decimals ?? 18,
|
187
|
+
name: destinationToken?.name ?? "",
|
188
|
+
symbol: destinationToken?.symbol ?? "",
|
189
|
+
priceUSDCents: 0,
|
190
|
+
},
|
191
|
+
amountUSDCents: 0,
|
192
|
+
completedAt: new Date().toISOString(),
|
193
|
+
explorerLink: "",
|
194
|
+
transactionHash: destinationTransaction?.transactionHash ?? "",
|
195
|
+
},
|
196
|
+
source: {
|
197
|
+
amount: originToken
|
198
|
+
? (0, units_js_1.toTokens)(originAmount, originToken.decimals).toString()
|
199
|
+
: "",
|
200
|
+
amountWei: originAmount.toString(),
|
201
|
+
token: {
|
202
|
+
tokenAddress: originTokenAddress,
|
203
|
+
chainId: originChainId,
|
204
|
+
decimals: originToken?.decimals ?? 18,
|
205
|
+
name: originToken?.name ?? "",
|
206
|
+
symbol: originToken?.symbol ?? "",
|
207
|
+
priceUSDCents: 0,
|
208
|
+
},
|
209
|
+
amountUSDCents: 0,
|
210
|
+
completedAt: new Date().toISOString(),
|
211
|
+
explorerLink: "",
|
212
|
+
transactionHash: originTransaction?.transactionHash ?? "",
|
213
|
+
},
|
214
|
+
};
|
215
|
+
}
|
70
216
|
//# 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":"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"}
|
@@ -1,10 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getBuyWithCryptoTransfer = getBuyWithCryptoTransfer;
|
4
|
+
const ox_1 = require("ox");
|
5
|
+
const ox__AbiFunction = require("ox/AbiFunction");
|
6
|
+
const index_js_1 = require("../../bridge/index.js");
|
4
7
|
const utils_js_1 = require("../../chains/utils.js");
|
5
|
-
const
|
6
|
-
const
|
7
|
-
const
|
8
|
+
const addresses_js_1 = require("../../constants/addresses.js");
|
9
|
+
const contract_js_1 = require("../../contract/contract.js");
|
10
|
+
const decimals_js_1 = require("../../extensions/erc20/read/decimals.js");
|
8
11
|
/**
|
9
12
|
* Get a quote of type [`BuyWithCryptoTransfer`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransfer) to facilitate a token transfer transaction.
|
10
13
|
* Using this instead of a native transfer allows you to receive status and webhooks about successful or failed payments.
|
@@ -34,46 +37,101 @@ const definitions_js_1 = require("../utils/definitions.js");
|
|
34
37
|
*/
|
35
38
|
async function getBuyWithCryptoTransfer(params) {
|
36
39
|
try {
|
37
|
-
const
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
Accept: "application/json",
|
42
|
-
"Content-Type": "application/json",
|
43
|
-
},
|
44
|
-
body: (0, json_js_1.stringify)({
|
45
|
-
fromAddress: params.fromAddress,
|
46
|
-
toAddress: params.toAddress,
|
47
|
-
chainId: params.chainId,
|
48
|
-
tokenAddress: params.tokenAddress,
|
49
|
-
amount: params.amount,
|
50
|
-
purchaseData: params.purchaseData,
|
51
|
-
feePayer: params.feePayer,
|
52
|
-
}),
|
40
|
+
const tokenContract = (0, contract_js_1.getContract)({
|
41
|
+
address: params.tokenAddress,
|
42
|
+
chain: (0, utils_js_1.getCachedChain)(params.chainId),
|
43
|
+
client: params.client,
|
53
44
|
});
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
}
|
59
|
-
|
45
|
+
const tokenDecimals = tokenContract.address.toLowerCase() === addresses_js_1.NATIVE_TOKEN_ADDRESS
|
46
|
+
? 18
|
47
|
+
: await (0, decimals_js_1.decimals)({
|
48
|
+
contract: tokenContract,
|
49
|
+
});
|
50
|
+
const amount = ox_1.Value.from(params.amount, tokenDecimals);
|
51
|
+
const quote = await index_js_1.Transfer.prepare({
|
52
|
+
chainId: params.chainId,
|
53
|
+
tokenAddress: params.tokenAddress,
|
54
|
+
amount,
|
55
|
+
sender: params.fromAddress,
|
56
|
+
receiver: params.toAddress,
|
57
|
+
client: params.client,
|
58
|
+
feePayer: params.feePayer,
|
59
|
+
});
|
60
|
+
const firstStep = quote.steps[0];
|
61
|
+
if (!firstStep) {
|
62
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
63
|
+
}
|
64
|
+
const approvalTxs = firstStep.transactions.filter((tx) => tx.action === "approval");
|
65
|
+
if (approvalTxs.length > 1) {
|
66
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
67
|
+
}
|
68
|
+
const approvalTx = approvalTxs[0];
|
69
|
+
let approvalData;
|
70
|
+
if (approvalTx) {
|
71
|
+
const abiFunction = ox__AbiFunction.from([
|
72
|
+
"function approve(address spender, uint256 amount)",
|
73
|
+
]);
|
74
|
+
const [spender, amount] = ox__AbiFunction.decodeData(abiFunction, approvalTx.data);
|
75
|
+
approvalData = {
|
76
|
+
chainId: firstStep.originToken.chainId,
|
77
|
+
tokenAddress: firstStep.originToken.address,
|
78
|
+
spenderAddress: spender,
|
79
|
+
amountWei: amount.toString(),
|
80
|
+
};
|
81
|
+
}
|
82
|
+
const txs = firstStep.transactions.filter((tx) => tx.action !== "approval");
|
83
|
+
if (txs.length > 1) {
|
84
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
85
|
+
}
|
86
|
+
const tx = txs[0];
|
87
|
+
if (!tx) {
|
88
|
+
throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
|
60
89
|
}
|
61
|
-
const data = (await response.json()).result;
|
62
90
|
const transfer = {
|
63
91
|
transactionRequest: {
|
64
|
-
|
65
|
-
client: params.client,
|
66
|
-
data: data.transactionRequest.data,
|
67
|
-
to: data.transactionRequest.to,
|
68
|
-
value: BigInt(data.transactionRequest.value),
|
92
|
+
...tx,
|
69
93
|
extraGas: 50000n, // extra gas buffer
|
70
94
|
},
|
71
|
-
approvalData
|
72
|
-
fromAddress:
|
73
|
-
toAddress:
|
74
|
-
paymentToken:
|
75
|
-
|
76
|
-
|
95
|
+
approvalData,
|
96
|
+
fromAddress: params.fromAddress,
|
97
|
+
toAddress: params.toAddress,
|
98
|
+
paymentToken: {
|
99
|
+
token: {
|
100
|
+
tokenAddress: firstStep.originToken.address,
|
101
|
+
chainId: firstStep.originToken.chainId,
|
102
|
+
decimals: firstStep.originToken.decimals,
|
103
|
+
symbol: firstStep.originToken.symbol,
|
104
|
+
name: firstStep.originToken.name,
|
105
|
+
priceUSDCents: firstStep.originToken.priceUsd * 100,
|
106
|
+
},
|
107
|
+
amountWei: quote.originAmount.toString(),
|
108
|
+
amount: ox_1.Value.format(quote.originAmount, firstStep.originToken.decimals).toString(),
|
109
|
+
amountUSDCents: Number(ox_1.Value.format(quote.originAmount, firstStep.originToken.decimals)) *
|
110
|
+
firstStep.originToken.priceUsd *
|
111
|
+
100,
|
112
|
+
},
|
113
|
+
processingFee: {
|
114
|
+
token: {
|
115
|
+
tokenAddress: firstStep.originToken.address,
|
116
|
+
chainId: firstStep.originToken.chainId,
|
117
|
+
decimals: firstStep.originToken.decimals,
|
118
|
+
symbol: firstStep.originToken.symbol,
|
119
|
+
name: firstStep.originToken.name,
|
120
|
+
priceUSDCents: firstStep.originToken.priceUsd * 100,
|
121
|
+
},
|
122
|
+
amountWei: params.feePayer === "sender"
|
123
|
+
? (quote.originAmount - quote.destinationAmount).toString()
|
124
|
+
: "0",
|
125
|
+
amount: params.feePayer === "sender"
|
126
|
+
? ox_1.Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals).toString()
|
127
|
+
: "0",
|
128
|
+
amountUSDCents: params.feePayer === "sender"
|
129
|
+
? Number(ox_1.Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals)) *
|
130
|
+
firstStep.originToken.priceUsd *
|
131
|
+
100
|
132
|
+
: 0,
|
133
|
+
},
|
134
|
+
estimatedGasCostUSDCents: 0,
|
77
135
|
client: params.client,
|
78
136
|
};
|
79
137
|
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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"}
|
@@ -1,9 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getBuyWithFiatQuote = getBuyWithFiatQuote;
|
4
|
-
const
|
5
|
-
const
|
6
|
-
const
|
4
|
+
const Onramp_js_1 = require("../../bridge/Onramp.js");
|
5
|
+
const utils_js_1 = require("../../chains/utils.js");
|
6
|
+
const addresses_js_1 = require("../../constants/addresses.js");
|
7
|
+
const contract_js_1 = require("../../contract/contract.js");
|
8
|
+
const decimals_js_1 = require("../../extensions/erc20/read/decimals.js");
|
9
|
+
const units_js_1 = require("../../utils/units.js");
|
7
10
|
/**
|
8
11
|
* Get a quote of type [`BuyWithFiatQuote`](https://portal.thirdweb.com/references/typescript/v5/BuyWithFiatQuote) to buy given token with fiat currency.
|
9
12
|
* This quote contains the information about the swap such as token amounts, processing fees, estimated time etc.
|
@@ -54,38 +57,131 @@ const definitions_js_1 = require("../utils/definitions.js");
|
|
54
57
|
*/
|
55
58
|
async function getBuyWithFiatQuote(params) {
|
56
59
|
try {
|
57
|
-
|
58
|
-
const
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
"
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
fromCurrencySymbol: params.fromCurrencySymbol,
|
67
|
-
toChainId: params.toChainId.toString(),
|
68
|
-
toTokenAddress: params.toTokenAddress,
|
69
|
-
fromAmount: params.fromAmount,
|
70
|
-
toAmount: params.toAmount,
|
71
|
-
maxSlippageBPS: params.maxSlippageBPS,
|
72
|
-
isTestMode: params.isTestMode,
|
73
|
-
purchaseData: params.purchaseData,
|
74
|
-
fromAddress: params.fromAddress,
|
75
|
-
toGasAmountWei: params.toGasAmountWei,
|
76
|
-
preferredProvider: params.preferredProvider,
|
77
|
-
multiHopSupported: true,
|
78
|
-
}),
|
79
|
-
});
|
80
|
-
// Assuming the response directly matches the SwapResponse interface
|
81
|
-
if (!response.ok) {
|
82
|
-
const errorObj = await response.json();
|
83
|
-
if (errorObj && "error" in errorObj) {
|
84
|
-
throw errorObj;
|
60
|
+
// map preferred provider (FiatProvider) → onramp string expected by Onramp.prepare
|
61
|
+
const mapProviderToOnramp = (provider) => {
|
62
|
+
switch (provider) {
|
63
|
+
case "STRIPE":
|
64
|
+
return "stripe";
|
65
|
+
case "TRANSAK":
|
66
|
+
return "transak";
|
67
|
+
default: // default to coinbase when undefined or any other value
|
68
|
+
return "coinbase";
|
85
69
|
}
|
86
|
-
|
70
|
+
};
|
71
|
+
// Choose provider or default to STRIPE
|
72
|
+
const onrampProvider = mapProviderToOnramp(params.preferredProvider);
|
73
|
+
const d = params.toTokenAddress !== addresses_js_1.NATIVE_TOKEN_ADDRESS
|
74
|
+
? await (0, decimals_js_1.decimals)({
|
75
|
+
contract: (0, contract_js_1.getContract)({
|
76
|
+
client: params.client,
|
77
|
+
address: params.toTokenAddress,
|
78
|
+
chain: (0, utils_js_1.getCachedChain)(params.toChainId),
|
79
|
+
}),
|
80
|
+
})
|
81
|
+
: 18;
|
82
|
+
// Prepare amount in wei if provided
|
83
|
+
const amountWei = params.toAmount ? (0, units_js_1.toUnits)(params.toAmount, d) : undefined;
|
84
|
+
// Call new Onramp.prepare to get the quote & link
|
85
|
+
const prepared = await (0, Onramp_js_1.prepare)({
|
86
|
+
client: params.client,
|
87
|
+
onramp: onrampProvider,
|
88
|
+
chainId: params.toChainId,
|
89
|
+
tokenAddress: params.toTokenAddress,
|
90
|
+
receiver: params.toAddress,
|
91
|
+
sender: params.fromAddress,
|
92
|
+
amount: amountWei,
|
93
|
+
purchaseData: params.purchaseData,
|
94
|
+
currency: params.fromCurrencySymbol,
|
95
|
+
maxSteps: 2,
|
96
|
+
onrampTokenAddress: addresses_js_1.NATIVE_TOKEN_ADDRESS, // force onramp to native token to avoid missing gas issues
|
97
|
+
});
|
98
|
+
// Determine tokens based on steps rules
|
99
|
+
const hasSteps = prepared.steps.length > 0;
|
100
|
+
const firstStep = hasSteps
|
101
|
+
? prepared.steps[0]
|
102
|
+
: undefined;
|
103
|
+
// Estimated duration in seconds – sum of all step durations
|
104
|
+
const estimatedDurationSeconds = Math.max(120, Math.ceil(prepared.steps.reduce((acc, s) => acc + s.estimatedExecutionTimeMs, 0) /
|
105
|
+
1000));
|
106
|
+
const estimatedToAmountMinWeiBigInt = prepared.destinationAmount;
|
107
|
+
const maxSlippageBPS = params.maxSlippageBPS ?? 0;
|
108
|
+
const slippageWei = (estimatedToAmountMinWeiBigInt * BigInt(maxSlippageBPS)) / 10000n;
|
109
|
+
const toAmountMinWeiBigInt = estimatedToAmountMinWeiBigInt - slippageWei;
|
110
|
+
const estimatedToAmountMin = (0, units_js_1.toTokens)(estimatedToAmountMinWeiBigInt, d);
|
111
|
+
const toAmountMin = (0, units_js_1.toTokens)(toAmountMinWeiBigInt, d);
|
112
|
+
// Helper to convert a Token → PayTokenInfo
|
113
|
+
const tokenToPayTokenInfo = (token) => ({
|
114
|
+
chainId: token.chainId,
|
115
|
+
tokenAddress: token.address,
|
116
|
+
decimals: token.decimals,
|
117
|
+
priceUSDCents: Math.round(token.priceUsd * 100),
|
118
|
+
name: token.name,
|
119
|
+
symbol: token.symbol,
|
120
|
+
});
|
121
|
+
// Determine the raw token objects using new simplified rules
|
122
|
+
// 1. toToken is always the destination token
|
123
|
+
const toTokenRaw = prepared.destinationToken;
|
124
|
+
// 2. onRampToken: if exactly one step -> originToken of that step, else toTokenRaw
|
125
|
+
const onRampTokenRaw = prepared.steps.length > 0 && firstStep
|
126
|
+
? firstStep.originToken
|
127
|
+
: toTokenRaw;
|
128
|
+
// 3. routingToken: if exactly two steps -> originToken of second step, else undefined
|
129
|
+
const routingTokenRaw = prepared.steps.length > 1
|
130
|
+
? prepared.steps[1].originToken
|
131
|
+
: undefined;
|
132
|
+
// Amounts for onRampToken/raw
|
133
|
+
const onRampTokenAmountWei = prepared.steps.length > 0 && firstStep
|
134
|
+
? firstStep.originAmount
|
135
|
+
: prepared.destinationAmount;
|
136
|
+
const onRampTokenAmount = (0, units_js_1.toTokens)(onRampTokenAmountWei, onRampTokenRaw.decimals);
|
137
|
+
// Build info objects
|
138
|
+
const onRampTokenObject = {
|
139
|
+
amount: onRampTokenAmount,
|
140
|
+
amountWei: onRampTokenAmountWei.toString(),
|
141
|
+
amountUSDCents: Math.round(Number(onRampTokenAmount) * onRampTokenRaw.priceUsd * 100),
|
142
|
+
token: tokenToPayTokenInfo(onRampTokenRaw),
|
143
|
+
};
|
144
|
+
let routingTokenObject;
|
145
|
+
if (routingTokenRaw) {
|
146
|
+
const routingAmountWei = prepared.steps[1].originAmount;
|
147
|
+
const routingAmount = (0, units_js_1.toTokens)(routingAmountWei, routingTokenRaw.decimals);
|
148
|
+
routingTokenObject = {
|
149
|
+
amount: routingAmount,
|
150
|
+
amountWei: routingAmountWei.toString(),
|
151
|
+
amountUSDCents: Math.round(Number(routingAmount) * routingTokenRaw.priceUsd * 100),
|
152
|
+
token: tokenToPayTokenInfo(routingTokenRaw),
|
153
|
+
};
|
87
154
|
}
|
88
|
-
|
155
|
+
const buyWithFiatQuote = {
|
156
|
+
estimatedDurationSeconds,
|
157
|
+
estimatedToAmountMin: estimatedToAmountMin,
|
158
|
+
estimatedToAmountMinWei: estimatedToAmountMinWeiBigInt.toString(),
|
159
|
+
toAmountMinWei: toAmountMinWeiBigInt.toString(),
|
160
|
+
toAmountMin: toAmountMin,
|
161
|
+
fromCurrency: {
|
162
|
+
amount: prepared.currencyAmount.toString(),
|
163
|
+
amountUnits: Number(prepared.currencyAmount).toFixed(2),
|
164
|
+
decimals: 2,
|
165
|
+
currencySymbol: prepared.currency,
|
166
|
+
},
|
167
|
+
fromCurrencyWithFees: {
|
168
|
+
amount: prepared.currencyAmount.toString(),
|
169
|
+
amountUnits: Number(prepared.currencyAmount).toFixed(2),
|
170
|
+
decimals: 2,
|
171
|
+
currencySymbol: prepared.currency,
|
172
|
+
},
|
173
|
+
toToken: tokenToPayTokenInfo(toTokenRaw),
|
174
|
+
toAddress: params.toAddress,
|
175
|
+
fromAddress: params.fromAddress,
|
176
|
+
maxSlippageBPS: maxSlippageBPS,
|
177
|
+
intentId: prepared.id,
|
178
|
+
processingFees: [],
|
179
|
+
onRampToken: onRampTokenObject,
|
180
|
+
routingToken: routingTokenObject,
|
181
|
+
onRampLink: prepared.link,
|
182
|
+
provider: (params.preferredProvider ?? "COINBASE"),
|
183
|
+
};
|
184
|
+
return buyWithFiatQuote;
|
89
185
|
}
|
90
186
|
catch (error) {
|
91
187
|
console.error("Error getting buy with fiat quote", error);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":"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"}
|