thirdweb 5.108.4 → 5.108.5-nightly-ce9220ea00e5a58bf3f6997733b4b69df981cba8-20250930000345

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 (52) hide show
  1. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js +9 -5
  2. package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
  3. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js +4 -2
  4. package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -1
  5. package/dist/cjs/version.js +1 -1
  6. package/dist/cjs/version.js.map +1 -1
  7. package/dist/cjs/x402/common.js +60 -4
  8. package/dist/cjs/x402/common.js.map +1 -1
  9. package/dist/cjs/x402/facilitator.js +12 -4
  10. package/dist/cjs/x402/facilitator.js.map +1 -1
  11. package/dist/cjs/x402/fetchWithPayment.js +4 -4
  12. package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
  13. package/dist/cjs/x402/schemas.js +29 -1
  14. package/dist/cjs/x402/schemas.js.map +1 -1
  15. package/dist/cjs/x402/types.js.map +1 -1
  16. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js +9 -5
  17. package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
  18. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js +4 -2
  19. package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -1
  20. package/dist/esm/version.js +1 -1
  21. package/dist/esm/version.js.map +1 -1
  22. package/dist/esm/x402/common.js +60 -4
  23. package/dist/esm/x402/common.js.map +1 -1
  24. package/dist/esm/x402/facilitator.js +12 -4
  25. package/dist/esm/x402/facilitator.js.map +1 -1
  26. package/dist/esm/x402/fetchWithPayment.js +4 -4
  27. package/dist/esm/x402/fetchWithPayment.js.map +1 -1
  28. package/dist/esm/x402/schemas.js +29 -1
  29. package/dist/esm/x402/schemas.js.map +1 -1
  30. package/dist/esm/x402/types.js.map +1 -1
  31. package/dist/scripts/bridge-widget.js +84 -84
  32. package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts.map +1 -1
  33. package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts.map +1 -1
  34. package/dist/types/version.d.ts +1 -1
  35. package/dist/types/version.d.ts.map +1 -1
  36. package/dist/types/x402/common.d.ts.map +1 -1
  37. package/dist/types/x402/facilitator.d.ts +7 -3
  38. package/dist/types/x402/facilitator.d.ts.map +1 -1
  39. package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
  40. package/dist/types/x402/schemas.d.ts +248 -0
  41. package/dist/types/x402/schemas.d.ts.map +1 -1
  42. package/dist/types/x402/types.d.ts +6 -4
  43. package/dist/types/x402/types.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +9 -5
  46. package/src/react/web/ui/Bridge/swap-widget/use-tokens.ts +5 -2
  47. package/src/version.ts +1 -1
  48. package/src/x402/common.ts +87 -8
  49. package/src/x402/facilitator.ts +26 -7
  50. package/src/x402/fetchWithPayment.ts +8 -4
  51. package/src/x402/schemas.ts +39 -0
  52. package/src/x402/types.ts +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"select-token-ui.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAuBtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASnE;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAChD,CAAC;AASF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,2CAqEpD"}
1
+ {"version":3,"file":"select-token-ui.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAwBtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASnE;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,gBAAgB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAChD,CAAC;AASF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,2CAwEpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-tokens.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/use-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,kEAwBA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAcF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;gBAhBe;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB;YACO,YAAY,EAAE;UAoDzB"}
1
+ {"version":3,"file":"use-tokens.d.ts","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/swap-widget/use-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAItE,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,kEA0BA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAcF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;gBAhBe;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB;YACO,YAAY,EAAE;UAqDzB"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.108.4";
1
+ export declare const version = "5.108.5-nightly-ce9220ea00e5a58bf3f6997733b4b69df981cba8-20250930000345";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,4EAA4E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/x402/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQ1D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAE5B,MAAM,YAAY,CAAC;AAEpB,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,GAAG,CAAC;IACZ,mBAAmB,EAAE,4BAA4B,EAAE,CAAC;IACpD,2BAA2B,EAAE,4BAA4B,CAAC;IAC1D,cAAc,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,4BAA4B,GAAG,qBAAqB,CAAC,CAoJ/D;AA+DD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;CAC/D,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAiC9C"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/x402/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAS1D,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAE5B,MAAM,YAAY,CAAC;AAEpB,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,GAAG,CAAC;IACZ,mBAAmB,EAAE,4BAA4B,EAAE,CAAC;IACpD,2BAA2B,EAAE,4BAA4B,CAAC;IAC1D,cAAc,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,4BAA4B,GAAG,qBAAqB,CAAC,CAoJ/D;AAkFD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;CAC/D,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAiC9C"}
@@ -1,9 +1,10 @@
1
- import type { SupportedPaymentKindsResponse, VerifyResponse } from "x402/types";
1
+ import type { VerifyResponse } from "x402/types";
2
2
  import type { ThirdwebClient } from "../client/client.js";
3
- import type { FacilitatorSettleResponse, RequestedPaymentPayload, RequestedPaymentRequirements } from "./schemas.js";
3
+ import type { FacilitatorSettleResponse, FacilitatorSupportedResponse, RequestedPaymentPayload, RequestedPaymentRequirements } from "./schemas.js";
4
4
  export type ThirdwebX402FacilitatorConfig = {
5
5
  client: ThirdwebClient;
6
6
  serverWalletAddress: string;
7
+ waitUtil?: "simulated" | "submitted" | "confirmed";
7
8
  vaultAccessToken?: string;
8
9
  baseUrl?: string;
9
10
  };
@@ -22,7 +23,10 @@ export type ThirdwebX402Facilitator = {
22
23
  }>;
23
24
  verify: (payload: RequestedPaymentPayload, paymentRequirements: RequestedPaymentRequirements) => Promise<VerifyResponse>;
24
25
  settle: (payload: RequestedPaymentPayload, paymentRequirements: RequestedPaymentRequirements) => Promise<FacilitatorSettleResponse>;
25
- supported: () => Promise<SupportedPaymentKindsResponse>;
26
+ supported: (filters?: {
27
+ chainId: number;
28
+ tokenAddress?: string;
29
+ }) => Promise<FacilitatorSupportedResponse>;
26
30
  };
27
31
  /**
28
32
  * Creates a facilitator for the x402 payment protocol.
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,OAAO,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,EAAE,CACN,OAAO,EAAE,uBAAuB,EAChC,mBAAmB,EAAE,4BAA4B,KAC9C,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,MAAM,EAAE,CACN,OAAO,EAAE,uBAAuB,EAChC,mBAAmB,EAAE,4BAA4B,KAC9C,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,OAAO,CAAC,6BAA6B,CAAC,CAAC;CACzD,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,6BAA6B,GACpC,uBAAuB,CA0IzB"}
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,KAAK,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,GAAG,MAAM,MAAM,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,OAAO,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,EAAE,CACN,OAAO,EAAE,uBAAuB,EAChC,mBAAmB,EAAE,4BAA4B,KAC9C,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,MAAM,EAAE,CACN,OAAO,EAAE,uBAAuB,EAChC,mBAAmB,EAAE,4BAA4B,KAC9C,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,KAAK,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAC7C,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,6BAA6B,GACpC,uBAAuB,CAwJzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWithPayment.d.ts","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,EAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAA4B,IAExB,OAAO,WAAW,EAAE,OAAO,WAAW,uBA0ErD"}
1
+ {"version":3,"file":"fetchWithPayment.d.ts","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,EAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAA4B,IAExB,OAAO,WAAW,EAAE,OAAO,WAAW,uBAiFrD"}
@@ -160,6 +160,254 @@ declare const FacilitatorSettleResponseSchema: z.ZodObject<{
160
160
  payer?: string | undefined;
161
161
  }>;
162
162
  export type FacilitatorSettleResponse = z.infer<typeof FacilitatorSettleResponseSchema>;
163
+ export declare const SupportedSignatureTypeSchema: z.ZodEnum<["TransferWithAuthorization", "Permit"]>;
164
+ export declare const FacilitatorSupportedAssetSchema: z.ZodObject<{
165
+ address: z.ZodString;
166
+ decimals: z.ZodNumber;
167
+ eip712: z.ZodObject<{
168
+ name: z.ZodString;
169
+ version: z.ZodString;
170
+ primaryType: z.ZodEnum<["TransferWithAuthorization", "Permit"]>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ name: string;
173
+ primaryType: "TransferWithAuthorization" | "Permit";
174
+ version: string;
175
+ }, {
176
+ name: string;
177
+ primaryType: "TransferWithAuthorization" | "Permit";
178
+ version: string;
179
+ }>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ address: string;
182
+ eip712: {
183
+ name: string;
184
+ primaryType: "TransferWithAuthorization" | "Permit";
185
+ version: string;
186
+ };
187
+ decimals: number;
188
+ }, {
189
+ address: string;
190
+ eip712: {
191
+ name: string;
192
+ primaryType: "TransferWithAuthorization" | "Permit";
193
+ version: string;
194
+ };
195
+ decimals: number;
196
+ }>;
197
+ declare const FacilitatorSupportedResponseSchema: z.ZodObject<{} & {
198
+ kinds: z.ZodArray<z.ZodObject<{
199
+ x402Version: z.ZodLiteral<1>;
200
+ scheme: z.ZodLiteral<"exact">;
201
+ network: z.ZodUnion<[z.ZodLiteral<"base-sepolia">, z.ZodLiteral<"base">, z.ZodLiteral<"avalanche-fuji">, z.ZodLiteral<"avalanche">, z.ZodLiteral<"iotex">, z.ZodLiteral<"solana-devnet">, z.ZodLiteral<"solana">, z.ZodLiteral<"sei">, z.ZodLiteral<"sei-testnet">, z.ZodEffects<z.ZodString, string, string>]>;
202
+ extra: z.ZodOptional<z.ZodObject<{
203
+ defaultAsset: z.ZodOptional<z.ZodObject<{
204
+ address: z.ZodString;
205
+ decimals: z.ZodNumber;
206
+ eip712: z.ZodObject<{
207
+ name: z.ZodString;
208
+ version: z.ZodString;
209
+ primaryType: z.ZodEnum<["TransferWithAuthorization", "Permit"]>;
210
+ }, "strip", z.ZodTypeAny, {
211
+ name: string;
212
+ primaryType: "TransferWithAuthorization" | "Permit";
213
+ version: string;
214
+ }, {
215
+ name: string;
216
+ primaryType: "TransferWithAuthorization" | "Permit";
217
+ version: string;
218
+ }>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ address: string;
221
+ eip712: {
222
+ name: string;
223
+ primaryType: "TransferWithAuthorization" | "Permit";
224
+ version: string;
225
+ };
226
+ decimals: number;
227
+ }, {
228
+ address: string;
229
+ eip712: {
230
+ name: string;
231
+ primaryType: "TransferWithAuthorization" | "Permit";
232
+ version: string;
233
+ };
234
+ decimals: number;
235
+ }>>;
236
+ supportedAssets: z.ZodOptional<z.ZodArray<z.ZodObject<{
237
+ address: z.ZodString;
238
+ decimals: z.ZodNumber;
239
+ eip712: z.ZodObject<{
240
+ name: z.ZodString;
241
+ version: z.ZodString;
242
+ primaryType: z.ZodEnum<["TransferWithAuthorization", "Permit"]>;
243
+ }, "strip", z.ZodTypeAny, {
244
+ name: string;
245
+ primaryType: "TransferWithAuthorization" | "Permit";
246
+ version: string;
247
+ }, {
248
+ name: string;
249
+ primaryType: "TransferWithAuthorization" | "Permit";
250
+ version: string;
251
+ }>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ address: string;
254
+ eip712: {
255
+ name: string;
256
+ primaryType: "TransferWithAuthorization" | "Permit";
257
+ version: string;
258
+ };
259
+ decimals: number;
260
+ }, {
261
+ address: string;
262
+ eip712: {
263
+ name: string;
264
+ primaryType: "TransferWithAuthorization" | "Permit";
265
+ version: string;
266
+ };
267
+ decimals: number;
268
+ }>, "many">>;
269
+ }, "strip", z.ZodTypeAny, {
270
+ defaultAsset?: {
271
+ address: string;
272
+ eip712: {
273
+ name: string;
274
+ primaryType: "TransferWithAuthorization" | "Permit";
275
+ version: string;
276
+ };
277
+ decimals: number;
278
+ } | undefined;
279
+ supportedAssets?: {
280
+ address: string;
281
+ eip712: {
282
+ name: string;
283
+ primaryType: "TransferWithAuthorization" | "Permit";
284
+ version: string;
285
+ };
286
+ decimals: number;
287
+ }[] | undefined;
288
+ }, {
289
+ defaultAsset?: {
290
+ address: string;
291
+ eip712: {
292
+ name: string;
293
+ primaryType: "TransferWithAuthorization" | "Permit";
294
+ version: string;
295
+ };
296
+ decimals: number;
297
+ } | undefined;
298
+ supportedAssets?: {
299
+ address: string;
300
+ eip712: {
301
+ name: string;
302
+ primaryType: "TransferWithAuthorization" | "Permit";
303
+ version: string;
304
+ };
305
+ decimals: number;
306
+ }[] | undefined;
307
+ }>>;
308
+ }, "strip", z.ZodTypeAny, {
309
+ scheme: "exact";
310
+ network: string;
311
+ x402Version: 1;
312
+ extra?: {
313
+ defaultAsset?: {
314
+ address: string;
315
+ eip712: {
316
+ name: string;
317
+ primaryType: "TransferWithAuthorization" | "Permit";
318
+ version: string;
319
+ };
320
+ decimals: number;
321
+ } | undefined;
322
+ supportedAssets?: {
323
+ address: string;
324
+ eip712: {
325
+ name: string;
326
+ primaryType: "TransferWithAuthorization" | "Permit";
327
+ version: string;
328
+ };
329
+ decimals: number;
330
+ }[] | undefined;
331
+ } | undefined;
332
+ }, {
333
+ scheme: "exact";
334
+ network: string;
335
+ x402Version: 1;
336
+ extra?: {
337
+ defaultAsset?: {
338
+ address: string;
339
+ eip712: {
340
+ name: string;
341
+ primaryType: "TransferWithAuthorization" | "Permit";
342
+ version: string;
343
+ };
344
+ decimals: number;
345
+ } | undefined;
346
+ supportedAssets?: {
347
+ address: string;
348
+ eip712: {
349
+ name: string;
350
+ primaryType: "TransferWithAuthorization" | "Permit";
351
+ version: string;
352
+ };
353
+ decimals: number;
354
+ }[] | undefined;
355
+ } | undefined;
356
+ }>, "many">;
357
+ }, "strip", z.ZodTypeAny, {
358
+ kinds: {
359
+ scheme: "exact";
360
+ network: string;
361
+ x402Version: 1;
362
+ extra?: {
363
+ defaultAsset?: {
364
+ address: string;
365
+ eip712: {
366
+ name: string;
367
+ primaryType: "TransferWithAuthorization" | "Permit";
368
+ version: string;
369
+ };
370
+ decimals: number;
371
+ } | undefined;
372
+ supportedAssets?: {
373
+ address: string;
374
+ eip712: {
375
+ name: string;
376
+ primaryType: "TransferWithAuthorization" | "Permit";
377
+ version: string;
378
+ };
379
+ decimals: number;
380
+ }[] | undefined;
381
+ } | undefined;
382
+ }[];
383
+ }, {
384
+ kinds: {
385
+ scheme: "exact";
386
+ network: string;
387
+ x402Version: 1;
388
+ extra?: {
389
+ defaultAsset?: {
390
+ address: string;
391
+ eip712: {
392
+ name: string;
393
+ primaryType: "TransferWithAuthorization" | "Permit";
394
+ version: string;
395
+ };
396
+ decimals: number;
397
+ } | undefined;
398
+ supportedAssets?: {
399
+ address: string;
400
+ eip712: {
401
+ name: string;
402
+ primaryType: "TransferWithAuthorization" | "Permit";
403
+ version: string;
404
+ };
405
+ decimals: number;
406
+ }[] | undefined;
407
+ } | undefined;
408
+ }[];
409
+ }>;
410
+ export type FacilitatorSupportedResponse = z.infer<typeof FacilitatorSupportedResponseSchema>;
163
411
  export declare function networkToChainId(network: string | Chain): number;
164
412
  export {};
165
413
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,QAAA,MAAM,wBAAwB,wSAa5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,uBAAuB,EACvB,SAAS,CACV,GAAG;IACF,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3C,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AAEF,QAAA,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAqBhE"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAMrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,QAAA,MAAM,wBAAwB,wSAa5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,uBAAuB,EACvB,SAAS,CACV,GAAG;IACF,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3C,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AAEF,QAAA,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,oDAGvC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1C,CAAC;AAEH,QAAA,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBqB,CAAC;AAE9D,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAqBhE"}
@@ -1,9 +1,10 @@
1
1
  import type { Money, PaymentMiddlewareConfig } from "x402/types";
2
+ import type z from "zod";
2
3
  import type { Chain } from "../chains/types.js";
3
4
  import type { Address } from "../utils/address.js";
4
5
  import type { Prettify } from "../utils/type-utils.js";
5
6
  import type { ThirdwebX402Facilitator } from "./facilitator.js";
6
- import type { FacilitatorNetwork, FacilitatorSettleResponse, RequestedPaymentPayload, RequestedPaymentRequirements } from "./schemas.js";
7
+ import type { FacilitatorNetwork, FacilitatorSettleResponse, FacilitatorSupportedAssetSchema, RequestedPaymentPayload, RequestedPaymentRequirements, SupportedSignatureTypeSchema } from "./schemas.js";
7
8
  export declare const x402Version = 1;
8
9
  /**
9
10
  * Configuration object for verifying or processing X402 payments.
@@ -69,17 +70,18 @@ export type VerifyPaymentResult = Prettify<{
69
70
  decodedPayment: RequestedPaymentPayload;
70
71
  selectedPaymentRequirements: RequestedPaymentRequirements;
71
72
  } | PaymentRequiredResult>;
72
- export type SupportedSignatureType = "TransferWithAuthorization" | "Permit";
73
+ export type SupportedSignatureType = z.infer<typeof SupportedSignatureTypeSchema>;
73
74
  export type ERC20TokenAmount = {
74
75
  amount: string;
75
76
  asset: {
76
77
  address: `0x${string}`;
77
- decimals: number;
78
- eip712: {
78
+ decimals?: number;
79
+ eip712?: {
79
80
  name: string;
80
81
  version: string;
81
82
  primaryType: SupportedSignatureType;
82
83
  };
83
84
  };
84
85
  };
86
+ export type DefaultAsset = z.infer<typeof FacilitatorSupportedAssetSchema>;
85
87
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACvC,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,kBAAkB,GAAG,KAAK,CAAC;IACpC,4GAA4G;IAC5G,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC;IAChC,0EAA0E;IAC1E,WAAW,EAAE,uBAAuB,CAAC;IACrC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,wFAAwF;IACxF,MAAM,EAAE,GAAG,CAAC;IACZ,8DAA8D;IAC9D,YAAY,EAAE;QACZ,gCAAgC;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,mCAAmC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,2DAA2D;QAC3D,OAAO,EAAE,4BAA4B,EAAE,CAAC;QACxC,iEAAiE;QACjE,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACtC;IACE,oDAAoD;IACpD,MAAM,EAAE,GAAG,CAAC;IACZ,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,uDAAuD;IACvD,cAAc,EAAE,yBAAyB,CAAC;CAC3C,GACD,qBAAqB,CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACtC;IACE,mDAAmD;IACnD,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,uBAAuB,CAAC;IACxC,2BAA2B,EAAE,4BAA4B,CAAC;CAC3D,GACD,qBAAqB,CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,2BAA2B,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,sBAAsB,CAAC;SACrC,CAAC;KACH,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -399,7 +399,7 @@
399
399
  }
400
400
  },
401
401
  "typings": "./dist/types/exports/thirdweb.d.ts",
402
- "version": "5.108.4",
402
+ "version": "5.108.5-nightly-ce9220ea00e5a58bf3f6997733b4b69df981cba8-20250930000345",
403
403
  "scripts": {
404
404
  "bench": "vitest -c ./test/vitest.config.ts bench",
405
405
  "bench:compare": "bun run ./benchmarks/run.ts",
@@ -20,6 +20,7 @@ import { Spacer } from "../../components/Spacer.js";
20
20
  import { Spinner } from "../../components/Spinner.js";
21
21
  import { Text } from "../../components/text.js";
22
22
  import { StyledDiv } from "../../design-system/elements.js";
23
+ import { useDebouncedValue } from "../../hooks/useDebouncedValue.js";
23
24
  import { useIsMobile } from "../../hooks/useisMobile.js";
24
25
  import { SearchInput } from "./SearchInput.js";
25
26
  import { SelectChainButton } from "./SelectChainButton.js";
@@ -57,6 +58,7 @@ function getDefaultSelectedChain(
57
58
  export function SelectToken(props: SelectTokenUIProps) {
58
59
  const chainQuery = useBridgeChains(props.client);
59
60
  const [search, setSearch] = useState("");
61
+ const debouncedSearch = useDebouncedValue(search, 500);
60
62
  const [limit, setLimit] = useState(1000);
61
63
 
62
64
  const [_selectedChain, setSelectedChain] = useState<BridgeChain | undefined>(
@@ -76,7 +78,7 @@ export function SelectToken(props: SelectTokenUIProps) {
76
78
  const tokensQuery = useTokens({
77
79
  client: props.client,
78
80
  chainId: selectedChain?.chainId,
79
- search,
81
+ search: debouncedSearch,
80
82
  limit,
81
83
  offset: 0,
82
84
  });
@@ -93,12 +95,14 @@ export function SelectToken(props: SelectTokenUIProps) {
93
95
  const filteredOwnedTokens = useMemo(() => {
94
96
  return ownedTokensQuery.data?.tokens?.filter((token) => {
95
97
  return (
96
- token.symbol.toLowerCase().includes(search.toLowerCase()) ||
97
- token.name.toLowerCase().includes(search.toLowerCase()) ||
98
- token.token_address.toLowerCase().includes(search.toLowerCase())
98
+ token.symbol.toLowerCase().includes(debouncedSearch.toLowerCase()) ||
99
+ token.name.toLowerCase().includes(debouncedSearch.toLowerCase()) ||
100
+ token.token_address
101
+ .toLowerCase()
102
+ .includes(debouncedSearch.toLowerCase())
99
103
  );
100
104
  });
101
- }, [ownedTokensQuery.data?.tokens, search]);
105
+ }, [ownedTokensQuery.data?.tokens, debouncedSearch]);
102
106
 
103
107
  const isFetching = tokensQuery.isFetching || ownedTokensQuery.isFetching;
104
108
 
@@ -15,6 +15,7 @@ export function useTokens(options: {
15
15
  return useQuery<Token[]>({
16
16
  queryKey: ["tokens", options],
17
17
  enabled: !!options.chainId,
18
+ retry: false,
18
19
  queryFn: () => {
19
20
  if (!options.chainId) {
20
21
  throw new Error("Chain ID is required");
@@ -30,8 +31,9 @@ export function useTokens(options: {
30
31
  offset: options.offset,
31
32
  limit: options.limit,
32
33
  includePrices: false,
33
- name: !options.search || isSearchAddress ? undefined : options.search,
34
- tokenAddress: isSearchAddress ? options.search : undefined,
34
+ query: options.search && !isSearchAddress ? options.search : undefined,
35
+ tokenAddress:
36
+ options.search && isSearchAddress ? options.search : undefined,
35
37
  });
36
38
  },
37
39
  });
@@ -115,6 +117,7 @@ export function useTokenBalances(options: {
115
117
  return json.result;
116
118
  },
117
119
  refetchOnMount: false,
120
+ retry: false,
118
121
  refetchOnWindowFocus: false,
119
122
  });
120
123
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.108.4";
1
+ export const version = "5.108.5-nightly-ce9220ea00e5a58bf3f6997733b4b69df981cba8-20250930000345";
@@ -8,6 +8,7 @@ import { getContract } from "../contract/contract.js";
8
8
  import { isPermitSupported } from "../extensions/erc20/__generated__/IERC20Permit/write/permit.js";
9
9
  import { isTransferWithAuthorizationSupported } from "../extensions/erc20/__generated__/USDC/write/transferWithAuthorization.js";
10
10
  import { getAddress } from "../utils/address.js";
11
+ import { toUnits } from "../utils/units.js";
11
12
  import { decodePayment } from "./encode.js";
12
13
  import type { ThirdwebX402Facilitator } from "./facilitator.js";
13
14
  import {
@@ -16,6 +17,7 @@ import {
16
17
  type RequestedPaymentRequirements,
17
18
  } from "./schemas.js";
18
19
  import {
20
+ type DefaultAsset,
19
21
  type ERC20TokenAmount,
20
22
  type PaymentArgs,
21
23
  type PaymentRequiredResult,
@@ -199,12 +201,11 @@ async function processPriceToAtomicAmount(
199
201
  chainId: number,
200
202
  facilitator: ThirdwebX402Facilitator,
201
203
  ): Promise<
202
- | { maxAmountRequired: string; asset: ERC20TokenAmount["asset"] }
203
- | { error: string }
204
+ { maxAmountRequired: string; asset: DefaultAsset } | { error: string }
204
205
  > {
205
206
  // Handle USDC amount (string) or token amount (ERC20TokenAmount)
206
207
  let maxAmountRequired: string;
207
- let asset: ERC20TokenAmount["asset"];
208
+ let asset: DefaultAsset;
208
209
 
209
210
  if (typeof price === "string" || typeof price === "number") {
210
211
  // USDC amount in dollars
@@ -222,11 +223,32 @@ async function processPriceToAtomicAmount(
222
223
  };
223
224
  }
224
225
  asset = defaultAsset;
225
- maxAmountRequired = (parsedUsdAmount * 10 ** asset.decimals).toString();
226
+ maxAmountRequired = toUnits(
227
+ parsedUsdAmount.toString(),
228
+ defaultAsset.decimals,
229
+ ).toString();
226
230
  } else {
227
231
  // Token amount in atomic units
228
232
  maxAmountRequired = price.amount;
229
- asset = price.asset;
233
+ const tokenExtras = await getOrDetectTokenExtras({
234
+ facilitator,
235
+ partialAsset: price.asset,
236
+ chainId,
237
+ });
238
+ if (!tokenExtras) {
239
+ return {
240
+ error: `Unable to find token information for ${price.asset.address} on chain ${chainId}. Please specify the asset decimals and eip712 information in the asset options.`,
241
+ };
242
+ }
243
+ asset = {
244
+ address: price.asset.address,
245
+ decimals: tokenExtras.decimals,
246
+ eip712: {
247
+ name: tokenExtras.name,
248
+ version: tokenExtras.version,
249
+ primaryType: tokenExtras.primaryType,
250
+ },
251
+ };
230
252
  }
231
253
 
232
254
  return {
@@ -238,13 +260,12 @@ async function processPriceToAtomicAmount(
238
260
  async function getDefaultAsset(
239
261
  chainId: number,
240
262
  facilitator: ThirdwebX402Facilitator,
241
- ): Promise<ERC20TokenAmount["asset"] | undefined> {
263
+ ): Promise<DefaultAsset | undefined> {
242
264
  const supportedAssets = await facilitator.supported();
243
265
  const matchingAsset = supportedAssets.kinds.find(
244
266
  (supported) => supported.network === `eip155:${chainId}`,
245
267
  );
246
- const assetConfig = matchingAsset?.extra
247
- ?.defaultAsset as ERC20TokenAmount["asset"];
268
+ const assetConfig = matchingAsset?.extra?.defaultAsset as DefaultAsset;
248
269
  return assetConfig;
249
270
  }
250
271
 
@@ -287,3 +308,61 @@ export async function getSupportedSignatureType(args: {
287
308
  }
288
309
  return undefined;
289
310
  }
311
+
312
+ async function getOrDetectTokenExtras(args: {
313
+ facilitator: ThirdwebX402Facilitator;
314
+ partialAsset: ERC20TokenAmount["asset"];
315
+ chainId: number;
316
+ }): Promise<
317
+ | {
318
+ name: string;
319
+ version: string;
320
+ decimals: number;
321
+ primaryType: SupportedSignatureType;
322
+ }
323
+ | undefined
324
+ > {
325
+ const { facilitator, partialAsset, chainId } = args;
326
+ if (
327
+ partialAsset.eip712?.name &&
328
+ partialAsset.eip712?.version &&
329
+ partialAsset.decimals !== undefined
330
+ ) {
331
+ return {
332
+ name: partialAsset.eip712.name,
333
+ version: partialAsset.eip712.version,
334
+ decimals: partialAsset.decimals,
335
+ primaryType: partialAsset.eip712.primaryType,
336
+ };
337
+ }
338
+ // read from facilitator
339
+ const response = await facilitator
340
+ .supported({
341
+ chainId,
342
+ tokenAddress: partialAsset.address,
343
+ })
344
+ .catch(() => {
345
+ return {
346
+ kinds: [],
347
+ };
348
+ });
349
+
350
+ const exactScheme = response.kinds?.find((kind) => kind.scheme === "exact");
351
+ if (!exactScheme) {
352
+ return undefined;
353
+ }
354
+ const supportedAsset = exactScheme.extra?.supportedAssets?.find(
355
+ (asset) =>
356
+ asset.address.toLowerCase() === partialAsset.address.toLowerCase(),
357
+ );
358
+ if (!supportedAsset) {
359
+ return undefined;
360
+ }
361
+
362
+ return {
363
+ name: supportedAsset.eip712.name,
364
+ version: supportedAsset.eip712.version,
365
+ decimals: supportedAsset.decimals,
366
+ primaryType: supportedAsset.eip712.primaryType as SupportedSignatureType,
367
+ };
368
+ }