thirdweb 5.105.21 → 5.105.23
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/extensions/erc1155/read/getOwnedNFTs.js +1 -0
- package/dist/cjs/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
- package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js +1 -0
- package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
- package/dist/cjs/insight/get-nfts.js +3 -3
- package/dist/cjs/insight/get-nfts.js.map +1 -1
- package/dist/cjs/insight/get-tokens.js +3 -2
- package/dist/cjs/insight/get-tokens.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/WalletConnectConnection.js +7 -33
- package/dist/cjs/react/web/wallets/shared/WalletConnectConnection.js.map +1 -1
- package/dist/cjs/transaction/actions/estimate-gas.js +3 -24
- package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
- package/dist/cjs/utils/web/isMobile.js +0 -2
- package/dist/cjs/utils/web/isMobile.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbase-web.js +56 -0
- package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/cjs/wallets/create-wallet.js +21 -4
- package/dist/cjs/wallets/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-calls-status.js +40 -63
- package/dist/cjs/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-capabilities.js +14 -49
- package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/cjs/wallets/eip5792/send-calls.js +34 -48
- package/dist/cjs/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.js +1 -5
- package/dist/cjs/wallets/in-app/core/eip5792/in-app-wallet-calls.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/eip7702/minimal-account.js +650 -5
- package/dist/cjs/wallets/in-app/core/eip7702/minimal-account.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +32 -1
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/injected/index.js +55 -0
- package/dist/cjs/wallets/injected/index.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +61 -0
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/wallet-connect/controller.js +27 -25
- package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js +1 -0
- package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
- package/dist/esm/extensions/erc721/read/getOwnedNFTs.js +1 -0
- package/dist/esm/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
- package/dist/esm/insight/get-nfts.js +3 -3
- package/dist/esm/insight/get-nfts.js.map +1 -1
- package/dist/esm/insight/get-tokens.js +3 -2
- package/dist/esm/insight/get-tokens.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/WalletConnectConnection.js +8 -34
- package/dist/esm/react/web/wallets/shared/WalletConnectConnection.js.map +1 -1
- package/dist/esm/transaction/actions/estimate-gas.js +3 -24
- package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
- package/dist/esm/utils/web/isMobile.js +2 -2
- package/dist/esm/utils/web/isMobile.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbase-web.js +56 -0
- package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/esm/wallets/create-wallet.js +21 -4
- package/dist/esm/wallets/create-wallet.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-calls-status.js +39 -63
- package/dist/esm/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-capabilities.js +13 -49
- package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/esm/wallets/eip5792/send-calls.js +33 -48
- package/dist/esm/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/esm/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.js +1 -5
- package/dist/esm/wallets/in-app/core/eip5792/in-app-wallet-calls.js.map +1 -0
- package/dist/esm/wallets/in-app/core/eip7702/minimal-account.js +650 -5
- package/dist/esm/wallets/in-app/core/eip7702/minimal-account.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +32 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/injected/index.js +56 -1
- package/dist/esm/wallets/injected/index.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +61 -0
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/wallet-connect/controller.js +27 -25
- package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/types/bridge/Webhook.d.ts +2 -2
- package/dist/types/insight/get-nfts.d.ts +1 -0
- package/dist/types/insight/get-nfts.d.ts.map +1 -1
- package/dist/types/insight/get-tokens.d.ts +1 -0
- package/dist/types/insight/get-tokens.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useWaitForCallsReceipt.d.ts +1 -1
- package/dist/types/react/core/utils/storage.d.ts +1 -1
- package/dist/types/react/web/utils/storage.d.ts +1 -1
- package/dist/types/react/web/wallets/shared/WalletConnectConnection.d.ts.map +1 -1
- package/dist/types/transaction/actions/estimate-gas.d.ts.map +1 -1
- package/dist/types/utils/web/isMobile.d.ts +0 -8
- package/dist/types/utils/web/isMobile.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/coinbase/coinbase-web.d.ts.map +1 -1
- package/dist/types/wallets/create-wallet.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/get-calls-status.d.ts +2 -1
- package/dist/types/wallets/eip5792/get-calls-status.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/get-capabilities.d.ts +1 -0
- package/dist/types/wallets/eip5792/get-capabilities.d.ts.map +1 -1
- package/dist/types/wallets/eip5792/send-calls.d.ts +6 -1
- package/dist/types/wallets/eip5792/send-calls.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.d.ts +3 -2
- package/dist/types/wallets/in-app/core/eip5792/in-app-wallet-calls.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/eip7702/minimal-account.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
- package/dist/types/wallets/injected/index.d.ts.map +1 -1
- package/dist/types/wallets/interfaces/wallet.d.ts +22 -0
- package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/wallet-connect/controller.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/extensions/erc1155/read/getOwnedNFTs.ts +1 -0
- package/src/extensions/erc721/read/getOwnedNFTs.ts +1 -0
- package/src/insight/get-nfts.ts +4 -3
- package/src/insight/get-tokens.ts +4 -2
- package/src/react/web/wallets/shared/WalletConnectConnection.tsx +11 -46
- package/src/transaction/actions/estimate-gas.ts +14 -42
- package/src/utils/web/isMobile.ts +2 -2
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-web.ts +66 -0
- package/src/wallets/create-wallet.ts +53 -31
- package/src/wallets/eip5792/get-calls-status.test.ts +156 -146
- package/src/wallets/eip5792/get-calls-status.ts +44 -73
- package/src/wallets/eip5792/get-capabilities.test.ts +216 -205
- package/src/wallets/eip5792/get-capabilities.ts +23 -64
- package/src/wallets/eip5792/send-calls.test.ts +183 -189
- package/src/wallets/eip5792/send-calls.ts +53 -71
- package/src/wallets/in-app/core/{eip5972 → eip5792}/in-app-wallet-calls.ts +4 -8
- package/src/wallets/in-app/core/eip7702/minimal-account.ts +666 -5
- package/src/wallets/in-app/core/wallet/enclave-wallet.ts +36 -1
- package/src/wallets/injected/index.ts +63 -0
- package/src/wallets/interfaces/wallet.ts +31 -0
- package/src/wallets/smart/index.ts +69 -1
- package/src/wallets/wallet-connect/controller.ts +28 -25
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +0 -1
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +0 -41
- package/dist/cjs/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +0 -1
- package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js +0 -30
- package/dist/cjs/wallets/smart/lib/smart-wallet-capabilities.js.map +0 -1
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-calls.js.map +0 -1
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js +0 -38
- package/dist/esm/wallets/in-app/core/eip5972/in-app-wallet-capabilities.js.map +0 -1
- package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js +0 -27
- package/dist/esm/wallets/smart/lib/smart-wallet-capabilities.js.map +0 -1
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-calls.d.ts.map +0 -1
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts +0 -20
- package/dist/types/wallets/in-app/core/eip5972/in-app-wallet-capabilities.d.ts.map +0 -1
- package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts +0 -20
- package/dist/types/wallets/smart/lib/smart-wallet-capabilities.d.ts.map +0 -1
- package/src/wallets/in-app/core/eip5972/in-app-wallet-capabilities.ts +0 -47
- package/src/wallets/smart/lib/smart-wallet-capabilities.ts +0 -32
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCallsStatus = getCallsStatus;
|
|
4
|
+
exports.toGetCallsStatusResponse = toGetCallsStatusResponse;
|
|
4
5
|
const hex_js_1 = require("../../utils/encoding/hex.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 index_js_3 = require("../smart/index.js");
|
|
9
|
-
const controller_js_1 = require("../wallet-connect/controller.js");
|
|
10
6
|
/**
|
|
11
7
|
* Get the status of an [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792) bundle.
|
|
12
8
|
*
|
|
@@ -40,69 +36,50 @@ async function getCallsStatus({ wallet, client, id, }) {
|
|
|
40
36
|
if (!account) {
|
|
41
37
|
throw new Error(`Failed to get call status, no account found for wallet ${wallet.id}`);
|
|
42
38
|
}
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
return inAppWalletGetCallsStatus({ client, id, wallet });
|
|
39
|
+
const chain = wallet.getChain();
|
|
40
|
+
if (!chain) {
|
|
41
|
+
throw new Error(`Failed to get call status, no chain found for wallet ${wallet.id}`);
|
|
47
42
|
}
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
let provider;
|
|
52
|
-
if ((0, coinbase_web_js_1.isCoinbaseSDKWallet)(wallet)) {
|
|
53
|
-
const { getCoinbaseWebProvider } = await Promise.resolve().then(() => require("../coinbase/coinbase-web.js"));
|
|
54
|
-
const config = wallet.getConfig();
|
|
55
|
-
provider = (await getCoinbaseWebProvider(config));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
provider = (0, index_js_2.getInjectedProvider)(wallet.id);
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
const { atomic = false, chainId, receipts, version = "2.0.0", ...response } = (await provider.request({
|
|
62
|
-
method: "wallet_getCallsStatus",
|
|
63
|
-
params: [id],
|
|
64
|
-
}));
|
|
65
|
-
const [status, statusCode] = (() => {
|
|
66
|
-
const statusCode = response.status;
|
|
67
|
-
if (statusCode >= 100 && statusCode < 200)
|
|
68
|
-
return ["pending", statusCode];
|
|
69
|
-
if (statusCode >= 200 && statusCode < 300)
|
|
70
|
-
return ["success", statusCode];
|
|
71
|
-
if (statusCode >= 300 && statusCode < 700)
|
|
72
|
-
return ["failure", statusCode];
|
|
73
|
-
// @ts-expect-error: for backwards compatibility
|
|
74
|
-
if (statusCode === "CONFIRMED")
|
|
75
|
-
return ["success", 200];
|
|
76
|
-
// @ts-expect-error: for backwards compatibility
|
|
77
|
-
if (statusCode === "PENDING")
|
|
78
|
-
return ["pending", 100];
|
|
79
|
-
return [undefined, statusCode];
|
|
80
|
-
})();
|
|
81
|
-
return {
|
|
82
|
-
...response,
|
|
83
|
-
atomic,
|
|
84
|
-
// @ts-expect-error: for backwards compatibility
|
|
85
|
-
chainId: chainId ? (0, hex_js_1.hexToNumber)(chainId) : undefined,
|
|
86
|
-
receipts: receipts?.map((receipt) => ({
|
|
87
|
-
...receipt,
|
|
88
|
-
blockNumber: (0, hex_js_1.hexToBigInt)(receipt.blockNumber),
|
|
89
|
-
gasUsed: (0, hex_js_1.hexToBigInt)(receipt.gasUsed),
|
|
90
|
-
status: receiptStatuses[receipt.status],
|
|
91
|
-
})) ?? [],
|
|
92
|
-
status,
|
|
93
|
-
statusCode,
|
|
94
|
-
version,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
if (/unsupport|not support/i.test(error.message)) {
|
|
99
|
-
throw new Error(`${wallet.id} does not support wallet_getCallsStatus, reach out to them directly to request EIP-5792 support.`);
|
|
100
|
-
}
|
|
101
|
-
throw error;
|
|
43
|
+
if (account.getCallsStatus) {
|
|
44
|
+
return account.getCallsStatus({ id, chain, client });
|
|
102
45
|
}
|
|
46
|
+
throw new Error(`Failed to get call status, wallet ${wallet.id} does not support EIP-5792`);
|
|
103
47
|
}
|
|
104
48
|
const receiptStatuses = {
|
|
105
49
|
"0x0": "reverted",
|
|
106
50
|
"0x1": "success",
|
|
107
51
|
};
|
|
52
|
+
function toGetCallsStatusResponse(response) {
|
|
53
|
+
const [status, statusCode] = (() => {
|
|
54
|
+
const statusCode = response.status;
|
|
55
|
+
if (statusCode >= 100 && statusCode < 200)
|
|
56
|
+
return ["pending", statusCode];
|
|
57
|
+
if (statusCode >= 200 && statusCode < 300)
|
|
58
|
+
return ["success", statusCode];
|
|
59
|
+
if (statusCode >= 300 && statusCode < 700)
|
|
60
|
+
return ["failure", statusCode];
|
|
61
|
+
// @ts-expect-error: for backwards compatibility
|
|
62
|
+
if (statusCode === "CONFIRMED")
|
|
63
|
+
return ["success", 200];
|
|
64
|
+
// @ts-expect-error: for backwards compatibility
|
|
65
|
+
if (statusCode === "PENDING")
|
|
66
|
+
return ["pending", 100];
|
|
67
|
+
return [undefined, statusCode];
|
|
68
|
+
})();
|
|
69
|
+
return {
|
|
70
|
+
...response,
|
|
71
|
+
atomic: response.atomic,
|
|
72
|
+
// @ts-expect-error: for backwards compatibility
|
|
73
|
+
chainId: response.chainId ? (0, hex_js_1.hexToNumber)(response.chainId) : undefined,
|
|
74
|
+
receipts: response.receipts?.map((receipt) => ({
|
|
75
|
+
...receipt,
|
|
76
|
+
blockNumber: (0, hex_js_1.hexToBigInt)(receipt.blockNumber),
|
|
77
|
+
gasUsed: (0, hex_js_1.hexToBigInt)(receipt.gasUsed),
|
|
78
|
+
status: receiptStatuses[receipt.status],
|
|
79
|
+
})) ?? [],
|
|
80
|
+
status,
|
|
81
|
+
statusCode,
|
|
82
|
+
version: response.version,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
108
85
|
//# sourceMappingURL=get-calls-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-calls-status.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-calls-status.js","sourceRoot":"","sources":["../../../../src/wallets/eip5792/get-calls-status.ts"],"names":[],"mappings":";;AA2CA,wCA0BC;AAOD,4DAiCC;AA5GD,wDAAuE;AAcvE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,cAAc,CAAC,EACnC,MAAM,EACN,MAAM,EACN,EAAE,GACoB;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0DAA0D,MAAM,CAAC,EAAE,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wDAAwD,MAAM,CAAC,EAAE,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,EAAE,4BAA4B,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX,SAAgB,wBAAwB,CACtC,QAAmC;IAEnC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnC,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG;YACvC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;QAC1C,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG;YACvC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;QAC1C,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG;YACvC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;QAC1C,gDAAgD;QAChD,IAAI,UAAU,KAAK,WAAW;YAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAU,CAAC;QACjE,gDAAgD;QAChD,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAU,CAAC;QAC/D,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC,CAAC,EAAE,CAAC;IACL,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,gDAAgD;QAChD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,oBAAW,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,QAAQ,EACN,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,OAAO;YACV,WAAW,EAAE,IAAA,oBAAW,EAAC,OAAO,CAAC,WAAW,CAAC;YAC7C,OAAO,EAAE,IAAA,oBAAW,EAAC,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAuB,CAAC;SACzD,CAAC,CAAC,IAAI,EAAE;QACX,MAAM;QACN,UAAU;QACV,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCapabilities = getCapabilities;
|
|
4
|
-
|
|
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 (
|
|
37
|
-
|
|
38
|
-
return smartWalletGetCapabilities({ wallet });
|
|
32
|
+
if (account.getCapabilities) {
|
|
33
|
+
return account.getCapabilities({ chainId });
|
|
39
34
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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":";;
|
|
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,
|
|
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
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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:
|
|
108
|
-
value:
|
|
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
|
-
|
|
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":";;
|
|
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 {
|
|
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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"}
|