thirdweb 5.32.2 → 5.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/auth/constants.js +30 -0
- package/dist/cjs/auth/constants.js.map +1 -0
- package/dist/cjs/auth/core/verify-jwt.js +2 -2
- package/dist/cjs/auth/core/verify-jwt.js.map +1 -1
- package/dist/cjs/auth/core/verify-login-payload.js +2 -2
- package/dist/cjs/auth/core/verify-login-payload.js.map +1 -1
- package/dist/cjs/auth/is-erc6492-signature.js +25 -0
- package/dist/cjs/auth/is-erc6492-signature.js.map +1 -0
- package/dist/cjs/auth/parse-erc6492-signature.js +28 -0
- package/dist/cjs/auth/parse-erc6492-signature.js.map +1 -0
- package/dist/cjs/auth/serialize-erc6492-signature.js +36 -0
- package/dist/cjs/auth/serialize-erc6492-signature.js.map +1 -0
- package/dist/cjs/auth/types.js +3 -0
- package/dist/cjs/auth/types.js.map +1 -0
- package/dist/cjs/auth/verify-signature.js +196 -0
- package/dist/cjs/auth/verify-signature.js.map +1 -0
- package/dist/cjs/exports/auth.js +11 -5
- package/dist/cjs/exports/auth.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +3 -0
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +0 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +3 -0
- package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
- package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js +19 -26
- package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
- package/dist/cjs/react/web/ui/MediaRenderer/ModelViewer.js +2 -2
- package/dist/cjs/react/web/ui/MediaRenderer/ModelViewer.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js +2 -2
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/cjs/wallets/injected/index.js +2 -2
- package/dist/cjs/wallets/injected/index.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +0 -1
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/esm/auth/constants.js +27 -0
- package/dist/esm/auth/constants.js.map +1 -0
- package/dist/esm/auth/core/verify-jwt.js +1 -1
- package/dist/esm/auth/core/verify-jwt.js.map +1 -1
- package/dist/esm/auth/core/verify-login-payload.js +1 -1
- package/dist/esm/auth/core/verify-login-payload.js.map +1 -1
- package/dist/esm/auth/is-erc6492-signature.js +22 -0
- package/dist/esm/auth/is-erc6492-signature.js.map +1 -0
- package/dist/esm/auth/parse-erc6492-signature.js +25 -0
- package/dist/esm/auth/parse-erc6492-signature.js.map +1 -0
- package/dist/esm/auth/serialize-erc6492-signature.js +33 -0
- package/dist/esm/auth/serialize-erc6492-signature.js.map +1 -0
- package/dist/esm/auth/types.js +2 -0
- package/dist/esm/auth/types.js.map +1 -0
- package/dist/esm/auth/verify-signature.js +191 -0
- package/dist/esm/auth/verify-signature.js.map +1 -0
- package/dist/esm/exports/auth.js +4 -1
- package/dist/esm/exports/auth.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +3 -0
- package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +0 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +3 -0
- package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
- package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js +19 -26
- package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
- package/dist/esm/react/web/ui/MediaRenderer/ModelViewer.js +2 -2
- package/dist/esm/react/web/ui/MediaRenderer/ModelViewer.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js +2 -2
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/esm/wallets/injected/index.js +2 -2
- package/dist/esm/wallets/injected/index.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +0 -1
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/types/auth/constants.d.ts +20 -0
- package/dist/types/auth/constants.d.ts.map +1 -0
- package/dist/types/auth/is-erc6492-signature.d.ts +19 -0
- package/dist/types/auth/is-erc6492-signature.d.ts.map +1 -0
- package/dist/types/auth/parse-erc6492-signature.d.ts +24 -0
- package/dist/types/auth/parse-erc6492-signature.d.ts.map +1 -0
- package/dist/types/auth/serialize-erc6492-signature.d.ts +27 -0
- package/dist/types/auth/serialize-erc6492-signature.d.ts.map +1 -0
- package/dist/types/auth/types.d.ts +7 -0
- package/dist/types/auth/types.d.ts.map +1 -0
- package/dist/types/auth/verify-signature.d.ts +70 -0
- package/dist/types/auth/verify-signature.d.ts.map +1 -0
- package/dist/types/exports/auth.d.ts +5 -1
- package/dist/types/exports/auth.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/AllWalletsUI.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModalContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts.map +1 -1
- package/dist/types/react/web/ui/MediaRenderer/MediaRenderer.d.ts.map +1 -1
- package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts +1 -1
- package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts.map +1 -1
- package/dist/types/react/web/ui/MediaRenderer/types.d.ts +0 -2
- package/dist/types/react/web/ui/MediaRenderer/types.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/auth/constants.ts +30 -0
- package/src/auth/core/verify-jwt.ts +1 -1
- package/src/auth/core/verify-login-payload.ts +1 -1
- package/src/auth/is-erc6492-signature.test.ts +26 -0
- package/src/auth/is-erc6492-signature.ts +23 -0
- package/src/auth/parse-erc6492-signature.test.ts +30 -0
- package/src/auth/parse-erc6492-signature.ts +38 -0
- package/src/auth/serialize-erc6492-signature.test.ts +23 -0
- package/src/auth/serialize-erc6492-signature.ts +42 -0
- package/src/auth/types.ts +7 -0
- package/src/auth/verify-signature.test.ts +97 -0
- package/src/auth/verify-signature.ts +245 -0
- package/src/exports/auth.ts +9 -1
- package/src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx +3 -0
- package/src/react/web/ui/ConnectWallet/Modal/ConnectModalContent.tsx +0 -1
- package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +3 -1
- package/src/react/web/ui/MediaRenderer/MediaRenderer.tsx +151 -111
- package/src/react/web/ui/MediaRenderer/ModelViewer.tsx +5 -5
- package/src/react/web/ui/MediaRenderer/types.ts +0 -3
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbaseWebSDK.ts +2 -2
- package/src/wallets/injected/index.ts +2 -2
- package/src/wallets/smart/index.ts +0 -3
- package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
- package/dist/cjs/auth/verifySignature.js +0 -137
- package/dist/cjs/auth/verifySignature.js.map +0 -1
- package/dist/esm/auth/verifySignature.js +0 -132
- package/dist/esm/auth/verifySignature.js.map +0 -1
- package/dist/types/auth/verifySignature.d.ts +0 -53
- package/dist/types/auth/verifySignature.d.ts.map +0 -1
- package/src/auth/verifySignature.test.ts +0 -53
- package/src/auth/verifySignature.ts +0 -166
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.universalSignatureValidatorByteCode = exports.universalSignatureValidatorAbi = exports.ERC_6492_MAGIC_VALUE = void 0;
|
4
|
+
exports.ERC_6492_MAGIC_VALUE = "0x6492649264926492649264926492649264926492649264926492649264926492";
|
5
|
+
// returns either 0x1 (valid) or 0x0 (invalid)
|
6
|
+
exports.universalSignatureValidatorAbi = [
|
7
|
+
{
|
8
|
+
inputs: [
|
9
|
+
{
|
10
|
+
internalType: "address",
|
11
|
+
name: "_signer",
|
12
|
+
type: "address",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
internalType: "bytes32",
|
16
|
+
name: "_hash",
|
17
|
+
type: "bytes32",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
internalType: "bytes",
|
21
|
+
name: "_signature",
|
22
|
+
type: "bytes",
|
23
|
+
},
|
24
|
+
],
|
25
|
+
stateMutability: "nonpayable",
|
26
|
+
type: "constructor",
|
27
|
+
},
|
28
|
+
];
|
29
|
+
exports.universalSignatureValidatorByteCode = "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572";
|
30
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/auth/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAC/B,oEAA6E,CAAC;AAEhF,8CAA8C;AACjC,QAAA,8BAA8B,GAAG;IAC5C;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;CACO,CAAC;AAEE,QAAA,mCAAmC,GAC9C,ogHAAogH,CAAC"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.verifyJWT = verifyJWT;
|
4
4
|
const decode_jwt_js_1 = require("../../utils/jwt/decode-jwt.js");
|
5
|
-
const
|
5
|
+
const verify_signature_js_1 = require("../verify-signature.js");
|
6
6
|
/**
|
7
7
|
* Verifies a JSON Web Token (JWT) based on the provided options.
|
8
8
|
* @param options - The authentication options.
|
@@ -54,7 +54,7 @@ function verifyJWT(options) {
|
|
54
54
|
error: `The expected issuer address '${issuerAddress}' did not match the token issuer address '${payload.iss}'`,
|
55
55
|
};
|
56
56
|
}
|
57
|
-
const verified = await (0,
|
57
|
+
const verified = await (0, verify_signature_js_1.verifyEOASignature)({
|
58
58
|
message: JSON.stringify(payload),
|
59
59
|
signature,
|
60
60
|
address: issuerAddress,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"verify-jwt.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-jwt.ts"],"names":[],"mappings":";;AA0BA,8BAqEC;AA/FD,iEAA2D;AAE3D,
|
1
|
+
{"version":3,"file":"verify-jwt.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-jwt.ts"],"names":[],"mappings":";;AA0BA,8BAqEC;AA/FD,iEAA2D;AAE3D,gEAA4D;AAiB5D;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,OAAoB;IAC5C,OAAO,KAAK,EAAE,MAAuB,EAA4B,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAU,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,gBAAgB;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wCAAwC,OAAO,CAAC,MAAM,mCAAmC,OAAO,CAAC,GAAG,GAAG;aAC/G,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4CAA4C,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aAC1G,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,qCAAqC,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aACnG,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QACnD,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,6CAA6C,OAAO,CAAC,GAAG,GAAG;aAChH,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAkB,EAAC;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,SAAS;YACT,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,4BAA4B;aACjF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.verifyLoginPayload = verifyLoginPayload;
|
4
4
|
const utils_js_1 = require("../../chains/utils.js");
|
5
|
-
const
|
5
|
+
const verify_signature_js_1 = require("../verify-signature.js");
|
6
6
|
const constants_js_1 = require("./constants.js");
|
7
7
|
const create_login_message_js_1 = require("./create-login-message.js");
|
8
8
|
// we use this symbol to tag the payload as verified so that developers don't accidentally pass an unverified payload to other functions
|
@@ -86,7 +86,7 @@ function verifyLoginPayload(options) {
|
|
86
86
|
}
|
87
87
|
// this is the message the user should have signed (resulting in the singature passd)
|
88
88
|
const computedMessage = (0, create_login_message_js_1.createLoginMessage)(payload);
|
89
|
-
const signatureIsValid = await (0,
|
89
|
+
const signatureIsValid = await (0, verify_signature_js_1.verifySignature)({
|
90
90
|
message: computedMessage,
|
91
91
|
signature: signature,
|
92
92
|
address: payload.address,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"verify-login-payload.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-login-payload.ts"],"names":[],"mappings":";;AAkCA,gDA+GC;AAjJD,oDAAuD;AACvD,
|
1
|
+
{"version":3,"file":"verify-login-payload.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-login-payload.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isErc6492Signature = isErc6492Signature;
|
4
|
+
const viem_1 = require("viem");
|
5
|
+
const constants_js_1 = require("./constants.js");
|
6
|
+
/**
|
7
|
+
* @description Determines if a signature is compatible with [ERC6492](https://eips.ethereum.org/EIPS/eip-6492)
|
8
|
+
*
|
9
|
+
* @param {Hex} signature The signature to check for ERC6492 compatibility
|
10
|
+
*
|
11
|
+
* @returns {boolean} True if the signature is compatible with ERC6492, false otherwise
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ```ts
|
15
|
+
* import { isErc6492Signature } from 'thirdweb/auth';
|
16
|
+
*
|
17
|
+
* const isErc6492 = isErc6492Signature('0x1234567890123456789012345678901234567890');
|
18
|
+
* ```
|
19
|
+
*
|
20
|
+
* @auth
|
21
|
+
*/
|
22
|
+
function isErc6492Signature(signature) {
|
23
|
+
return (0, viem_1.sliceHex)(signature, -32) === constants_js_1.ERC_6492_MAGIC_VALUE;
|
24
|
+
}
|
25
|
+
//# sourceMappingURL=is-erc6492-signature.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"is-erc6492-signature.js","sourceRoot":"","sources":["../../../src/auth/is-erc6492-signature.ts"],"names":[],"mappings":";;AAoBA,gDAEC;AAtBD,+BAAgC;AAEhC,iDAAsD;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,kBAAkB,CAAC,SAAc;IAC/C,OAAO,IAAA,eAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,CAAC,KAAK,mCAAoB,CAAC;AAC3D,CAAC"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.parseErc6492Signature = parseErc6492Signature;
|
4
|
+
const viem_1 = require("viem");
|
5
|
+
/**
|
6
|
+
* @description Parses a serialized ({@link Hex}) [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) signature.
|
7
|
+
* If the signature is not in ERC-6492 format, the original signature is returned.
|
8
|
+
*
|
9
|
+
* @param {Hex} signature The signature to parse
|
10
|
+
*
|
11
|
+
* @returns {@link ParseErc6492SignatureReturnType} The parsed (or original) signature
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ```ts
|
15
|
+
* import { parseErc6492Signature } from 'thirdweb/auth';
|
16
|
+
*
|
17
|
+
* const parsedSignature = parseErc6492Signature('0x1234567890123456789012345678901234567890');
|
18
|
+
* ```
|
19
|
+
* @auth
|
20
|
+
*/
|
21
|
+
function parseErc6492Signature(signature) {
|
22
|
+
if (!(0, viem_1.isErc6492Signature)(signature)) {
|
23
|
+
return { signature };
|
24
|
+
}
|
25
|
+
const [address, data, originalSignature] = (0, viem_1.decodeAbiParameters)([{ type: "address" }, { type: "bytes" }, { type: "bytes" }], signature);
|
26
|
+
return { address: address, data, signature: originalSignature };
|
27
|
+
}
|
28
|
+
//# sourceMappingURL=parse-erc6492-signature.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parse-erc6492-signature.js","sourceRoot":"","sources":["../../../src/auth/parse-erc6492-signature.ts"],"names":[],"mappings":";;AAyBA,sDAYC;AArCD,+BAA+D;AAS/D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,qBAAqB,CACnC,SAAc;IAEd,IAAI,CAAC,IAAA,yBAAkB,EAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,GAAG,IAAA,0BAAmB,EAC5D,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC3D,SAAS,CACV,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AAClE,CAAC"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.serializeErc6492Signature = serializeErc6492Signature;
|
4
|
+
const encodeAbiParameters_js_1 = require("../utils/abi/encodeAbiParameters.js");
|
5
|
+
const concat_hex_js_1 = require("../utils/encoding/helpers/concat-hex.js");
|
6
|
+
const constants_js_1 = require("./constants.js");
|
7
|
+
/**
|
8
|
+
* @description Serializes a signature for use with [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492). The signature must be generated by a signer for an [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) Account Factory account with counterfactual deployment addresses.
|
9
|
+
*
|
10
|
+
* @param {@link Erc6492Signature} signature The signature object to serialize into Hex format
|
11
|
+
* @param {string} signature.address The ERC-4337 Account Factory address
|
12
|
+
* @param {Hex} signature.data Account deployment calldata (if not deployed) for counterfactual verification
|
13
|
+
* @param {Hex} signature.signature The original signature
|
14
|
+
*
|
15
|
+
* @returns {Hex} The serialized signature
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* ```ts
|
19
|
+
* import { serializeErc6492Signature } from 'thirdweb/auth';
|
20
|
+
*
|
21
|
+
* const serializedSignature = serializeErc6492Signature({
|
22
|
+
* address: '0x...',
|
23
|
+
* data: '0x...',
|
24
|
+
* signature: '0x...',
|
25
|
+
* });
|
26
|
+
* // 0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492
|
27
|
+
* ```
|
28
|
+
* @auth
|
29
|
+
*/
|
30
|
+
function serializeErc6492Signature({ address, data, signature, }) {
|
31
|
+
return (0, concat_hex_js_1.concatHex)([
|
32
|
+
(0, encodeAbiParameters_js_1.encodeAbiParameters)([{ type: "address" }, { type: "bytes" }, { type: "bytes" }], [address, data, signature]),
|
33
|
+
constants_js_1.ERC_6492_MAGIC_VALUE,
|
34
|
+
]);
|
35
|
+
}
|
36
|
+
//# sourceMappingURL=serialize-erc6492-signature.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"serialize-erc6492-signature.js","sourceRoot":"","sources":["../../../src/auth/serialize-erc6492-signature.ts"],"names":[],"mappings":";;AA6BA,8DAYC;AAzCD,gFAA0E;AAC1E,2EAAoE;AAEpE,iDAAsD;AAGtD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,yBAAyB,CAAC,EACxC,OAAO,EACP,IAAI,EACJ,SAAS,GACQ;IACjB,OAAO,IAAA,yBAAS,EAAC;QACf,IAAA,4CAAmB,EACjB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC3D,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAC3B;QACD,mCAAoB;KACrB,CAAC,CAAC;AACL,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auth/types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,196 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.verifyEOASignature = verifyEOASignature;
|
4
|
+
exports.verifyContractWalletSignature = verifyContractWalletSignature;
|
5
|
+
exports.verifySignature = verifySignature;
|
6
|
+
const utils_1 = require("@noble/curves/abstract/utils");
|
7
|
+
const viem_1 = require("viem");
|
8
|
+
const contract_js_1 = require("../contract/contract.js");
|
9
|
+
const eth_call_js_1 = require("../rpc/actions/eth_call.js");
|
10
|
+
const rpc_js_1 = require("../rpc/rpc.js");
|
11
|
+
const from_bytes_js_1 = require("../utils/encoding/from-bytes.js");
|
12
|
+
const hex_js_1 = require("../utils/encoding/hex.js");
|
13
|
+
const to_bytes_js_1 = require("../utils/encoding/to-bytes.js");
|
14
|
+
const hashMessage_js_1 = require("../utils/hashing/hashMessage.js");
|
15
|
+
const constants_js_1 = require("../wallets/smart/lib/constants.js");
|
16
|
+
const constants_js_2 = require("./constants.js");
|
17
|
+
const is_erc6492_signature_js_1 = require("./is-erc6492-signature.js");
|
18
|
+
const serialize_erc6492_signature_js_1 = require("./serialize-erc6492-signature.js");
|
19
|
+
/**
|
20
|
+
* Verifies the signature of a message using an Ethereum account's EOA (Externally Owned Account).
|
21
|
+
* @param options - The options for verifying the signature.
|
22
|
+
* @returns A boolean indicating whether the signature is valid.
|
23
|
+
* @throws An error if the signature is invalid.
|
24
|
+
* @example
|
25
|
+
* ```ts
|
26
|
+
* import { verifyEOASignature } from 'thirdweb/auth';
|
27
|
+
*
|
28
|
+
* const isValid = await verifyEOASignature({
|
29
|
+
* message: '0x1234567890123456789012345678901234567890',
|
30
|
+
* signature: '0x1234567890123456789012345678901234567890',
|
31
|
+
* address: '0x1234567890123456789012345678901234567890',
|
32
|
+
* });
|
33
|
+
* ```
|
34
|
+
* @auth
|
35
|
+
*/
|
36
|
+
async function verifyEOASignature(options) {
|
37
|
+
const messageHash = (0, hashMessage_js_1.hashMessage)(options.message);
|
38
|
+
if (!(0, hex_js_1.isHex)(options.signature)) {
|
39
|
+
return false;
|
40
|
+
}
|
41
|
+
const recoveredAddress = await (0, viem_1.recoverAddress)({
|
42
|
+
hash: messageHash,
|
43
|
+
signature: options.signature,
|
44
|
+
});
|
45
|
+
if (recoveredAddress.toLowerCase() === options.address.toLowerCase()) {
|
46
|
+
return true;
|
47
|
+
}
|
48
|
+
return false;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* @description Verifies a contract wallet signature using [ERC-6942](https://eips.ethereum.org/EIPS/eip-6942) Signature Validation for Predeploy Contracts.
|
52
|
+
* This function will validate signatures for both deployed and undeployed smart accounts of all signature types.
|
53
|
+
*
|
54
|
+
* @param {@link VerifyContractWalletSignatureParams} options - The parameters for verifying the signature.
|
55
|
+
* @param {string} options.address The address of the contract wallet to verify the signature for. This can be an undeployed coutnerfactual address.
|
56
|
+
* @param {string} options.message The message that was signed
|
57
|
+
* @param {string} options.signature The signature to verify.
|
58
|
+
* @param {Chain} options.chain The chain to verify the signature on. Make sure this was the chain your signature was generated for, even if your smart account exists on multiple chains.
|
59
|
+
* @param {ThirdwebClient} options.client The Thirdweb client to use for necessary RPC requests.
|
60
|
+
* @param {Object} [options.accountFactory] A custom account factory to use for signature verification. This is only necessary if the account is not yet deployed AND the signature was not pre-wrapped for ERC-6492 validation. Most wallets that do not automatically deploy smart accounts prior to signatures will wrap the signature for you.
|
61
|
+
* @param {string} [options.accountFactory.address] The account factory address from which the smart account was or will be deployed.
|
62
|
+
* @param {Hex} [options.accountFactory.verificationCalldata] The account factory verification calldata for predeploy verification. See [EIP-6942](https://eips.ethereum.org/EIPS/eip-6942) for more information.
|
63
|
+
*
|
64
|
+
* @returns A boolean indicating whether the signature is valid.
|
65
|
+
*
|
66
|
+
* @example
|
67
|
+
* ```ts
|
68
|
+
* import { verifyContractWalletSignature } from 'thirdweb/auth';
|
69
|
+
*
|
70
|
+
* const isValid = await verifyContractWalletSignature({
|
71
|
+
* message: '0x..',
|
72
|
+
* signature: '0x..',
|
73
|
+
* address: '0x...',
|
74
|
+
* chain: ...,
|
75
|
+
* client: ...,
|
76
|
+
* });
|
77
|
+
* ```
|
78
|
+
* @auth
|
79
|
+
*/
|
80
|
+
async function verifyContractWalletSignature({ signature, message, address, chain, client, accountFactory, }) {
|
81
|
+
console.log("verifyContractWalletSignature");
|
82
|
+
const messageHash = (0, hashMessage_js_1.hashMessage)(message);
|
83
|
+
const signatureHex = (() => {
|
84
|
+
if ((0, hex_js_1.isHex)(signature))
|
85
|
+
return signature;
|
86
|
+
if (typeof signature === "object" && "r" in signature && "s" in signature)
|
87
|
+
return (0, viem_1.serializeSignature)(signature);
|
88
|
+
if (signature instanceof Uint8Array)
|
89
|
+
return (0, from_bytes_js_1.fromBytes)(signature, "hex");
|
90
|
+
// We should never hit this but TS doesn't know that
|
91
|
+
throw new Error(`Invalid signature type for signature ${signature}: ${typeof signature}`);
|
92
|
+
})();
|
93
|
+
const accountContract = (0, contract_js_1.getContract)({
|
94
|
+
address,
|
95
|
+
chain,
|
96
|
+
client,
|
97
|
+
});
|
98
|
+
const wrappedSignature = await (async () => {
|
99
|
+
// If this sigature was already wrapped for ERC-6492, carry on
|
100
|
+
if ((0, is_erc6492_signature_js_1.isErc6492Signature)(signatureHex))
|
101
|
+
return signatureHex;
|
102
|
+
// If the contract is already deployed, return the original signature
|
103
|
+
const { isContractDeployed } = await Promise.resolve().then(() => require("../utils/bytecode/is-contract-deployed.js"));
|
104
|
+
const isDeployed = await isContractDeployed(accountContract);
|
105
|
+
if (!isDeployed)
|
106
|
+
return signatureHex;
|
107
|
+
// Otherwise, serialize the signature for ERC-6492 validation
|
108
|
+
return (0, serialize_erc6492_signature_js_1.serializeErc6492Signature)({
|
109
|
+
address: accountFactory?.address ?? constants_js_1.DEFAULT_ACCOUNT_FACTORY,
|
110
|
+
data: accountFactory?.verificationCalldata ?? "0x",
|
111
|
+
signature: signatureHex,
|
112
|
+
});
|
113
|
+
})();
|
114
|
+
const verificationData = (0, viem_1.encodeDeployData)({
|
115
|
+
abi: constants_js_2.universalSignatureValidatorAbi,
|
116
|
+
args: [address, messageHash, wrappedSignature],
|
117
|
+
bytecode: constants_js_2.universalSignatureValidatorByteCode,
|
118
|
+
});
|
119
|
+
const rpcRequest = (0, rpc_js_1.getRpcClient)({
|
120
|
+
chain,
|
121
|
+
client,
|
122
|
+
});
|
123
|
+
try {
|
124
|
+
const result = await (0, eth_call_js_1.eth_call)(rpcRequest, {
|
125
|
+
data: verificationData,
|
126
|
+
});
|
127
|
+
const hexResult = (0, hex_js_1.isHex)(result) ? (0, to_bytes_js_1.toBytes)(result) : result;
|
128
|
+
return (0, utils_1.equalBytes)(hexResult, (0, to_bytes_js_1.toBytes)("0x1"));
|
129
|
+
}
|
130
|
+
catch (error) {
|
131
|
+
console.log("error", error);
|
132
|
+
// TODO: Improve overall RPC error handling so we can tell if this was an actual verification failure or some other error
|
133
|
+
// Verification failed somehow
|
134
|
+
return false;
|
135
|
+
}
|
136
|
+
}
|
137
|
+
/**
|
138
|
+
* Verifies the signature based on the provided options.
|
139
|
+
* Handles smart contract wallet signatures and EOA signatures.
|
140
|
+
* **IMPORTANT: in order to check smart contract signatures, a chain and client must be provided. Or, you can use the `verifyContractWalletSignature` function directly if all signatures will be from smart accounts.**
|
141
|
+
* @see verifyContractWalletSignature
|
142
|
+
* @param options - The options for signature verification.
|
143
|
+
* @returns A boolean indicating whether the signature is valid or not.
|
144
|
+
* @example
|
145
|
+
* ```ts
|
146
|
+
* import { verifySignature } from 'thirdweb/auth';
|
147
|
+
*
|
148
|
+
* const isValid = await verifySignature({
|
149
|
+
* message: 'Your message to sign',
|
150
|
+
* signature: '0x91db0222ec371a8c18d3b187a6d2e77789bffca1b96826ef6b8708e0d4a66c80312fc3ae95b8fbc147265abf539bb6f360152be61a0e1411d7f5771a599e769a1c',
|
151
|
+
* address: '0xda9C7A86AeE76701FC1c23ae548e8E93Ba3e42A5',
|
152
|
+
* client: thirdwebClient,
|
153
|
+
* chain: chain
|
154
|
+
* });
|
155
|
+
* ```
|
156
|
+
* @auth
|
157
|
+
*/
|
158
|
+
let warningTriggered = false;
|
159
|
+
async function verifySignature(options) {
|
160
|
+
try {
|
161
|
+
const isValidEOASig = await verifyEOASignature(options);
|
162
|
+
if (isValidEOASig) {
|
163
|
+
return true;
|
164
|
+
}
|
165
|
+
}
|
166
|
+
catch {
|
167
|
+
// no-op, we skip to contract signature check
|
168
|
+
}
|
169
|
+
if (isVerifyContractWalletSignatureParams(options)) {
|
170
|
+
try {
|
171
|
+
return await verifyContractWalletSignature(options);
|
172
|
+
}
|
173
|
+
catch {
|
174
|
+
// no-op we skip to return false
|
175
|
+
}
|
176
|
+
}
|
177
|
+
else if (!warningTriggered) {
|
178
|
+
// We only trigger this warning once
|
179
|
+
warningTriggered = true;
|
180
|
+
console.error(`
|
181
|
+
Failed to verify EOA signature and no chain or client provided.
|
182
|
+
|
183
|
+
If you mean to use a smart account, please provide a chain and client.
|
184
|
+
For more information on how to setup a smart account with Auth, see https://portal.thirdweb.com/connect/auth
|
185
|
+
`);
|
186
|
+
}
|
187
|
+
// if we reach here, we have no way to verify the signature
|
188
|
+
return false;
|
189
|
+
}
|
190
|
+
function isVerifyContractWalletSignatureParams(options) {
|
191
|
+
return ("chain" in options &&
|
192
|
+
options.chain !== undefined &&
|
193
|
+
"client" in options &&
|
194
|
+
options.client !== undefined);
|
195
|
+
}
|
196
|
+
//# sourceMappingURL=verify-signature.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../../src/auth/verify-signature.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/exports/auth.js
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.signLoginPayload = exports.createAuth = exports.verifyContractWalletSignature = exports.verifyEOASignature = exports.verifySignature = void 0;
|
4
|
-
var
|
5
|
-
Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return
|
6
|
-
Object.defineProperty(exports, "verifyEOASignature", { enumerable: true, get: function () { return
|
7
|
-
Object.defineProperty(exports, "verifyContractWalletSignature", { enumerable: true, get: function () { return
|
3
|
+
exports.signLoginPayload = exports.createAuth = exports.parseErc6492Signature = exports.serializeErc6492Signature = exports.isErc6492Signature = exports.verifyContractWalletSignature = exports.verifyEOASignature = exports.verifySignature = void 0;
|
4
|
+
var verify_signature_js_1 = require("../auth/verify-signature.js");
|
5
|
+
Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return verify_signature_js_1.verifySignature; } });
|
6
|
+
Object.defineProperty(exports, "verifyEOASignature", { enumerable: true, get: function () { return verify_signature_js_1.verifyEOASignature; } });
|
7
|
+
Object.defineProperty(exports, "verifyContractWalletSignature", { enumerable: true, get: function () { return verify_signature_js_1.verifyContractWalletSignature; } });
|
8
|
+
var is_erc6492_signature_js_1 = require("../auth/is-erc6492-signature.js");
|
9
|
+
Object.defineProperty(exports, "isErc6492Signature", { enumerable: true, get: function () { return is_erc6492_signature_js_1.isErc6492Signature; } });
|
10
|
+
var serialize_erc6492_signature_js_1 = require("../auth/serialize-erc6492-signature.js");
|
11
|
+
Object.defineProperty(exports, "serializeErc6492Signature", { enumerable: true, get: function () { return serialize_erc6492_signature_js_1.serializeErc6492Signature; } });
|
12
|
+
var parse_erc6492_signature_js_1 = require("../auth/parse-erc6492-signature.js");
|
13
|
+
Object.defineProperty(exports, "parseErc6492Signature", { enumerable: true, get: function () { return parse_erc6492_signature_js_1.parseErc6492Signature; } });
|
8
14
|
var auth_js_1 = require("../auth/auth.js");
|
9
15
|
Object.defineProperty(exports, "createAuth", { enumerable: true, get: function () { return auth_js_1.createAuth; } });
|
10
16
|
// meant to be used on the "client" side to sign the login payload with a given account
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/exports/auth.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/exports/auth.ts"],"names":[],"mappings":";;;AAAA,mEAOqC;AANnC,sHAAA,eAAe,OAAA;AAEf,yHAAA,kBAAkB,OAAA;AAElB,oIAAA,6BAA6B,OAAA;AAI/B,2EAAqE;AAA5D,6HAAA,kBAAkB,OAAA;AAC3B,yFAAmF;AAA1E,2IAAA,yBAAyB,OAAA;AAClC,iFAG4C;AAF1C,mIAAA,qBAAqB,OAAA;AAKvB,2CAA6C;AAApC,qGAAA,UAAU,OAAA;AAQnB,uFAAuF;AACvF,4EAG4C;AAF1C,yHAAA,gBAAgB,OAAA"}
|
@@ -11,6 +11,7 @@ const wallet_infos_js_1 = require("../../../../../wallets/__generated__/wallet-i
|
|
11
11
|
const create_wallet_js_1 = require("../../../../../wallets/create-wallet.js");
|
12
12
|
const CustomThemeProvider_js_1 = require("../../../../core/design-system/CustomThemeProvider.js");
|
13
13
|
const index_js_1 = require("../../../../core/design-system/index.js");
|
14
|
+
const wallet_ui_states_provider_js_1 = require("../../../providers/wallet-ui-states-provider.js");
|
14
15
|
const sortWallets_js_1 = require("../../../utils/sortWallets.js");
|
15
16
|
const Spacer_js_1 = require("../../components/Spacer.js");
|
16
17
|
const Spinner_js_1 = require("../../components/Spinner.js");
|
@@ -26,6 +27,7 @@ const WalletEntryButton_js_1 = require("../WalletEntryButton.js");
|
|
26
27
|
*/
|
27
28
|
function AllWalletsUI(props) {
|
28
29
|
const { itemsToShow, lastItemRef } = (0, useShowMore_js_1.useShowMore)(10, 10);
|
30
|
+
const setSelectionData = (0, wallet_ui_states_provider_js_1.useSetSelectionData)();
|
29
31
|
const walletList = (0, react_1.useMemo)(() => {
|
30
32
|
return wallet_infos_js_1.default.filter((wallet) => {
|
31
33
|
return props.specifiedWallets.findIndex((x) => x.id === wallet.id) === -1;
|
@@ -75,6 +77,7 @@ function AllWalletsUI(props) {
|
|
75
77
|
}, children: (0, jsx_runtime_1.jsx)(WalletEntryButton_js_1.WalletEntryButton, { walletId: walletInfo.id, selectWallet: () => {
|
76
78
|
const wallet = (0, create_wallet_js_1.createWallet)(walletInfo.id);
|
77
79
|
props.onSelect(wallet);
|
80
|
+
setSelectionData({});
|
78
81
|
}, client: props.client, recommendedWallets: props.recommendedWallets, connectLocale: props.connectLocale, isActive: false, badge: undefined }) }, walletInfo.id));
|
79
82
|
}) }), (0, jsx_runtime_1.jsx)(Spacer_js_1.Spacer, { y: "xl" })] })] })), walletInfosToShow.length === 0 && ((0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "column", gap: "md", center: "both", color: "secondaryText", animate: "fadein", expand: true, style: {
|
80
83
|
minHeight: "250px",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AllWalletsUI.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb,4CAAqC;AACrC,uDAA4D;AAC5D,uDAAyD;AACzD,qCAA2B;AAC3B,iCAAkD;AAElD,0FAA+E;AAC/E,8EAAuE;AAEvE,kGAAuF;AACvF,sEAA4E;AAC5E,kEAA4D;AAC5D,0DAAoD;AACpD,4DAAsD;AACtD,wDAAmE;AACnE,sEAAyD;AACzD,sDAAgD;AAChD,2EAAqE;AACrE,+DAAyD;AACzD,kEAA4D;AAG5D;;;GAGG;AACH,SAAS,YAAY,CAAC,KAQrB;IACC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAW,EAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"AllWalletsUI.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx"],"names":[],"mappings":"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"}
|
@@ -68,7 +68,6 @@ const ConnectModalContent = (props) => {
|
|
68
68
|
setScreen(initialScreen);
|
69
69
|
}, [setScreen, initialScreen, setSelectionData]);
|
70
70
|
const walletList = ((0, jsx_runtime_1.jsx)(WalletSelector_js_1.WalletSelector, { title: props.meta.title || props.connectLocale.defaultModalTitle, wallets: props.wallets, selectWallet: (newWallet) => {
|
71
|
-
setSelectionData({});
|
72
71
|
if (newWallet.onConnectRequested) {
|
73
72
|
newWallet
|
74
73
|
.onConnectRequested()
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConnectModalContent.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/Modal/ConnectModalContent.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AACb,iCAAoD;AAMpD,+EAGoD;AACpD,kFAA4E;AAC5E,wFAAkF;AAClF,gDAAsD;AACtD,kGAAsF;AACtF,+EAAyE;AACzE,4DAAsD;AACtD,kDAAkE;AAElE,sEAAgE;AAChE,8DAAwD;AAExD,mEAA6D;AAC7D,uEAGmC;AACnC,uEAA2D;AAC3D,2CAAmE;AAEnE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAA,YAAI,EAAC,GAAG,EAAE,sCAAQ,mBAAmB,EAAC,CAAC,CAAC;AAE7E;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAsCnC,EAAE,EAAE;IACH,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/D,MAAM,eAAe,GAAG,IAAA,0CAAkB,GAAE,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAA,kDAAmB,GAAE,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,oCAAe,GAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAA,4BAAW,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAE1E,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,MAAc,EAAE,EAAE;QACjB,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,4BAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,IAAA,6BAAc,EAAC,GAAG,EAAE;YAClB,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,mBAAmB,EAAE,CAAC;YACxB,SAAS,CAAC,8BAAe,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,aAAa,CAAC,CAAC;YACzB,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC,EACD;QACE,kBAAkB;QAClB,OAAO;QACP,KAAK,CAAC,SAAS;QACf,eAAe;QACf,mBAAmB;QACnB,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,aAAa;KACd,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAClC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,CACjB,uBAAC,kCAAc,IACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAChE,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE;YAC1B,
|
1
|
+
{"version":3,"file":"ConnectModalContent.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/ConnectWallet/Modal/ConnectModalContent.tsx"],"names":[],"mappings":"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"}
|
@@ -10,6 +10,7 @@ const mipdStore_js_1 = require("../../../../wallets/injected/mipdStore.js");
|
|
10
10
|
const CustomThemeProvider_js_1 = require("../../../core/design-system/CustomThemeProvider.js");
|
11
11
|
const index_js_1 = require("../../../core/design-system/index.js");
|
12
12
|
const socialIcons_js_1 = require("../../../core/utils/socialIcons.js");
|
13
|
+
const wallet_ui_states_provider_js_1 = require("../../providers/wallet-ui-states-provider.js");
|
13
14
|
const sortWallets_js_1 = require("../../utils/sortWallets.js");
|
14
15
|
const LoadingScreen_js_1 = require("../../wallets/shared/LoadingScreen.js");
|
15
16
|
const Img_js_1 = require("../components/Img.js");
|
@@ -183,6 +184,7 @@ function getInstalledWallets() {
|
|
183
184
|
const WalletSelection = (props) => {
|
184
185
|
const wallets = (0, sortWallets_js_1.sortWallets)(props.wallets, props.recommendedWallets);
|
185
186
|
const { screen } = (0, screen_js_1.useScreenContext)();
|
187
|
+
const setSelectionData = (0, wallet_ui_states_provider_js_1.useSetSelectionData)();
|
186
188
|
return ((0, jsx_runtime_1.jsxs)(WalletList, { style: {
|
187
189
|
minHeight: "100%",
|
188
190
|
}, children: [wallets.map((wallet) => {
|
@@ -190,6 +192,7 @@ const WalletSelection = (props) => {
|
|
190
192
|
? typeof screen === "object" && screen.id === wallet.id
|
191
193
|
: false;
|
192
194
|
return ((0, jsx_runtime_1.jsx)("li", { children: wallet.id === "inApp" && props.size === "compact" ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(LoadingScreen_js_1.LoadingScreen, { height: "195px" }), children: (0, jsx_runtime_1.jsx)(InAppWalletSelectionUI, { done: () => props.done(wallet), select: () => props.selectWallet(wallet), wallet: wallet, goBack: props.goBack, client: props.client, connectLocale: props.connectLocale, size: props.size, recommendedWallets: props.recommendedWallets, chain: props.chain }) })) : ((0, jsx_runtime_1.jsx)(WalletEntryButton_js_1.WalletEntryButton, { walletId: wallet.id, selectWallet: () => {
|
195
|
+
setSelectionData({});
|
193
196
|
props.selectWallet(wallet);
|
194
197
|
}, connectLocale: props.connectLocale, client: props.client, recommendedWallets: props.recommendedWallets, isActive: isActive, badge: undefined })) }, wallet.id));
|
195
198
|
}), props.onShowAll && props.showAllWallets !== false && ((0, jsx_runtime_1.jsx)(ButtonContainer, { children: (0, jsx_runtime_1.jsxs)(WalletEntryButton_js_1.WalletButtonEl, { onClick: props.onShowAll, children: [(0, jsx_runtime_1.jsxs)(ShowAllWalletsIcon, { children: [(0, jsx_runtime_1.jsx)("div", { "data-dot": true }), (0, jsx_runtime_1.jsx)("div", { "data-dot": true }), (0, jsx_runtime_1.jsx)("div", { "data-dot": true }), (0, jsx_runtime_1.jsx)("div", { "data-dot": true })] }), (0, jsx_runtime_1.jsxs)(basic_js_1.Container, { flex: "row", gap: "xs", children: [(0, jsx_runtime_1.jsx)(text_js_2.Text, { color: "primaryText", children: "All Wallets" }), (0, jsx_runtime_1.jsx)(BadgeText, { children: " 350+ " })] })] }) }))] }));
|