thirdweb 5.105.20 → 5.105.22

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 (160) hide show
  1. package/dist/cjs/extensions/erc1155/read/getOwnedNFTs.js +1 -0
  2. package/dist/cjs/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
  3. package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js +1 -0
  4. package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
  5. package/dist/cjs/insight/get-nfts.js +3 -3
  6. package/dist/cjs/insight/get-nfts.js.map +1 -1
  7. package/dist/cjs/insight/get-tokens.js +3 -2
  8. package/dist/cjs/insight/get-tokens.js.map +1 -1
  9. package/dist/cjs/react/core/hooks/wallets/useConnect.js +10 -1
  10. package/dist/cjs/react/core/hooks/wallets/useConnect.js.map +1 -1
  11. package/dist/cjs/transaction/actions/estimate-gas.js +3 -24
  12. package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
  13. package/dist/cjs/version.js +1 -1
  14. package/dist/cjs/wallets/coinbase/coinbase-web.js +56 -0
  15. package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -1
  16. package/dist/cjs/wallets/create-wallet.js +62 -13
  17. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  18. package/dist/cjs/wallets/eip5792/get-calls-status.js +40 -63
  19. package/dist/cjs/wallets/eip5792/get-calls-status.js.map +1 -1
  20. package/dist/cjs/wallets/eip5792/get-capabilities.js +14 -49
  21. package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
  22. package/dist/cjs/wallets/eip5792/send-calls.js +34 -48
  23. package/dist/cjs/wallets/eip5792/send-calls.js.map +1 -1
  24. package/dist/cjs/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.js +1 -5
  25. package/dist/cjs/wallets/in-app/core/eip5792/in-app-wallet-calls.js.map +1 -0
  26. package/dist/cjs/wallets/in-app/core/eip7702/minimal-account.js +650 -5
  27. package/dist/cjs/wallets/in-app/core/eip7702/minimal-account.js.map +1 -1
  28. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +32 -1
  29. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  30. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +3 -3
  31. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  32. package/dist/cjs/wallets/in-app/web/in-app.js +18 -0
  33. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  34. package/dist/cjs/wallets/injected/index.js +55 -0
  35. package/dist/cjs/wallets/injected/index.js.map +1 -1
  36. package/dist/cjs/wallets/smart/index.js +63 -2
  37. package/dist/cjs/wallets/smart/index.js.map +1 -1
  38. package/dist/cjs/wallets/smart/smart-wallet.js +1 -1
  39. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  40. package/dist/cjs/wallets/wallet-connect/qr-overlay.js +231 -0
  41. package/dist/cjs/wallets/wallet-connect/qr-overlay.js.map +1 -0
  42. package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js +1 -0
  43. package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
  44. package/dist/esm/extensions/erc721/read/getOwnedNFTs.js +1 -0
  45. package/dist/esm/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
  46. package/dist/esm/insight/get-nfts.js +3 -3
  47. package/dist/esm/insight/get-nfts.js.map +1 -1
  48. package/dist/esm/insight/get-tokens.js +3 -2
  49. package/dist/esm/insight/get-tokens.js.map +1 -1
  50. package/dist/esm/react/core/hooks/wallets/useConnect.js +10 -1
  51. package/dist/esm/react/core/hooks/wallets/useConnect.js.map +1 -1
  52. package/dist/esm/transaction/actions/estimate-gas.js +3 -24
  53. package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
  54. package/dist/esm/version.js +1 -1
  55. package/dist/esm/wallets/coinbase/coinbase-web.js +56 -0
  56. package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -1
  57. package/dist/esm/wallets/create-wallet.js +62 -13
  58. package/dist/esm/wallets/create-wallet.js.map +1 -1
  59. package/dist/esm/wallets/eip5792/get-calls-status.js +39 -63
  60. package/dist/esm/wallets/eip5792/get-calls-status.js.map +1 -1
  61. package/dist/esm/wallets/eip5792/get-capabilities.js +13 -49
  62. package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
  63. package/dist/esm/wallets/eip5792/send-calls.js +33 -48
  64. package/dist/esm/wallets/eip5792/send-calls.js.map +1 -1
  65. package/dist/esm/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.js +1 -5
  66. package/dist/esm/wallets/in-app/core/eip5792/in-app-wallet-calls.js.map +1 -0
  67. package/dist/esm/wallets/in-app/core/eip7702/minimal-account.js +650 -5
  68. package/dist/esm/wallets/in-app/core/eip7702/minimal-account.js.map +1 -1
  69. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +32 -1
  70. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  71. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +3 -3
  72. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  73. package/dist/esm/wallets/in-app/web/in-app.js +18 -0
  74. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  75. package/dist/esm/wallets/injected/index.js +56 -1
  76. package/dist/esm/wallets/injected/index.js.map +1 -1
  77. package/dist/esm/wallets/smart/index.js +63 -2
  78. package/dist/esm/wallets/smart/index.js.map +1 -1
  79. package/dist/esm/wallets/smart/smart-wallet.js +1 -1
  80. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  81. package/dist/esm/wallets/wallet-connect/qr-overlay.js +228 -0
  82. package/dist/esm/wallets/wallet-connect/qr-overlay.js.map +1 -0
  83. package/dist/types/bridge/Webhook.d.ts +2 -2
  84. package/dist/types/insight/get-nfts.d.ts +1 -0
  85. package/dist/types/insight/get-nfts.d.ts.map +1 -1
  86. package/dist/types/insight/get-tokens.d.ts +1 -0
  87. package/dist/types/insight/get-tokens.d.ts.map +1 -1
  88. package/dist/types/react/core/hooks/wallets/useConnect.d.ts +1 -0
  89. package/dist/types/react/core/hooks/wallets/useConnect.d.ts.map +1 -1
  90. package/dist/types/react/core/hooks/wallets/useWaitForCallsReceipt.d.ts +1 -1
  91. package/dist/types/react/core/utils/storage.d.ts +1 -1
  92. package/dist/types/react/web/utils/storage.d.ts +1 -1
  93. package/dist/types/transaction/actions/estimate-gas.d.ts.map +1 -1
  94. package/dist/types/version.d.ts +1 -1
  95. package/dist/types/wallets/coinbase/coinbase-web.d.ts.map +1 -1
  96. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  97. package/dist/types/wallets/eip5792/get-calls-status.d.ts +2 -1
  98. package/dist/types/wallets/eip5792/get-calls-status.d.ts.map +1 -1
  99. package/dist/types/wallets/eip5792/get-capabilities.d.ts +1 -0
  100. package/dist/types/wallets/eip5792/get-capabilities.d.ts.map +1 -1
  101. package/dist/types/wallets/eip5792/send-calls.d.ts +6 -1
  102. package/dist/types/wallets/eip5792/send-calls.d.ts.map +1 -1
  103. package/dist/types/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.d.ts +3 -2
  104. package/dist/types/wallets/in-app/core/eip5792/in-app-wallet-calls.d.ts.map +1 -0
  105. package/dist/types/wallets/in-app/core/eip7702/minimal-account.d.ts.map +1 -1
  106. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
  107. package/dist/types/wallets/in-app/web/in-app.d.ts +18 -0
  108. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
  109. package/dist/types/wallets/injected/index.d.ts.map +1 -1
  110. package/dist/types/wallets/interfaces/wallet.d.ts +22 -0
  111. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  112. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  113. package/dist/types/wallets/wallet-connect/qr-overlay.d.ts +58 -0
  114. package/dist/types/wallets/wallet-connect/qr-overlay.d.ts.map +1 -0
  115. package/dist/types/wallets/wallet-connect/types.d.ts +13 -0
  116. package/dist/types/wallets/wallet-connect/types.d.ts.map +1 -1
  117. package/package.json +4 -2
  118. package/src/extensions/erc1155/read/getOwnedNFTs.ts +1 -0
  119. package/src/extensions/erc721/read/getOwnedNFTs.ts +1 -0
  120. package/src/insight/get-nfts.ts +4 -3
  121. package/src/insight/get-tokens.ts +4 -2
  122. package/src/react/core/hooks/wallets/useConnect.ts +11 -1
  123. package/src/transaction/actions/estimate-gas.ts +14 -42
  124. package/src/version.ts +1 -1
  125. package/src/wallets/coinbase/coinbase-web.ts +66 -0
  126. package/src/wallets/create-wallet.ts +85 -24
  127. package/src/wallets/eip5792/get-calls-status.test.ts +156 -146
  128. package/src/wallets/eip5792/get-calls-status.ts +44 -73
  129. package/src/wallets/eip5792/get-capabilities.test.ts +216 -205
  130. package/src/wallets/eip5792/get-capabilities.ts +23 -64
  131. package/src/wallets/eip5792/send-calls.test.ts +183 -189
  132. package/src/wallets/eip5792/send-calls.ts +53 -71
  133. package/src/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.ts +4 -8
  134. package/src/wallets/in-app/core/eip7702/minimal-account.ts +666 -5
  135. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +36 -1
  136. package/src/wallets/in-app/core/wallet/in-app-core.ts +4 -4
  137. package/src/wallets/in-app/web/in-app.ts +18 -0
  138. package/src/wallets/injected/index.ts +63 -0
  139. package/src/wallets/interfaces/wallet.ts +31 -0
  140. package/src/wallets/smart/index.ts +71 -3
  141. package/src/wallets/smart/smart-wallet.ts +1 -1
  142. package/src/wallets/wallet-connect/qr-overlay.ts +322 -0
  143. package/src/wallets/wallet-connect/types.ts +13 -0
  144. package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +0 -1
  145. package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +0 -41
  146. package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +0 -1
  147. package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js +0 -30
  148. package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js.map +0 -1
  149. package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +0 -1
  150. package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +0 -38
  151. package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +0 -1
  152. package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js +0 -27
  153. package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js.map +0 -1
  154. package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts.map +0 -1
  155. package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts +0 -20
  156. package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts.map +0 -1
  157. package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts +0 -20
  158. package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts.map +0 -1
  159. package/src/wallets/in-app/core/eip5972/in-app-wallet-capabilities.ts +0 -47
  160. package/src/wallets/smart/lib/smart-wallet-capabilities.ts +0 -32
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCapabilities = getCapabilities;
4
- const address_js_1 = require("../../utils/address.js");
5
- const coinbase_web_js_1 = require("../coinbase/coinbase-web.js");
6
- const index_js_1 = require("../in-app/core/wallet/index.js");
7
- const index_js_2 = require("../injected/index.js");
8
- const controller_js_1 = require("../wallet-connect/controller.js");
4
+ exports.toGetCapabilitiesResult = toGetCapabilitiesResult;
9
5
  /**
10
6
  * Get the capabilities of a wallet based on the [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792) specification.
11
7
  *
@@ -33,52 +29,21 @@ async function getCapabilities({ wallet, chainId, }) {
33
29
  message: `Can't get capabilities, no account connected for wallet: ${wallet.id}`,
34
30
  };
35
31
  }
36
- if (wallet.id === "smart") {
37
- const { smartWalletGetCapabilities } = await Promise.resolve().then(() => require("../smart/lib/smart-wallet-capabilities.js"));
38
- return smartWalletGetCapabilities({ wallet });
32
+ if (account.getCapabilities) {
33
+ return account.getCapabilities({ chainId });
39
34
  }
40
- if ((0, index_js_1.isInAppWallet)(wallet)) {
41
- const { inAppWalletGetCapabilities } = await Promise.resolve().then(() => require("../in-app/core/eip5972/in-app-wallet-capabilities.js"));
42
- return inAppWalletGetCapabilities({ wallet });
43
- }
44
- // TODO: Add Wallet Connect support
45
- if ((0, controller_js_1.isWalletConnect)(wallet)) {
46
- return {
47
- message: "getCapabilities is not yet supported with Wallet Connect",
48
- };
49
- }
50
- let provider;
51
- if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
52
- const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
53
- const config = wallet.getConfig();
54
- provider = (await getCoinbaseWebProvider(config));
55
- }
56
- else {
57
- provider = (0, index_js_2.getInjectedProvider)(wallet.id);
58
- }
59
- try {
60
- const result = await provider.request({
61
- method: "wallet_getCapabilities",
62
- params: [(0, address_js_1.getAddress)(account.address)],
63
- });
64
- const capabilities = {};
65
- for (const [chainId, capabilities_] of Object.entries(result)) {
66
- capabilities[Number(chainId)] = {};
67
- const capabilitiesCopy = {};
68
- for (const [key, value] of Object.entries(capabilities_)) {
69
- capabilitiesCopy[key] = value;
70
- }
71
- capabilities[Number(chainId)] = capabilitiesCopy;
72
- }
73
- return (typeof chainId === "number" ? capabilities[chainId] : capabilities);
74
- }
75
- catch (error) {
76
- if (/unsupport|not support|not available/i.test(error.message)) {
77
- return {
78
- message: `${wallet.id} does not support wallet_getCapabilities, reach out to them directly to request EIP-5792 support.`,
79
- };
35
+ throw new Error(`Failed to get capabilities, wallet ${wallet.id} does not support EIP-5792`);
36
+ }
37
+ function toGetCapabilitiesResult(result, chainId) {
38
+ const capabilities = {};
39
+ for (const [chainId, capabilities_] of Object.entries(result)) {
40
+ capabilities[Number(chainId)] = {};
41
+ const capabilitiesCopy = {};
42
+ for (const [key, value] of Object.entries(capabilities_)) {
43
+ capabilitiesCopy[key] = value;
80
44
  }
81
- throw error;
45
+ capabilities[Number(chainId)] = capabilitiesCopy;
82
46
  }
47
+ return (typeof chainId === "number" ? capabilities[chainId] : capabilities);
83
48
  }
84
49
  //# sourceMappingURL=get-capabilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-capabilities.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-capabilities.ts"],"names":[],"mappings":";;AA2CA,0CAuEC;AAlHD,uDAAoD;AAEpD,iEAGqC;AACrC,6DAA+D;AAC/D,mDAA2D;AAG3D,mEAAkE;AAalE;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,eAAe,CAAuC,EAC1E,MAAM,EACN,OAAO,GACoB;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,4DAA4D,MAAM,CAAC,EAAE,EAAE;SACjF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,0BAA0B,EAAE,GAAG,2CACrC,2CAA2C,EAC5C,CAAC;QACF,OAAO,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAA,wBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,EAAE,0BAA0B,EAAE,GAAG,2CACrC,sDAAsD,EACvD,CAAC;QACF,OAAO,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAA,+BAAe,EAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,0DAA0D;SACpE,CAAC;IACJ,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,IAAA,qCAAmB,EAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,2CACjC,6BAA6B,EAC9B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAmC,CAAC;QACnE,QAAQ,GAAG,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAa,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE,CAAC,IAAA,uBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACtC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAGpB,CAAC;QACF,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,EAAwB,CAAC;YAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzD,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAChC,CAAC;YACD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC;QACnD,CAAC;QACD,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAC1D,CAAC;IACb,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,sCAAsC,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,mGAAmG;aACzH,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get-capabilities.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-capabilities.ts"],"names":[],"mappings":";;AAkCA,0CAkBC;AAED,0DAmBC;AA3DD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,eAAe,CAAuC,EAC1E,MAAM,EACN,OAAO,GACoB;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,4DAA4D,MAAM,CAAC,EAAE,EAAE;SACjF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,EAAE,4BAA4B,CAC5E,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAA0C,EAC1C,OAAgB;IAEhB,MAAM,YAAY,GAAG,EAGpB,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,gBAAgB,GAAG,EAAwB,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACnD,CAAC;IACD,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAC1D,CAAC;AACb,CAAC"}
@@ -1,16 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sendCalls = sendCalls;
4
+ exports.toProviderCallParams = toProviderCallParams;
4
5
  const encode_js_1 = require("../../transaction/actions/encode.js");
5
6
  const address_js_1 = require("../../utils/address.js");
6
7
  const hex_js_1 = require("../../utils/encoding/hex.js");
7
- const json_js_1 = require("../../utils/json.js");
8
8
  const resolve_promised_value_js_1 = require("../../utils/promise/resolve-promised-value.js");
9
- const coinbase_web_js_1 = require("../coinbase/coinbase-web.js");
10
- const index_js_1 = require("../in-app/core/wallet/index.js");
11
- const index_js_2 = require("../injected/index.js");
12
- const index_js_3 = require("../smart/index.js");
13
- const controller_js_1 = require("../wallet-connect/controller.js");
14
9
  /**
15
10
  * Send [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792) calls to a wallet.
16
11
  * This function works with all Thirdweb wallets (in-app and smart) and certain injected wallets that already support EIP-5792.
@@ -73,10 +68,7 @@ const controller_js_1 = require("../wallet-connect/controller.js");
73
68
  * @extension EIP5792
74
69
  */
75
70
  async function sendCalls(options) {
76
- const { wallet, calls, capabilities, version = "2.0.0", chain = wallet.getChain(), } = options;
77
- if (!chain) {
78
- throw new Error(`Cannot send calls, no active chain found for wallet: ${wallet.id}`);
79
- }
71
+ const { wallet, chain } = options;
80
72
  const account = wallet.getAccount();
81
73
  if (!account) {
82
74
  throw new Error(`Cannot send calls, no account connected for wallet: ${wallet.id}`);
@@ -85,13 +77,27 @@ async function sendCalls(options) {
85
77
  if (!firstCall) {
86
78
  throw new Error("No calls to send");
87
79
  }
88
- const client = firstCall.client;
89
- // These conveniently operate the same
90
- if ((0, index_js_3.isSmartWallet)(wallet) || (0, index_js_1.isInAppWallet)(wallet)) {
91
- const { inAppWalletSendCalls } = await Promise.resolve().then(() => require("../in-app/core/eip5972/in-app-wallet-calls.js"));
92
- const id = await inAppWalletSendCalls({ account, calls });
93
- return { chain, client, id, wallet };
80
+ const callChain = firstCall.chain || chain;
81
+ if (wallet.getChain()?.id !== callChain.id) {
82
+ await wallet.switchChain(callChain);
83
+ }
84
+ // check internal implementations
85
+ if (account.sendCalls) {
86
+ const { wallet: _, ...optionsWithoutWallet } = options;
87
+ const result = await account.sendCalls(optionsWithoutWallet);
88
+ return {
89
+ ...result,
90
+ wallet,
91
+ };
92
+ }
93
+ throw new Error(`Cannot send calls, wallet ${wallet.id} does not support EIP-5792`);
94
+ }
95
+ async function toProviderCallParams(options, account) {
96
+ const firstCall = options.calls[0];
97
+ if (!firstCall) {
98
+ throw new Error("No calls to send");
94
99
  }
100
+ const { calls, capabilities, version = "2.0.0", chain = firstCall.chain, } = options;
95
101
  const preparedCalls = await Promise.all(calls.map(async (call) => {
96
102
  const { to, value } = call;
97
103
  if (to === undefined && call.data === undefined) {
@@ -102,12 +108,19 @@ async function sendCalls(options) {
102
108
  (0, encode_js_1.encode)(call),
103
109
  (0, resolve_promised_value_js_1.resolvePromisedValue)(value),
104
110
  ]);
111
+ if (_to) {
112
+ return {
113
+ data: _data,
114
+ to: (0, address_js_1.getAddress)(_to),
115
+ value: typeof _value === "bigint" || typeof _value === "number"
116
+ ? (0, hex_js_1.numberToHex)(_value)
117
+ : undefined,
118
+ };
119
+ }
105
120
  return {
106
121
  data: _data,
107
- to: _to,
108
- value: typeof _value === "bigint" || typeof _value === "number"
109
- ? (0, hex_js_1.numberToHex)(_value)
110
- : undefined,
122
+ to: undefined,
123
+ value: undefined,
111
124
  };
112
125
  }));
113
126
  const injectedWalletCallParams = [
@@ -121,33 +134,6 @@ async function sendCalls(options) {
121
134
  version,
122
135
  },
123
136
  ];
124
- if ((0, controller_js_1.isWalletConnect)(wallet)) {
125
- throw new Error("sendCalls is not yet supported for Wallet Connect");
126
- }
127
- let provider;
128
- if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
129
- const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
130
- const config = wallet.getConfig();
131
- provider = (await getCoinbaseWebProvider(config));
132
- }
133
- else {
134
- provider = (0, index_js_2.getInjectedProvider)(wallet.id);
135
- }
136
- try {
137
- const callId = await provider.request({
138
- method: "wallet_sendCalls",
139
- params: injectedWalletCallParams, // The viem type definition is slightly different
140
- });
141
- if (typeof callId === "object" && "id" in callId) {
142
- return { chain, client, id: callId.id, wallet };
143
- }
144
- return { chain, client, id: callId, wallet };
145
- }
146
- catch (error) {
147
- if (/unsupport|not support/i.test(error.message)) {
148
- throw new Error(`${wallet.id} errored calling wallet_sendCalls, with error: ${error instanceof Error ? error.message : (0, json_js_1.stringify)(error)}`);
149
- }
150
- throw error;
151
- }
137
+ return { callParams: injectedWalletCallParams, chain };
152
138
  }
153
139
  //# sourceMappingURL=send-calls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-calls.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/send-calls.ts"],"names":[],"mappings":"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"}
@@ -41,11 +41,7 @@ async function inAppWalletSendCalls(args) {
41
41
  * @internal
42
42
  */
43
43
  async function inAppWalletGetCallsStatus(args) {
44
- const { wallet, client, id } = args;
45
- const chain = wallet.getChain();
46
- if (!chain) {
47
- throw new Error("Failed to get calls status, no active chain found");
48
- }
44
+ const { chain, client, id } = args;
49
45
  const bundle = bundlesToTransactions.get(id);
50
46
  if (!bundle) {
51
47
  throw new Error("Failed to get calls status, unknown bundle id");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-app-wallet-calls.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/eip5792/in-app-wallet-calls.ts"],"names":[],"mappings":"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"}