thirdweb 5.105.46 → 5.105.48
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/react/core/hooks/useStepExecutor.js +73 -51
- package/dist/cjs/react/core/hooks/useStepExecutor.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +1 -2
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +1 -1
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +1 -0
- package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +2 -1
- package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +6 -5
- package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/react/core/hooks/useStepExecutor.js +73 -51
- package/dist/esm/react/core/hooks/useStepExecutor.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +1 -2
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js +1 -1
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +1 -0
- package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +2 -1
- package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +6 -5
- package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/react/core/hooks/useStepExecutor.d.ts +1 -1
- package/dist/types/react/core/hooks/useStepExecutor.d.ts.map +1 -1
- package/dist/types/react/core/machines/paymentMachine.d.ts +1 -1
- package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +4 -0
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +1 -1
- package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/react/core/hooks/useStepExecutor.ts +93 -71
- package/src/react/core/machines/paymentMachine.ts +1 -1
- package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +1 -2
- package/src/react/web/ui/Bridge/BuyWidget.tsx +6 -1
- package/src/react/web/ui/Bridge/QuoteLoader.tsx +1 -0
- package/src/react/web/ui/Bridge/StepRunner.tsx +1 -1
- package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +2 -1
- package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +9 -5
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +1 -0
- package/src/version.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"StepRunner.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/StepRunner.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAO7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,wCAAwC,CAAC;AAQhD,UAAU,eAAe;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAE9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"StepRunner.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/StepRunner.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAO7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,wCAAwC,CAAC;AAQhD,UAAU,eAAe;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IAEjE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE,eAAe,2CAyUjB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PaymentDetails.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AASjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,aAAa,EACb,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,mBAAmB,
|
1
|
+
{"version":3,"file":"PaymentDetails.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AASjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,aAAa,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,aAAa,EACb,aAAa,EACb,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,mBAAmB,2CA8UrB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PaymentSelection.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAM/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAKhE,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,gBAAgB,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,uBAAuB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAQD,wBAAgB,gBAAgB,CAAC,EAC/B,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,OAAO,EACP,MAAM,EACN,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAmC,EACnC,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE,qBAAqB,
|
1
|
+
{"version":3,"file":"PaymentSelection.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAM/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAKhE,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,gBAAgB,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,uBAAuB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAQD,wBAAgB,gBAAgB,CAAC,EAC/B,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,OAAO,EACP,MAAM,EACN,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAmC,EACnC,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE,qBAAqB,2CAwMvB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FiatValue.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,wBAAgB,SAAS,CACvB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,SAAS,
|
1
|
+
{"version":3,"file":"FiatValue.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,wBAAgB,SAAS,CACvB,KAAK,EAAE;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,GAAG,SAAS,kDAiCd"}
|
package/dist/types/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "5.105.
|
1
|
+
export declare const version = "5.105.48";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
@@ -38,7 +38,7 @@ interface StepExecutorOptions {
|
|
38
38
|
/** Prepared quote returned by Bridge.prepare */
|
39
39
|
request: BridgePrepareRequest;
|
40
40
|
/** Wallet instance providing getAccount() & sendTransaction */
|
41
|
-
wallet
|
41
|
+
wallet?: Wallet;
|
42
42
|
/** Window adapter for opening on-ramp URLs (web / RN) */
|
43
43
|
windowAdapter: WindowAdapter;
|
44
44
|
/** Thirdweb client for API calls */
|
@@ -372,6 +372,11 @@ export function useStepExecutor(
|
|
372
372
|
|
373
373
|
const status = statusResult.status;
|
374
374
|
if (status === "COMPLETED") {
|
375
|
+
/*
|
376
|
+
* The occasional race condition can happen where the onramp provider gives us completed status before the token balance has updated in our RPC.
|
377
|
+
* We add this pause so the simulation doesn't fail on the next step.
|
378
|
+
*/
|
379
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
375
380
|
setOnrampStatus("completed");
|
376
381
|
// Add type field for discriminated union
|
377
382
|
const typedStatusResult = {
|
@@ -408,6 +413,14 @@ export function useStepExecutor(
|
|
408
413
|
abortControllerRef.current = abortController;
|
409
414
|
|
410
415
|
try {
|
416
|
+
if (flatTxs.length > 0 && !wallet) {
|
417
|
+
throw new ApiError({
|
418
|
+
code: "INVALID_INPUT",
|
419
|
+
message: "No wallet provided to execute transactions",
|
420
|
+
statusCode: 400,
|
421
|
+
});
|
422
|
+
}
|
423
|
+
|
411
424
|
// Execute onramp first if configured and not already completed
|
412
425
|
if (preparedQuote.type === "onramp" && onrampStatus === "pending") {
|
413
426
|
await executeOnramp(
|
@@ -417,89 +430,98 @@ export function useStepExecutor(
|
|
417
430
|
);
|
418
431
|
}
|
419
432
|
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
}
|
429
|
-
|
430
|
-
// Start from where we left off, or from the beginning
|
431
|
-
const startIndex = currentTxIndex ?? 0;
|
432
|
-
|
433
|
-
for (let i = startIndex; i < flatTxs.length; i++) {
|
434
|
-
if (abortController.signal.aborted) {
|
435
|
-
break;
|
433
|
+
if (flatTxs.length > 0) {
|
434
|
+
// Then execute transactions
|
435
|
+
if (!wallet) {
|
436
|
+
throw new ApiError({
|
437
|
+
code: "INVALID_INPUT",
|
438
|
+
message: "No wallet provided to execute transactions",
|
439
|
+
statusCode: 400,
|
440
|
+
});
|
436
441
|
}
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
442
|
+
const account = wallet.getAccount();
|
443
|
+
if (!account) {
|
444
|
+
throw new ApiError({
|
445
|
+
code: "INVALID_INPUT",
|
446
|
+
message: "Wallet not connected",
|
447
|
+
statusCode: 400,
|
448
|
+
});
|
441
449
|
}
|
442
450
|
|
443
|
-
|
444
|
-
const
|
445
|
-
if (!currentStepData) {
|
446
|
-
throw new Error(`Invalid step index: ${currentTx._stepIndex}`);
|
447
|
-
}
|
451
|
+
// Start from where we left off, or from the beginning
|
452
|
+
const startIndex = currentTxIndex ?? 0;
|
448
453
|
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
454
|
+
for (let i = startIndex; i < flatTxs.length; i++) {
|
455
|
+
if (abortController.signal.aborted) {
|
456
|
+
break;
|
457
|
+
}
|
453
458
|
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
const
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
j++;
|
459
|
+
const currentTx = flatTxs[i];
|
460
|
+
if (!currentTx) {
|
461
|
+
continue; // Skip invalid index
|
462
|
+
}
|
463
|
+
|
464
|
+
setCurrentTxIndex(i);
|
465
|
+
const currentStepData = preparedQuote.steps[currentTx._stepIndex];
|
466
|
+
if (!currentStepData) {
|
467
|
+
throw new Error(`Invalid step index: ${currentTx._stepIndex}`);
|
468
|
+
}
|
469
|
+
|
470
|
+
// switch chain if needed
|
471
|
+
if (currentTx.chainId !== wallet.getChain()?.id) {
|
472
|
+
await wallet.switchChain(getCachedChain(currentTx.chainId));
|
469
473
|
}
|
470
474
|
|
471
|
-
//
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
475
|
+
// Check if we can batch transactions
|
476
|
+
const canBatch =
|
477
|
+
account.sendBatchTransaction !== undefined &&
|
478
|
+
i < flatTxs.length - 1; // Not the last transaction
|
479
|
+
|
480
|
+
if (canBatch) {
|
481
|
+
// Find consecutive transactions on the same chain
|
482
|
+
const batchTxs: FlattenedTx[] = [currentTx];
|
483
|
+
let j = i + 1;
|
484
|
+
while (j < flatTxs.length) {
|
485
|
+
const nextTx = flatTxs[j];
|
486
|
+
if (!nextTx || nextTx.chainId !== currentTx.chainId) {
|
487
|
+
break;
|
488
|
+
}
|
489
|
+
batchTxs.push(nextTx);
|
490
|
+
j++;
|
483
491
|
}
|
484
492
|
|
485
|
-
//
|
486
|
-
|
487
|
-
|
493
|
+
// Execute batch if we have multiple transactions
|
494
|
+
if (batchTxs.length > 1) {
|
495
|
+
await executeBatch(
|
496
|
+
batchTxs,
|
497
|
+
account,
|
498
|
+
completedStatusResults,
|
499
|
+
abortController.signal,
|
500
|
+
);
|
501
|
+
|
502
|
+
// Mark all batched transactions as completed
|
503
|
+
for (const tx of batchTxs) {
|
504
|
+
setCompletedTxs((prev) => new Set(prev).add(tx._index));
|
505
|
+
}
|
506
|
+
|
507
|
+
// Skip ahead
|
508
|
+
i = j - 1;
|
509
|
+
continue;
|
510
|
+
}
|
488
511
|
}
|
489
|
-
}
|
490
512
|
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
513
|
+
// Execute single transaction
|
514
|
+
await executeSingleTx(
|
515
|
+
currentTx,
|
516
|
+
account,
|
517
|
+
completedStatusResults,
|
518
|
+
abortController.signal,
|
519
|
+
);
|
498
520
|
|
499
|
-
|
500
|
-
|
521
|
+
// Mark transaction as completed
|
522
|
+
setCompletedTxs((prev) => new Set(prev).add(currentTx._index));
|
523
|
+
}
|
501
524
|
}
|
502
|
-
|
503
525
|
// All done - check if we actually completed everything
|
504
526
|
if (!abortController.signal.aborted) {
|
505
527
|
setCurrentTxIndex(undefined);
|
@@ -369,8 +369,7 @@ export function BridgeOrchestrator({
|
|
369
369
|
|
370
370
|
{state.value === "execute" &&
|
371
371
|
state.context.quote &&
|
372
|
-
state.context.request &&
|
373
|
-
state.context.selectedPaymentMethod?.payerWallet && (
|
372
|
+
state.context.request && (
|
374
373
|
<StepRunner
|
375
374
|
autoStart={true}
|
376
375
|
client={client}
|
@@ -193,6 +193,11 @@ export type BuyWidgetProps = {
|
|
193
193
|
* Custom label for the main action button.
|
194
194
|
*/
|
195
195
|
buttonLabel?: string;
|
196
|
+
|
197
|
+
/**
|
198
|
+
* The receiver address for the purchased funds.
|
199
|
+
*/
|
200
|
+
receiverAddress?: Address;
|
196
201
|
};
|
197
202
|
|
198
203
|
// Enhanced UIOptions to handle unsupported token state
|
@@ -455,7 +460,7 @@ export function BuyWidget(props: BuyWidgetProps) {
|
|
455
460
|
paymentMethods={props.paymentMethods}
|
456
461
|
presetOptions={props.presetOptions}
|
457
462
|
purchaseData={props.purchaseData}
|
458
|
-
receiverAddress={
|
463
|
+
receiverAddress={props.receiverAddress}
|
459
464
|
uiOptions={bridgeDataQuery.data.data}
|
460
465
|
showThirdwebBranding={props.showThirdwebBranding}
|
461
466
|
/>
|
@@ -101,6 +101,7 @@ export function PaymentDetails({
|
|
101
101
|
: preparedQuote.intent.destinationTokenAddress,
|
102
102
|
});
|
103
103
|
}
|
104
|
+
return true;
|
104
105
|
},
|
105
106
|
queryKey: ["payment_details", preparedQuote.type],
|
106
107
|
});
|
@@ -239,7 +240,7 @@ export function PaymentDetails({
|
|
239
240
|
receiver={preparedQuote.intent.receiver}
|
240
241
|
sender={
|
241
242
|
preparedQuote.intent.sender ||
|
242
|
-
paymentMethod.payerWallet
|
243
|
+
paymentMethod.payerWallet?.getAccount()?.address
|
243
244
|
}
|
244
245
|
toAmount={displayData.destinationAmount}
|
245
246
|
toToken={displayData.destinationToken}
|
@@ -196,15 +196,17 @@ export function PaymentSelection({
|
|
196
196
|
const handleOnrampProviderSelected = (
|
197
197
|
provider: "coinbase" | "stripe" | "transak",
|
198
198
|
) => {
|
199
|
-
|
200
|
-
|
199
|
+
const recipientAddress =
|
200
|
+
receiverAddress || payerWallet?.getAccount()?.address;
|
201
|
+
if (!recipientAddress) {
|
202
|
+
onError(new Error("No recipient address available for fiat payment"));
|
201
203
|
return;
|
202
204
|
}
|
203
205
|
|
204
206
|
const fiatPaymentMethod: PaymentMethod = {
|
205
|
-
currency: "USD",
|
207
|
+
currency: currency || "USD",
|
206
208
|
onramp: provider,
|
207
|
-
payerWallet,
|
209
|
+
payerWallet,
|
208
210
|
type: "fiat",
|
209
211
|
};
|
210
212
|
handlePaymentMethodSelected(fiatPaymentMethod);
|
@@ -307,7 +309,9 @@ export function PaymentSelection({
|
|
307
309
|
country={country}
|
308
310
|
client={client}
|
309
311
|
onProviderSelected={handleOnrampProviderSelected}
|
310
|
-
toAddress={
|
312
|
+
toAddress={
|
313
|
+
receiverAddress || payerWallet?.getAccount()?.address || ""
|
314
|
+
}
|
311
315
|
toAmount={destinationAmount}
|
312
316
|
toChainId={destinationToken.chainId}
|
313
317
|
toTokenAddress={destinationToken.address}
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.105.
|
1
|
+
export const version = "5.105.48";
|