thirdweb 5.87.4 → 5.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/client/client.js +2 -1
  2. package/dist/cjs/client/client.js.map +1 -1
  3. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js +4 -2
  4. package/dist/cjs/contract/deployment/zksync/zkDeployContract.js.map +1 -1
  5. package/dist/cjs/pay/buyWithCrypto/getQuote.js +1 -24
  6. package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
  7. package/dist/cjs/pay/buyWithCrypto/getTransfer.js +1 -13
  8. package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
  9. package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
  10. package/dist/cjs/pay/utils/commonTypes.js +2 -0
  11. package/dist/cjs/pay/utils/commonTypes.js.map +1 -1
  12. package/dist/cjs/react/core/utils/storage.js +2 -1
  13. package/dist/cjs/react/core/utils/storage.js.map +1 -1
  14. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +50 -200
  15. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  16. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +111 -0
  17. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -0
  18. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +30 -2
  19. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  20. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js +24 -0
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js.map +1 -0
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +18 -6
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +37 -0
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -0
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +165 -0
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -0
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +33 -6
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js +8 -0
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  36. package/dist/cjs/react/web/utils/errors.js +16 -0
  37. package/dist/cjs/react/web/utils/errors.js.map +1 -0
  38. package/dist/cjs/version.js +1 -1
  39. package/dist/cjs/wallets/smart/index.js +27 -0
  40. package/dist/cjs/wallets/smart/index.js.map +1 -1
  41. package/dist/cjs/wallets/smart/types.js.map +1 -1
  42. package/dist/esm/client/client.js +2 -1
  43. package/dist/esm/client/client.js.map +1 -1
  44. package/dist/esm/contract/deployment/zksync/zkDeployContract.js +4 -2
  45. package/dist/esm/contract/deployment/zksync/zkDeployContract.js.map +1 -1
  46. package/dist/esm/pay/buyWithCrypto/getQuote.js +1 -24
  47. package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
  48. package/dist/esm/pay/buyWithCrypto/getTransfer.js +1 -13
  49. package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
  50. package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
  51. package/dist/esm/pay/utils/commonTypes.js +1 -1
  52. package/dist/esm/pay/utils/commonTypes.js.map +1 -1
  53. package/dist/esm/react/core/utils/storage.js +1 -0
  54. package/dist/esm/react/core/utils/storage.js.map +1 -1
  55. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +50 -200
  56. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  57. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js +108 -0
  58. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.js.map +1 -0
  59. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +30 -2
  60. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  61. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js +21 -0
  62. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.js.map +1 -0
  63. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -1
  64. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
  65. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +18 -6
  66. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  67. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +34 -0
  68. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -0
  69. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +162 -0
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -0
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +33 -6
  74. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js +7 -0
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  77. package/dist/esm/react/web/utils/errors.js +12 -0
  78. package/dist/esm/react/web/utils/errors.js.map +1 -0
  79. package/dist/esm/version.js +1 -1
  80. package/dist/esm/wallets/smart/index.js +27 -0
  81. package/dist/esm/wallets/smart/index.js.map +1 -1
  82. package/dist/esm/wallets/smart/types.js.map +1 -1
  83. package/dist/types/client/client.d.ts.map +1 -1
  84. package/dist/types/contract/deployment/zksync/zkDeployContract.d.ts.map +1 -1
  85. package/dist/types/pay/buyWithCrypto/getQuote.d.ts +2 -2
  86. package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
  87. package/dist/types/pay/buyWithCrypto/getTransfer.d.ts +2 -2
  88. package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
  89. package/dist/types/pay/buyWithFiat/getQuote.d.ts +4 -0
  90. package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
  91. package/dist/types/pay/utils/commonTypes.d.ts +2 -1
  92. package/dist/types/pay/utils/commonTypes.d.ts.map +1 -1
  93. package/dist/types/react/core/utils/storage.d.ts +1 -0
  94. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  95. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  96. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts +25 -0
  97. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.d.ts.map +1 -0
  98. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +1 -1
  99. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.d.ts +9 -0
  100. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.d.ts.map +1 -0
  101. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +1 -0
  102. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
  103. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.d.ts.map +1 -1
  104. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +1 -0
  105. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  106. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts +11 -0
  107. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -0
  108. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts +1 -0
  109. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts.map +1 -1
  110. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts +31 -0
  111. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -0
  112. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
  113. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts +2 -0
  114. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts.map +1 -1
  115. package/dist/types/react/web/ui/components/text.d.ts +1 -1
  116. package/dist/types/react/web/ui/components/text.d.ts.map +1 -1
  117. package/dist/types/react/web/utils/errors.d.ts +14 -0
  118. package/dist/types/react/web/utils/errors.d.ts.map +1 -0
  119. package/dist/types/version.d.ts +1 -1
  120. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  121. package/dist/types/wallets/smart/types.d.ts +5 -0
  122. package/dist/types/wallets/smart/types.d.ts.map +1 -1
  123. package/package.json +1 -1
  124. package/src/client/client.test.ts +2 -2
  125. package/src/client/client.ts +2 -1
  126. package/src/contract/deployment/zksync/zkDeployContract.ts +5 -2
  127. package/src/pay/buyWithCrypto/getQuote.ts +2 -27
  128. package/src/pay/buyWithCrypto/getTransfer.ts +2 -14
  129. package/src/pay/buyWithFiat/getQuote.ts +5 -0
  130. package/src/pay/utils/commonTypes.ts +3 -1
  131. package/src/react/core/utils/storage.ts +1 -0
  132. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +70 -531
  133. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatScreenContent.tsx +307 -0
  134. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +33 -1
  135. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/Providers.tsx +57 -0
  136. package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +1 -0
  137. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx +12 -2
  138. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +21 -6
  139. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +51 -0
  140. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.tsx +2 -0
  141. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +353 -0
  142. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +43 -6
  143. package/src/react/web/ui/ConnectWallet/screens/nativeToken.ts +8 -0
  144. package/src/react/web/ui/components/text.tsx +1 -1
  145. package/src/react/web/utils/errors.ts +22 -0
  146. package/src/version.ts +1 -1
  147. package/src/wallets/smart/index.ts +28 -0
  148. package/src/wallets/smart/smart-wallet-integration.test.ts +25 -0
  149. package/src/wallets/smart/types.ts +5 -0
@@ -44,7 +44,8 @@ function createThirdwebClient(options) {
44
44
  }
45
45
  }
46
46
  else {
47
- realClientId = (0, client_id_js_1.computeClientIdFromSecretKey)(secretKey);
47
+ // always PREFER the clientId if provided, only compute it from the secretKey if we don't have a clientId passed explicitly
48
+ realClientId = clientId ?? (0, client_id_js_1.computeClientIdFromSecretKey)(secretKey);
48
49
  }
49
50
  }
50
51
  // only path we get here is if we have no secretKey and no clientId
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":";;AAsGA,oDA4BC;AAlID,wDAAqE;AACrE,sDAA+C;AAuE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,YAAY,GAAuB,QAAQ,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,IAAA,iBAAK,EAAC,SAAS,CAAC,EAAE,CAAC;YACrB,mEAAmE;YACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,IAAA,2CAA4B,EAAC,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,YAAY;QACtB,SAAS;KACD,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":";;AAsGA,oDA6BC;AAnID,wDAAqE;AACrE,sDAA+C;AAuE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,YAAY,GAAuB,QAAQ,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,IAAA,iBAAK,EAAC,SAAS,CAAC,EAAE,CAAC;YACrB,mEAAmE;YACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2HAA2H;YAC3H,YAAY,GAAG,QAAQ,IAAI,IAAA,2CAA4B,EAAC,SAAS,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,YAAY;QACtB,SAAS;KACD,CAAC;AACb,CAAC"}
@@ -8,18 +8,20 @@ const send_and_confirm_transaction_js_1 = require("../../../transaction/actions/
8
8
  const prepare_transaction_js_1 = require("../../../transaction/prepare-transaction.js");
9
9
  const normalizeFunctionParams_js_1 = require("../../../utils/abi/normalizeFunctionParams.js");
10
10
  const constants_js_1 = require("../../../utils/any-evm/zksync/constants.js");
11
+ const prefix_js_1 = require("../../../utils/bytecode/prefix.js");
11
12
  const zkDeployDeterministic_js_1 = require("./zkDeployDeterministic.js");
12
13
  /**
13
14
  * @internal
14
15
  */
15
16
  async function zkDeployContract(options) {
17
+ const bytecode = (0, prefix_js_1.ensureBytecodePrefix)(options.bytecode);
16
18
  if (options.salt !== undefined) {
17
19
  // if a salt is provided, use the deterministic deployer
18
20
  return (0, zkDeployDeterministic_js_1.zkDeployContractDeterministic)(options);
19
21
  }
20
22
  const data = (0, zksync_1.encodeDeployData)({
21
23
  abi: options.abi,
22
- bytecode: options.bytecode,
24
+ bytecode,
23
25
  deploymentType: options.deploymentType ?? "create",
24
26
  args: (0, normalizeFunctionParams_js_1.normalizeFunctionParams)(options.abi.find((abi) => abi.type === "constructor"), options.params),
25
27
  });
@@ -31,7 +33,7 @@ async function zkDeployContract(options) {
31
33
  to: constants_js_1.CONTRACT_DEPLOYER_ADDRESS,
32
34
  data,
33
35
  eip712: {
34
- factoryDeps: [options.bytecode],
36
+ factoryDeps: [bytecode],
35
37
  // TODO (zksync): allow passing in a paymaster
36
38
  },
37
39
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"zkDeployContract.js","sourceRoot":"","sources":["../../../../../src/contract/deployment/zksync/zkDeployContract.ts"],"names":[],"mappings":";;AAeA,4CAiDC;AA/DD,wCAA+C;AAC/C,wEAAsE;AACtE,8HAA6H;AAC7H,kHAAyG;AACzG,wFAAiF;AACjF,8FAAwF;AACxF,6EAAuF;AAGvF,yEAA2E;AAE3E;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAMC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,wDAAwD;QACxD,OAAO,IAAA,wDAA6B,EAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ;QAClD,IAAI,EAAE,IAAA,oDAAuB,EAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EACrD,OAAO,CAAC,MAAM,CACf;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,IAAA,2DAAyB,EAAC;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,IAAA,2CAAkB,EAAC;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,EAAE,EAAE,wCAAyB;YAC7B,IAAI;YACJ,MAAM,EAAE;gBACN,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC/B,8CAA8C;aAC/C;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,CAAC,IAAA,2CAAqB,GAAE,CAAC;KAClC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;IAExD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"zkDeployContract.js","sourceRoot":"","sources":["../../../../../src/contract/deployment/zksync/zkDeployContract.ts"],"names":[],"mappings":";;AAgBA,4CAmDC;AAlED,wCAA+C;AAC/C,wEAAsE;AACtE,8HAA6H;AAC7H,kHAAyG;AACzG,wFAAiF;AACjF,8FAAwF;AACxF,6EAAuF;AACvF,iEAAyE;AAGzE,yEAA2E;AAE3E;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAMC;IAED,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,wDAAwD;QACxD,OAAO,IAAA,wDAA6B,EAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ;QACR,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ;QAClD,IAAI,EAAE,IAAA,oDAAuB,EAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EACrD,OAAO,CAAC,MAAM,CACf;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,IAAA,2DAAyB,EAAC;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,IAAA,2CAAkB,EAAC;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,EAAE,EAAE,wCAAyB;YAC7B,IAAI;YACJ,MAAM,EAAE;gBACN,WAAW,EAAE,CAAC,QAAQ,CAAC;gBACvB,8CAA8C;aAC/C;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,CAAC,IAAA,2CAAqB,GAAE,CAAC;KAClC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;IAExD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -2,9 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBuyWithCryptoQuote = getBuyWithCryptoQuote;
4
4
  const utils_js_1 = require("../../chains/utils.js");
5
- const contract_js_1 = require("../../contract/contract.js");
6
- const allowance_js_1 = require("../../extensions/erc20/__generated__/IERC20/read/allowance.js");
7
- const approve_js_1 = require("../../extensions/erc20/write/approve.js");
8
5
  const fetch_js_1 = require("../../utils/fetch.js");
9
6
  const json_js_1 = require("../../utils/json.js");
10
7
  const definitions_js_1 = require("../utils/definitions.js");
@@ -70,26 +67,6 @@ async function getBuyWithCryptoQuote(params) {
70
67
  .result;
71
68
  // check if the fromAddress already has approval for the given amount
72
69
  const approvalData = data.approval;
73
- let approval = undefined;
74
- if (approvalData) {
75
- const contract = (0, contract_js_1.getContract)({
76
- client: params.client,
77
- address: approvalData.tokenAddress,
78
- chain: (0, utils_js_1.getCachedChain)(approvalData.chainId),
79
- });
80
- const approvedAmount = await (0, allowance_js_1.allowance)({
81
- contract,
82
- spender: approvalData.spenderAddress,
83
- owner: params.fromAddress,
84
- });
85
- if (approvedAmount < BigInt(approvalData.amountWei)) {
86
- approval = (0, approve_js_1.approve)({
87
- contract,
88
- spender: approvalData.spenderAddress,
89
- amountWei: BigInt(approvalData.amountWei),
90
- });
91
- }
92
- }
93
70
  const swapRoute = {
94
71
  transactionRequest: {
95
72
  chain: (0, utils_js_1.getCachedChain)(data.transactionRequest.chainId),
@@ -100,7 +77,7 @@ async function getBuyWithCryptoQuote(params) {
100
77
  gas: BigInt(data.transactionRequest.gasLimit),
101
78
  gasPrice: undefined, // ignore gas price returned by the quote, we handle it ourselves
102
79
  },
103
- approval: approval,
80
+ approvalData,
104
81
  swapDetails: {
105
82
  fromAddress: data.fromAddress,
106
83
  toAddress: data.toAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getQuote.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBuyWithCryptoTransfer = getBuyWithCryptoTransfer;
4
4
  const utils_js_1 = require("../../chains/utils.js");
5
- const contract_js_1 = require("../../contract/contract.js");
6
- const approve_js_1 = require("../../extensions/erc20/write/approve.js");
7
5
  const fetch_js_1 = require("../../utils/fetch.js");
8
6
  const json_js_1 = require("../../utils/json.js");
9
7
  const definitions_js_1 = require("../utils/definitions.js");
@@ -68,17 +66,7 @@ async function getBuyWithCryptoTransfer(params) {
68
66
  value: BigInt(data.transactionRequest.value),
69
67
  gas: BigInt(data.transactionRequest.gasLimit),
70
68
  },
71
- approval: data.approval
72
- ? (0, approve_js_1.approve)({
73
- contract: (0, contract_js_1.getContract)({
74
- client: params.client,
75
- address: data.approval.tokenAddress,
76
- chain: (0, utils_js_1.getCachedChain)(data.approval.chainId),
77
- }),
78
- spender: data.approval.spenderAddress,
79
- amountWei: BigInt(data.approval.amountWei),
80
- })
81
- : undefined,
69
+ approvalData: data.approval,
82
70
  fromAddress: data.fromAddress,
83
71
  toAddress: data.toAddress,
84
72
  paymentToken: data.paymentToken,
@@ -1 +1 @@
1
- {"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":";;AAsHA,4DAuDC;AA5KD,oDAAuD;AAIvD,mDAAsD;AACtD,iDAAgD;AAChD,4DAA8E;AAqF9E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,KAAK,UAAU,wBAAwB,CAC5C,MAAsC;IAEtC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAA,oDAAmC,GAAE,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAA,mBAAS,EAAC;gBACd,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAkC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3E,MAAM,QAAQ,GAA0B;YACtC,kBAAkB,EAAE;gBAClB,KAAK,EAAE,IAAA,yBAAc,EAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACtD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAY;gBAC1C,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAa;gBACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC5C,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;aAC9C;YACD,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":";;AAkSA,kDA0CC;AA3UD,mDAAsD;AACtD,iDAAgD;AAEhD,4DAAyE;AA8OzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAA,+CAA8B,GAAE,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAA,mBAAS,EAAC;gBACd,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACtC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,CAAC;SACH,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":";;AAuSA,kDA0CC;AAhVD,mDAAsD;AACtD,iDAAgD;AAEhD,4DAAyE;AAmPzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAA,+CAA8B,GAAE,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAA,mBAAS,EAAC;gBACd,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACtC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,CAAC;SACH,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,3 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FiatProviders = void 0;
4
+ exports.FiatProviders = ["COINBASE", "STRIPE", "TRANSAK", "KADO"];
3
5
  //# sourceMappingURL=commonTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../../../../src/pay/utils/commonTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"commonTypes.js","sourceRoot":"","sources":["../../../../src/pay/utils/commonTypes.ts"],"names":[],"mappings":";;;AAqBa,QAAA,aAAa,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LAST_AUTH_PROVIDER_STORAGE_KEY = void 0;
3
+ exports.PREFERRED_FIAT_PROVIDER_STORAGE_KEY = exports.LAST_AUTH_PROVIDER_STORAGE_KEY = void 0;
4
4
  exports.setLastAuthProvider = setLastAuthProvider;
5
5
  exports.getLastAuthProvider = getLastAuthProvider;
6
6
  exports.LAST_AUTH_PROVIDER_STORAGE_KEY = "lastAuthProvider";
7
+ exports.PREFERRED_FIAT_PROVIDER_STORAGE_KEY = "preferredFiatProvider";
7
8
  async function setLastAuthProvider(authProvider, storage) {
8
9
  await storage.setItem(exports.LAST_AUTH_PROVIDER_STORAGE_KEY, authProvider);
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/storage.ts"],"names":[],"mappings":";;;AAKA,kDAKC;AAED,kDAIC;AAbY,QAAA,8BAA8B,GAAG,kBAAkB,CAAC;AAE1D,KAAK,UAAU,mBAAmB,CACvC,YAAsC,EACtC,OAAqB;IAErB,MAAM,OAAO,CAAC,OAAO,CAAC,sCAA8B,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAqB;IAC7D,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,sCAA8B,CAAC,CAErD,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/storage.ts"],"names":[],"mappings":";;;AAMA,kDAKC;AAED,kDAIC;AAdY,QAAA,8BAA8B,GAAG,kBAAkB,CAAC;AACpD,QAAA,mCAAmC,GAAG,uBAAuB,CAAC;AAEpE,KAAK,UAAU,mBAAmB,CACvC,YAAsC,EACtC,OAAqB;IAErB,MAAM,OAAO,CAAC,OAAO,CAAC,sCAA8B,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAqB;IAC7D,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,sCAA8B,CAAC,CAErD,CAAC;AACX,CAAC"}
@@ -5,23 +5,16 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_query_1 = require("@tanstack/react-query");
6
6
  const react_1 = require("react");
7
7
  const addresses_js_1 = require("../../../../../../constants/addresses.js");
8
- const isSwapRequiredPostOnramp_js_1 = require("../../../../../../pay/buyWithFiat/isSwapRequiredPostOnramp.js");
9
- const formatNumber_js_1 = require("../../../../../../utils/formatNumber.js");
10
8
  const index_js_1 = require("../../../../../core/design-system/index.js");
11
- const useWalletBalance_js_1 = require("../../../../../core/hooks/others/useWalletBalance.js");
12
- const useBuyWithCryptoQuote_js_1 = require("../../../../../core/hooks/pay/useBuyWithCryptoQuote.js");
13
- const useBuyWithFiatQuote_js_1 = require("../../../../../core/hooks/pay/useBuyWithFiatQuote.js");
14
9
  const useActiveAccount_js_1 = require("../../../../../core/hooks/wallets/useActiveAccount.js");
15
10
  const invalidateWalletBalance_js_1 = require("../../../../../core/providers/invalidateWalletBalance.js");
16
11
  const ErrorState_js_1 = require("../../../../wallets/shared/ErrorState.js");
17
12
  const LoadingScreen_js_1 = require("../../../../wallets/shared/LoadingScreen.js");
18
13
  const ChainName_js_1 = require("../../../components/ChainName.js");
19
- const Drawer_js_1 = require("../../../components/Drawer.js");
20
14
  const Spacer_js_1 = require("../../../components/Spacer.js");
21
- const Spinner_js_1 = require("../../../components/Spinner.js");
22
- const SwitchNetwork_js_1 = require("../../../components/SwitchNetwork.js");
23
15
  const basic_js_1 = require("../../../components/basic.js");
24
16
  const buttons_js_1 = require("../../../components/buttons.js");
17
+ const formElements_js_1 = require("../../../components/formElements.js");
25
18
  const text_js_1 = require("../../../components/text.js");
26
19
  const TokenSymbol_js_1 = require("../../../components/token/TokenSymbol.js");
27
20
  const ConnectButton_js_1 = require("../../ConnectButton.js");
@@ -30,22 +23,18 @@ const TokenSelector_js_1 = require("../TokenSelector.js");
30
23
  const WalletSwitcherConnectionScreen_js_1 = require("../WalletSwitcherConnectionScreen.js");
31
24
  const nativeToken_js_1 = require("../nativeToken.js");
32
25
  const DirectPaymentModeScreen_js_1 = require("./DirectPaymentModeScreen.js");
33
- const EstimatedTimeAndFees_js_1 = require("./EstimatedTimeAndFees.js");
34
26
  const PayTokenIcon_js_1 = require("./PayTokenIcon.js");
35
- const PayWIthCreditCard_js_1 = require("./PayWIthCreditCard.js");
36
27
  const TransactionModeScreen_js_1 = require("./TransactionModeScreen.js");
37
28
  const CurrencySelection_js_1 = require("./fiat/CurrencySelection.js");
38
29
  const FiatFlow_js_1 = require("./fiat/FiatFlow.js");
30
+ const FiatScreenContent_js_1 = require("./fiat/FiatScreenContent.js");
39
31
  const useEnabledPaymentMethods_js_1 = require("./main/useEnabledPaymentMethods.js");
40
32
  const useUISelectionStates_js_1 = require("./main/useUISelectionStates.js");
41
- const openOnRamppopup_js_1 = require("./openOnRamppopup.js");
42
33
  const BuyTokenInput_js_1 = require("./swap/BuyTokenInput.js");
43
- const Fees_js_1 = require("./swap/Fees.js");
44
- const PayWithCrypto_js_1 = require("./swap/PayWithCrypto.js");
45
34
  const PaymentSelectionScreen_js_1 = require("./swap/PaymentSelectionScreen.js");
46
35
  const SwapFlow_js_1 = require("./swap/SwapFlow.js");
36
+ const SwapScreenContent_js_1 = require("./swap/SwapScreenContent.js");
47
37
  const TransferFlow_js_1 = require("./swap/TransferFlow.js");
48
- const pendingSwapTx_js_1 = require("./swap/pendingSwapTx.js");
49
38
  const useSwapSupportedChains_js_1 = require("./swap/useSwapSupportedChains.js");
50
39
  const usePayerSetup_js_1 = require("./usePayerSetup.js");
51
40
  /**
@@ -159,7 +148,7 @@ function BuyScreenContent(props) {
159
148
  setScreen({
160
149
  id: "buy-with-crypto",
161
150
  });
162
- }, onSuccess: onSwapSuccess }));
151
+ }, onSuccess: onSwapSuccess, approvalAmount: screen.approvalAmount }));
163
152
  }
164
153
  if (screen.id === "fiat-flow" && payer) {
165
154
  return ((0, jsx_runtime_1.jsx)(FiatFlow_js_1.FiatFlow, { title: props.title, transactionMode: payOptions.mode === "transaction", quote: screen.quote, onBack: () => {
@@ -238,7 +227,7 @@ function BuyScreenContent(props) {
238
227
  return ((0, jsx_runtime_1.jsx)(basic_js_1.Container, { animate: "fadein", children: (0, jsx_runtime_1.jsxs)("div", { children: [screen.id === "main" && ((0, jsx_runtime_1.jsx)(MainScreen, { title: props.title, payerAccount: payer?.account, client: client, onSelectBuyToken: () => setScreen({ id: "select-to-token", backScreen: screen }), payOptions: payOptions, setTokenAmount: setTokenAmount, setToChain: setToChain, setToToken: setToToken, setFromChain: setFromChain, setFromToken: setFromToken, toChain: toChain, toToken: toToken, tokenAmount: tokenAmount, connectOptions: props.connectOptions, setScreen: setScreen, supportedDestinations: supportedDestinations, onBack: props.onBack, theme: props.theme, hasEditedAmount: hasEditedAmount, setHasEditedAmount: setHasEditedAmount, enabledPaymentMethods: enabledPaymentMethods })), (screen.id === "select-payment-method" ||
239
228
  screen.id === "buy-with-crypto" ||
240
229
  screen.id === "buy-with-fiat") &&
241
- payer && ((0, jsx_runtime_1.jsxs)(TokenSelectedLayout, { title: props.title, selectedChain: toChain, selectedToken: toToken, tokenAmount: tokenAmount, client: client, onBack: () => {
230
+ payer && ((0, jsx_runtime_1.jsxs)(TokenSelectedLayout, { title: props.title, selectedChain: toChain, selectedToken: toToken, tokenAmount: tokenAmount, setTokenAmount: setTokenAmount, client: client, onBack: () => {
242
231
  if (enabledPaymentMethods.buyWithCryptoEnabled &&
243
232
  screen.id === "buy-with-fiat") {
244
233
  setScreen({ id: "select-payment-method" });
@@ -272,7 +261,7 @@ function BuyScreenContent(props) {
272
261
  id: "select-payment-method",
273
262
  },
274
263
  });
275
- } })), screen.id === "buy-with-crypto" && activeAccount && ((0, jsx_runtime_1.jsx)(SwapScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, fromChain: fromChain, fromToken: fromToken, showFromTokenSelector: () => {
264
+ } })), screen.id === "buy-with-crypto" && activeAccount && ((0, jsx_runtime_1.jsx)(SwapScreenContent_js_1.SwapScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, fromChain: fromChain, fromToken: fromToken, showFromTokenSelector: () => {
276
265
  setScreen({
277
266
  id: "select-from-token",
278
267
  backScreen: screen,
@@ -284,7 +273,7 @@ function BuyScreenContent(props) {
284
273
  payOptions.buyWithCrypto?.prefillSource?.allowEdits
285
274
  ?.chain === false &&
286
275
  payOptions.buyWithCrypto?.prefillSource?.allowEdits
287
- ?.token === false) })), screen.id === "buy-with-fiat" && ((0, jsx_runtime_1.jsx)(FiatScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, selectedCurrency: selectedCurrency, client: client, isEmbed: props.isEmbed, onDone: onDone, payOptions: payOptions, theme: props.theme, showCurrencySelector: () => {
276
+ ?.token === false) })), screen.id === "buy-with-fiat" && ((0, jsx_runtime_1.jsx)(FiatScreenContent_js_1.FiatScreenContent, { setScreen: setScreen, tokenAmount: deferredTokenAmount, toChain: toChain, toToken: toToken, selectedCurrency: selectedCurrency, client: client, isEmbed: props.isEmbed, onDone: onDone, payOptions: payOptions, theme: props.theme, showCurrencySelector: () => {
288
277
  setScreen({
289
278
  id: "select-currency",
290
279
  backScreen: screen,
@@ -292,9 +281,50 @@ function BuyScreenContent(props) {
292
281
  }, payer: payer, setTokenAmount: setTokenAmount, setHasEditedAmount: setHasEditedAmount }))] }))] }) }));
293
282
  }
294
283
  function SelectedTokenInfo(props) {
284
+ const getWidth = () => {
285
+ let chars = props.tokenAmount.replace(".", "").length;
286
+ const hasDot = props.tokenAmount.includes(".");
287
+ if (hasDot) {
288
+ chars += 0.3;
289
+ }
290
+ return `calc(${`${Math.max(1, chars)}ch + 2px`})`;
291
+ };
295
292
  return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "sm", center: "y", style: {
296
293
  justifyContent: "space-between",
297
- }, children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "xs", center: "y", children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "primaryText", "data-testid": "tokenAmount", size: "xl", children: (0, formatNumber_js_1.formatNumber)(Number(props.tokenAmount), 6) }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "xxs", center: "y", children: [(0, jsx_runtime_1.jsx)(TokenSymbol_js_1.TokenSymbol, { token: props.selectedToken, chain: props.selectedChain, size: "md", color: "secondaryText" }), (0, jsx_runtime_1.jsx)(PayTokenIcon_js_1.PayTokenIcon, { chain: props.selectedChain, client: props.client, size: "sm", token: props.selectedToken })] })] }), (0, jsx_runtime_1.jsx)(ChainName_js_1.ChainName, { chain: props.selectedChain, client: props.client, size: "sm", short: true })] }) }));
294
+ }, children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "xs", center: "y", children: [(0, jsx_runtime_1.jsx)(formElements_js_1.Input, { variant: "outline", pattern: "^[0-9]*[.,]?[0-9]*$", inputMode: "decimal", tabIndex: -1, placeholder: "0", type: "text", "data-placeholder": props.tokenAmount === "", value: props.tokenAmount || "0", disabled: false, onClick: (e) => {
295
+ // put cursor at the end of the input
296
+ if (props.tokenAmount === "") {
297
+ e.currentTarget.setSelectionRange(e.currentTarget.value.length, e.currentTarget.value.length);
298
+ }
299
+ }, onChange: (e) => {
300
+ let value = e.target.value;
301
+ if (value.startsWith(".")) {
302
+ value = `0${value}`;
303
+ }
304
+ if (value.length > 10) {
305
+ return;
306
+ }
307
+ const numValue = Number(value);
308
+ if (Number.isNaN(numValue)) {
309
+ return;
310
+ }
311
+ if (value.startsWith("0") && !value.startsWith("0.")) {
312
+ props.setTokenAmount(value.slice(1));
313
+ }
314
+ else {
315
+ props.setTokenAmount(value);
316
+ }
317
+ }, style: {
318
+ border: "none",
319
+ fontSize: index_js_1.fontSize.lg,
320
+ boxShadow: "none",
321
+ borderRadius: "0",
322
+ padding: "0",
323
+ paddingBlock: "2px",
324
+ fontWeight: 600,
325
+ textAlign: "left",
326
+ width: getWidth(),
327
+ } }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "xxs", center: "y", children: [(0, jsx_runtime_1.jsx)(TokenSymbol_js_1.TokenSymbol, { token: props.selectedToken, chain: props.selectedChain, size: "md", color: "secondaryText" }), (0, jsx_runtime_1.jsx)(PayTokenIcon_js_1.PayTokenIcon, { chain: props.selectedChain, client: props.client, size: "sm", token: props.selectedToken })] })] }), (0, jsx_runtime_1.jsx)(ChainName_js_1.ChainName, { chain: props.selectedChain, client: props.client, size: "sm", short: true })] }) }));
298
328
  }
299
329
  function MainScreen(props) {
300
330
  const { setTokenAmount, setToChain, setToToken, setFromChain, setFromToken, payerAccount, client, tokenAmount, payOptions, toToken, toChain, supportedDestinations, enabledPaymentMethods, } = props;
@@ -354,176 +384,7 @@ function MainScreen(props) {
354
384
  function TokenSelectedLayout(props) {
355
385
  return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { children: [(0, jsx_runtime_1.jsx)(basic_js_1.Container, { p: "lg", children: (0, jsx_runtime_1.jsx)(basic_js_1.ModalHeader, { title: props.title, onBack: props.onBack }) }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { px: "lg", style: {
356
386
  paddingBottom: index_js_1.spacing.lg,
357
- }, children: [(0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "xs" }), (0, jsx_runtime_1.jsx)(SelectedTokenInfo, { selectedToken: props.selectedToken, selectedChain: props.selectedChain, tokenAmount: props.tokenAmount, client: props.client }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "md" }), (0, jsx_runtime_1.jsx)(basic_js_1.Line, {}), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "lg" }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", children: " Pay with " }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "sm" }), props.children] })] }));
358
- }
359
- function SwapScreenContent(props) {
360
- const { setScreen, payer, client, toChain, tokenAmount, toToken, fromChain, fromToken, payOptions, disableTokenSelection, } = props;
361
- const defaultRecipientAddress = props.payOptions?.paymentInfo?.sellerAddress;
362
- const receiverAddress = defaultRecipientAddress || props.activeAccount.address;
363
- const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = (0, Drawer_js_1.useDrawer)();
364
- const [drawerScreen, setDrawerScreen] = (0, react_1.useState)("fees");
365
- const fromTokenBalanceQuery = (0, useWalletBalance_js_1.useWalletBalance)({
366
- address: payer.account.address,
367
- chain: fromChain,
368
- tokenAddress: (0, nativeToken_js_1.isNativeToken)(fromToken) ? undefined : fromToken.address,
369
- client,
370
- });
371
- const fromTokenId = (0, nativeToken_js_1.isNativeToken)(fromToken)
372
- ? addresses_js_1.NATIVE_TOKEN_ADDRESS
373
- : fromToken.address.toLowerCase();
374
- const toTokenId = (0, nativeToken_js_1.isNativeToken)(toToken)
375
- ? addresses_js_1.NATIVE_TOKEN_ADDRESS
376
- : toToken.address.toLowerCase();
377
- const swapRequired = !!tokenAmount &&
378
- !(fromChain.id === toChain.id && fromTokenId === toTokenId);
379
- const quoteParams = swapRequired
380
- ? {
381
- // wallets
382
- fromAddress: payer.account.address,
383
- toAddress: receiverAddress,
384
- // from
385
- fromChainId: fromChain.id,
386
- fromTokenAddress: (0, nativeToken_js_1.isNativeToken)(fromToken)
387
- ? addresses_js_1.NATIVE_TOKEN_ADDRESS
388
- : fromToken.address,
389
- // to
390
- toChainId: toChain.id,
391
- toTokenAddress: (0, nativeToken_js_1.isNativeToken)(toToken)
392
- ? addresses_js_1.NATIVE_TOKEN_ADDRESS
393
- : toToken.address,
394
- toAmount: tokenAmount,
395
- client,
396
- purchaseData: payOptions.purchaseData,
397
- }
398
- : undefined;
399
- const quoteQuery = (0, useBuyWithCryptoQuote_js_1.useBuyWithCryptoQuote)(quoteParams, {
400
- // refetch every 30 seconds
401
- staleTime: 30 * 1000,
402
- refetchInterval: 30 * 1000,
403
- gcTime: 30 * 1000,
404
- });
405
- const sourceTokenAmount = swapRequired
406
- ? quoteQuery.data?.swapDetails.fromAmount
407
- : tokenAmount;
408
- const isNotEnoughBalance = !!sourceTokenAmount &&
409
- !!fromTokenBalanceQuery.data &&
410
- Number(fromTokenBalanceQuery.data.displayValue) < Number(sourceTokenAmount);
411
- const disableContinue = (swapRequired && !quoteQuery.data) || isNotEnoughBalance;
412
- const switchChainRequired = props.payer.wallet.getChain()?.id !== fromChain.id;
413
- const errorMsg = !quoteQuery.isLoading && quoteQuery.error
414
- ? getErrorMessage(quoteQuery.error)
415
- : undefined;
416
- function showSwapFlow() {
417
- if ((props.payOptions.mode === "direct_payment" ||
418
- props.payOptions.mode === "fund_wallet") &&
419
- !isNotEnoughBalance &&
420
- !swapRequired) {
421
- // same currency, just direct transfer
422
- setScreen({
423
- id: "transfer-flow",
424
- });
425
- }
426
- else if (props.payOptions.mode === "transaction" &&
427
- !isNotEnoughBalance &&
428
- !swapRequired) {
429
- if (payer.account.address !== receiverAddress) {
430
- // needs transfer from another wallet before executing the transaction
431
- setScreen({
432
- id: "transfer-flow",
433
- });
434
- }
435
- else {
436
- // has enough balance to just do the transaction directly
437
- props.onDone();
438
- }
439
- return;
440
- }
441
- if (!quoteQuery.data) {
442
- return;
443
- }
444
- setScreen({
445
- id: "swap-flow",
446
- quote: quoteQuery.data,
447
- });
448
- }
449
- function showFees() {
450
- if (!quoteQuery.data) {
451
- return;
452
- }
453
- setIsOpen(true);
454
- setDrawerScreen("fees");
455
- }
456
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Drawer_js_1.DrawerOverlay, { ref: drawerOverlayRef }), (0, jsx_runtime_1.jsx)(Drawer_js_1.Drawer, { ref: drawerRef, close: () => setIsOpen(false), children: drawerScreen === "fees" && quoteQuery.data && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "lg", color: "primaryText", children: "Fees" }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "lg" }), (0, jsx_runtime_1.jsx)(Fees_js_1.SwapFees, { quote: quoteQuery.data })] })) })] })), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(PayWithCrypto_js_1.PayWithCryptoQuoteInfo, { value: sourceTokenAmount || "", chain: fromChain, token: fromToken, isLoading: quoteQuery.isLoading && !sourceTokenAmount, client: client, freezeChainAndTokenSelection: disableTokenSelection, payerAccount: props.payer.account, swapRequired: swapRequired }), swapRequired && ((0, jsx_runtime_1.jsx)(EstimatedTimeAndFees_js_1.EstimatedTimeAndFees, { quoteIsLoading: quoteQuery.isLoading, estimatedSeconds: quoteQuery.data?.swapDetails.estimated.durationSeconds, onViewFees: showFees })), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "md" })] }), errorMsg && ((0, jsx_runtime_1.jsx)("div", { children: errorMsg.data?.minimumAmountEth ? ((0, jsx_runtime_1.jsxs)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is", " ", (0, formatNumber_js_1.formatNumber)(Number(errorMsg.data.minimumAmountEth), 6), " ", (0, jsx_runtime_1.jsx)(TokenSymbol_js_1.TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })) : ((0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: errorMsg.message || defaultMessage })) })), !errorMsg && isNotEnoughBalance && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: "Not enough funds." }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: "Try a different wallet or token." })] })), errorMsg?.data?.minimumAmountEth ? ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: "accent", fullWidth: true, onClick: () => {
457
- props.setTokenAmount((0, formatNumber_js_1.formatNumber)(Number(errorMsg.data?.minimumAmountEth), 6).toString());
458
- props.setHasEditedAmount(true);
459
- }, children: "Set Minimum" })) : switchChainRequired &&
460
- !quoteQuery.isLoading &&
461
- !isNotEnoughBalance &&
462
- !quoteQuery.error ? ((0, jsx_runtime_1.jsx)(SwitchNetwork_js_1.SwitchNetworkButton, { variant: "accent", fullWidth: true, switchChain: async () => {
463
- await props.payer.wallet.switchChain(fromChain);
464
- } })) : ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: disableContinue ? "outline" : "accent", fullWidth: true, "data-disabled": disableContinue, disabled: disableContinue, onClick: async () => {
465
- if (!disableContinue) {
466
- showSwapFlow();
467
- }
468
- }, gap: "xs", children: quoteQuery.isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Getting price quote", (0, jsx_runtime_1.jsx)(Spinner_js_1.Spinner, { size: "sm", color: "accentText" })] })) : ("Continue") }))] }));
469
- }
470
- function FiatScreenContent(props) {
471
- const { toToken, tokenAmount, payer, client, setScreen, toChain, showCurrencySelector, selectedCurrency, } = props;
472
- const defaultRecipientAddress = props.payOptions?.paymentInfo?.sellerAddress;
473
- const receiverAddress = defaultRecipientAddress || props.payer.account.address;
474
- const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = (0, Drawer_js_1.useDrawer)();
475
- const [drawerScreen, setDrawerScreen] = (0, react_1.useState)("fees");
476
- const buyWithFiatOptions = props.payOptions.buyWithFiat;
477
- const fiatQuoteQuery = (0, useBuyWithFiatQuote_js_1.useBuyWithFiatQuote)(buyWithFiatOptions !== false && tokenAmount
478
- ? {
479
- fromCurrencySymbol: selectedCurrency.shorthand,
480
- toChainId: toChain.id,
481
- toAddress: receiverAddress,
482
- toTokenAddress: (0, nativeToken_js_1.isNativeToken)(toToken)
483
- ? addresses_js_1.NATIVE_TOKEN_ADDRESS
484
- : toToken.address,
485
- toAmount: tokenAmount,
486
- client,
487
- isTestMode: buyWithFiatOptions?.testMode,
488
- purchaseData: props.payOptions.purchaseData,
489
- fromAddress: payer.account.address,
490
- preferredProvider: buyWithFiatOptions?.preferredProvider,
491
- }
492
- : undefined);
493
- function handleSubmit() {
494
- if (!fiatQuoteQuery.data) {
495
- return;
496
- }
497
- const hasTwoSteps = (0, isSwapRequiredPostOnramp_js_1.isSwapRequiredPostOnramp)(fiatQuoteQuery.data);
498
- let openedWindow = null;
499
- if (!hasTwoSteps) {
500
- openedWindow = (0, openOnRamppopup_js_1.openOnrampPopup)(fiatQuoteQuery.data.onRampLink, typeof props.theme === "string" ? props.theme : props.theme.type);
501
- (0, pendingSwapTx_js_1.addPendingTx)({
502
- type: "fiat",
503
- intentId: fiatQuoteQuery.data.intentId,
504
- });
505
- }
506
- setScreen({
507
- id: "fiat-flow",
508
- quote: fiatQuoteQuery.data,
509
- openedWindow,
510
- });
511
- }
512
- function showFees() {
513
- if (!fiatQuoteQuery.data) {
514
- return;
515
- }
516
- setDrawerScreen("fees");
517
- setIsOpen(true);
518
- }
519
- const disableSubmit = !fiatQuoteQuery.data;
520
- const errorMsg = !fiatQuoteQuery.isLoading && fiatQuoteQuery.error
521
- ? getErrorMessage(fiatQuoteQuery.error)
522
- : undefined;
523
- return ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", gap: "md", animate: "fadein", children: [isOpen && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Drawer_js_1.DrawerOverlay, { ref: drawerOverlayRef }), (0, jsx_runtime_1.jsx)(Drawer_js_1.Drawer, { ref: drawerRef, close: () => setIsOpen(false), children: drawerScreen === "fees" && fiatQuoteQuery.data && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "lg", color: "primaryText", children: "Fees" }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "lg" }), (0, jsx_runtime_1.jsx)(Fees_js_1.FiatFees, { quote: fiatQuoteQuery.data })] })) })] })), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(PayWIthCreditCard_js_1.PayWithCreditCard, { isLoading: fiatQuoteQuery.isLoading, value: fiatQuoteQuery.data?.fromCurrencyWithFees.amount, client: client, currency: selectedCurrency, onSelectCurrency: showCurrencySelector }), (0, jsx_runtime_1.jsx)(EstimatedTimeAndFees_js_1.EstimatedTimeAndFees, { quoteIsLoading: fiatQuoteQuery.isLoading, estimatedSeconds: fiatQuoteQuery.data?.estimatedDurationSeconds, onViewFees: showFees }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "md" })] }), errorMsg && ((0, jsx_runtime_1.jsx)("div", { children: errorMsg.data?.minimumAmountEth ? ((0, jsx_runtime_1.jsxs)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: ["Minimum amount is", " ", (0, formatNumber_js_1.formatNumber)(Number(errorMsg.data.minimumAmountEth), 6), " ", (0, jsx_runtime_1.jsx)(TokenSymbol_js_1.TokenSymbol, { token: toToken, chain: toChain, size: "sm", inline: true, color: "danger" })] })) : ((0, jsx_runtime_1.jsx)(text_js_1.Text, { color: "danger", size: "sm", center: true, multiline: true, children: errorMsg.message || defaultMessage })) })), errorMsg?.data?.minimumAmountEth ? ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: "accent", fullWidth: true, onClick: () => {
524
- props.setTokenAmount((0, formatNumber_js_1.formatNumber)(Number(errorMsg.data?.minimumAmountEth), 6).toString());
525
- props.setHasEditedAmount(true);
526
- }, children: "Set Minimum" })) : ((0, jsx_runtime_1.jsx)(buttons_js_1.Button, { variant: disableSubmit ? "outline" : "accent", "data-disabled": disableSubmit, disabled: disableSubmit, fullWidth: true, onClick: handleSubmit, gap: "xs", children: fiatQuoteQuery.isLoading ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Getting price quote", (0, jsx_runtime_1.jsx)(Spinner_js_1.Spinner, { size: "sm", color: "accentText" })] })) : ("Continue") }))] }));
387
+ }, children: [(0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "xs" }), (0, jsx_runtime_1.jsx)(SelectedTokenInfo, { selectedToken: props.selectedToken, selectedChain: props.selectedChain, tokenAmount: props.tokenAmount, setTokenAmount: props.setTokenAmount, client: props.client }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "md" }), (0, jsx_runtime_1.jsx)(basic_js_1.Line, {}), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "lg" }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", children: " Pay with " }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "sm" }), props.children] })] }));
527
388
  }
528
389
  function createSupportedTokens(data, payOptions, supportedTokensOverrides) {
529
390
  const tokens = {};
@@ -574,15 +435,4 @@ function ChainSelectionScreen(props) {
574
435
  },
575
436
  } }));
576
437
  }
577
- const defaultMessage = "Unable to get price quote";
578
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
579
- function getErrorMessage(err) {
580
- if (typeof err.error === "object") {
581
- return err.error;
582
- }
583
- return {
584
- code: "UNABLE_TO_GET_PRICE_QUOTE",
585
- message: defaultMessage,
586
- };
587
- }
588
438
  //# sourceMappingURL=BuyScreen.js.map