zksync-sso 0.0.0-beta.7 → 0.0.0-beta.8
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/client/passkey/client.js +3 -1
- package/dist/_cjs/client/passkey/client.js.map +1 -1
- package/dist/_cjs/client/passkey/decorators/wallet.js +39 -0
- package/dist/_cjs/client/passkey/decorators/wallet.js.map +1 -0
- package/dist/_esm/client/passkey/client.js +3 -1
- package/dist/_esm/client/passkey/client.js.map +1 -1
- package/dist/_esm/client/passkey/decorators/wallet.js +38 -0
- package/dist/_esm/client/passkey/decorators/wallet.js.map +1 -0
- package/dist/_types/client/passkey/client.d.ts.map +1 -1
- package/dist/_types/client/passkey/decorators/wallet.d.ts +5 -0
- package/dist/_types/client/passkey/decorators/wallet.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/client/passkey/client.ts +3 -1
- package/src/client/passkey/decorators/wallet.ts +52 -0
|
@@ -7,6 +7,7 @@ const passkey_js_1 = require("../../utils/passkey.js");
|
|
|
7
7
|
const account_js_1 = require("./account.js");
|
|
8
8
|
const passkey_js_2 = require("./actions/passkey.js");
|
|
9
9
|
const passkey_js_3 = require("./decorators/passkey.js");
|
|
10
|
+
const wallet_js_1 = require("./decorators/wallet.js");
|
|
10
11
|
function createZksyncPasskeyClient(_parameters) {
|
|
11
12
|
const parameters = {
|
|
12
13
|
..._parameters,
|
|
@@ -38,7 +39,8 @@ function createZksyncPasskeyClient(_parameters) {
|
|
|
38
39
|
.extend(viem_1.publicActions)
|
|
39
40
|
.extend(viem_1.walletActions)
|
|
40
41
|
.extend((0, zksync_1.eip712WalletActions)())
|
|
41
|
-
.extend(passkey_js_3.zksyncSsoPasskeyActions)
|
|
42
|
+
.extend(passkey_js_3.zksyncSsoPasskeyActions)
|
|
43
|
+
.extend(wallet_js_1.zksyncSsoPasskeyWalletActions);
|
|
42
44
|
return client;
|
|
43
45
|
}
|
|
44
46
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":";;AASA,8DA4CC;AArDD,+BAA+R;AAC/R,wCAAkD;AAElD,uDAA4E;AAC5E,6CAAgD;AAChD,qDAAoE;AACpE,wDAAgG;AAChG,sDAAuE;AAEvE,SAAgB,yBAAyB,CAIvC,WAAsE;IAEtE,MAAM,UAAU,GAGZ;QACF,GAAG,WAAW;QACd,OAAO,EAAE,IAAA,iBAAU,EAAC,WAAW,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,2BAA2B;QACnD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,2BAA2B;KACtD,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAAC;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACvB,MAAM,gBAAgB,GAAG,MAAM,IAAA,yCAA4B,EAAC;gBAC1D,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;aACpD,CAAC,CAAC;YAEH,OAAO,IAAA,+CAAkC,EAAC,gBAAgB,CAAC,6BAA6B,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3H,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAuC;QAChE,GAAG,UAAU;QACb,OAAO;QACP,IAAI,EAAE,cAAc;KACrB,CAAC;SACC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC;SACF,MAAM,CAAC,oBAAa,CAAC;SACrB,MAAM,CAAC,oBAAa,CAAC;SACrB,MAAM,CAAC,IAAA,4BAAmB,GAAE,CAAC;SAC7B,MAAM,CAAC,oCAAuB,CAAC;SAC/B,MAAM,CAAC,yCAA6B,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zksyncSsoPasskeyWalletActions = zksyncSsoPasskeyWalletActions;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const actions_1 = require("viem/actions");
|
|
6
|
+
const zksync_1 = require("viem/zksync");
|
|
7
|
+
const sendEip712Transaction_js_1 = require("../../session/actions/sendEip712Transaction.js");
|
|
8
|
+
function zksyncSsoPasskeyWalletActions(client) {
|
|
9
|
+
return {
|
|
10
|
+
deployContract: (args) => (0, actions_1.deployContract)(client, args),
|
|
11
|
+
getAddresses: () => (0, actions_1.getAddresses)(client),
|
|
12
|
+
getChainId: () => (0, actions_1.getChainId)(client),
|
|
13
|
+
sendRawTransaction: (args) => (0, actions_1.sendRawTransaction)(client, args),
|
|
14
|
+
sendTransaction: async (args) => {
|
|
15
|
+
const unformattedTx = Object.assign({}, args);
|
|
16
|
+
if ("eip712Meta" in unformattedTx) {
|
|
17
|
+
const eip712Meta = unformattedTx.eip712Meta;
|
|
18
|
+
unformattedTx.gasPerPubdata = eip712Meta.gasPerPubdata ? BigInt(eip712Meta.gasPerPubdata) : undefined;
|
|
19
|
+
unformattedTx.factoryDeps = eip712Meta.factoryDeps;
|
|
20
|
+
unformattedTx.customSignature = eip712Meta.customSignature;
|
|
21
|
+
unformattedTx.paymaster = eip712Meta.paymasterParams?.paymaster;
|
|
22
|
+
unformattedTx.paymasterInput = eip712Meta.paymasterParams?.paymasterInput ? (0, viem_1.bytesToHex)(new Uint8Array(eip712Meta.paymasterParams?.paymasterInput)) : undefined;
|
|
23
|
+
delete unformattedTx.eip712Meta;
|
|
24
|
+
}
|
|
25
|
+
const formatters = client.chain?.formatters;
|
|
26
|
+
const format = formatters?.transaction?.format || viem_1.formatTransaction;
|
|
27
|
+
const tx = {
|
|
28
|
+
...format(unformattedTx),
|
|
29
|
+
type: "eip712",
|
|
30
|
+
};
|
|
31
|
+
return await (0, sendEip712Transaction_js_1.sendEip712Transaction)(client, tx);
|
|
32
|
+
},
|
|
33
|
+
signMessage: (args) => (0, actions_1.signMessage)(client, args),
|
|
34
|
+
signTransaction: (args) => (0, zksync_1.signTransaction)(client, args),
|
|
35
|
+
signTypedData: (args) => (0, actions_1.signTypedData)(client, args),
|
|
36
|
+
writeContract: (args) => (0, actions_1.writeContract)(client, args),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/wallet.ts"],"names":[],"mappings":";;AAWA,sEAwCC;AAnDD,+BAAmH;AACnH,0CAAuI;AACvI,wCAAqE;AAErE,6FAAuF;AAOvF,SAAgB,6BAA6B,CAI3C,MAAwD;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAc,EAAC,MAAM,EAAE,IAAI,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,sBAAY,EAAC,MAAM,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC;QACpC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAE9B,MAAM,aAAa,GAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,UAA8B,CAAC;gBAChE,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtG,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBACnD,aAAa,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC3D,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC;gBAChE,aAAa,CAAC,cAAc,GAAG,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/J,OAAO,aAAa,CAAC,UAAU,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,wBAAiB,CAAC;YAEpE,MAAM,EAAE,GAAG;gBACT,GAAG,MAAM,CAAC,aAAa,CAAC;gBACxB,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,OAAO,MAAM,IAAA,gDAAqB,EAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,qBAAW,EAAC,MAAM,EAAE,IAAI,CAAC;QAEhD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAe,EAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,MAAM,EAAE,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { passkeyHashSignatureResponseFormat } from "../../utils/passkey.js";
|
|
|
4
4
|
import { toPasskeyAccount } from "./account.js";
|
|
5
5
|
import { requestPasskeyAuthentication } from "./actions/passkey.js";
|
|
6
6
|
import { zksyncSsoPasskeyActions } from "./decorators/passkey.js";
|
|
7
|
+
import { zksyncSsoPasskeyWalletActions } from "./decorators/wallet.js";
|
|
7
8
|
export function createZksyncPasskeyClient(_parameters) {
|
|
8
9
|
const parameters = {
|
|
9
10
|
..._parameters,
|
|
@@ -35,7 +36,8 @@ export function createZksyncPasskeyClient(_parameters) {
|
|
|
35
36
|
.extend(publicActions)
|
|
36
37
|
.extend(walletActions)
|
|
37
38
|
.extend(eip712WalletActions())
|
|
38
|
-
.extend(zksyncSsoPasskeyActions)
|
|
39
|
+
.extend(zksyncSsoPasskeyActions)
|
|
40
|
+
.extend(zksyncSsoPasskeyWalletActions);
|
|
39
41
|
return client;
|
|
40
42
|
}
|
|
41
43
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,YAAY,EAAE,UAAU,EAAqC,aAAa,EAA4E,aAAa,EAAiD,MAAM,MAAM,CAAC;AAC/R,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAgC,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,YAAY,EAAE,UAAU,EAAqC,aAAa,EAA4E,aAAa,EAAiD,MAAM,MAAM,CAAC;AAC/R,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAgC,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,UAAU,yBAAyB,CAIvC,WAAsE;IAEtE,MAAM,UAAU,GAGZ;QACF,GAAG,WAAW;QACd,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,2BAA2B;QACnD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,2BAA2B;KACtD,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACvB,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC;gBAC1D,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;aACpD,CAAC,CAAC;YAEH,OAAO,kCAAkC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3H,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAuC;QAChE,GAAG,UAAU;QACb,OAAO;QACP,IAAI,EAAE,cAAc;KACrB,CAAC;SACC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC;SACF,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,mBAAmB,EAAE,CAAC;SAC7B,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { bytesToHex, formatTransaction } from "viem";
|
|
2
|
+
import { deployContract, getAddresses, getChainId, sendRawTransaction, signMessage, signTypedData, writeContract } from "viem/actions";
|
|
3
|
+
import { signTransaction } from "viem/zksync";
|
|
4
|
+
import { sendEip712Transaction } from "../../session/actions/sendEip712Transaction.js";
|
|
5
|
+
export function zksyncSsoPasskeyWalletActions(client) {
|
|
6
|
+
return {
|
|
7
|
+
deployContract: (args) => deployContract(client, args),
|
|
8
|
+
getAddresses: () => getAddresses(client),
|
|
9
|
+
getChainId: () => getChainId(client),
|
|
10
|
+
sendRawTransaction: (args) => sendRawTransaction(client, args),
|
|
11
|
+
sendTransaction: async (args) => {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
const unformattedTx = Object.assign({}, args);
|
|
14
|
+
if ("eip712Meta" in unformattedTx) {
|
|
15
|
+
const eip712Meta = unformattedTx.eip712Meta;
|
|
16
|
+
unformattedTx.gasPerPubdata = eip712Meta.gasPerPubdata ? BigInt(eip712Meta.gasPerPubdata) : undefined;
|
|
17
|
+
unformattedTx.factoryDeps = eip712Meta.factoryDeps;
|
|
18
|
+
unformattedTx.customSignature = eip712Meta.customSignature;
|
|
19
|
+
unformattedTx.paymaster = eip712Meta.paymasterParams?.paymaster;
|
|
20
|
+
unformattedTx.paymasterInput = eip712Meta.paymasterParams?.paymasterInput ? bytesToHex(new Uint8Array(eip712Meta.paymasterParams?.paymasterInput)) : undefined;
|
|
21
|
+
delete unformattedTx.eip712Meta;
|
|
22
|
+
}
|
|
23
|
+
const formatters = client.chain?.formatters;
|
|
24
|
+
const format = formatters?.transaction?.format || formatTransaction;
|
|
25
|
+
const tx = {
|
|
26
|
+
...format(unformattedTx),
|
|
27
|
+
type: "eip712",
|
|
28
|
+
};
|
|
29
|
+
return await sendEip712Transaction(client, tx);
|
|
30
|
+
},
|
|
31
|
+
signMessage: (args) => signMessage(client, args),
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
signTransaction: (args) => signTransaction(client, args),
|
|
34
|
+
signTypedData: (args) => signTypedData(client, args),
|
|
35
|
+
writeContract: (args) => writeContract(client, args),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAc,iBAAiB,EAAsC,MAAM,MAAM,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAOvF,MAAM,UAAU,6BAA6B,CAI3C,MAAwD;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QACpC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,8DAA8D;YAC9D,MAAM,aAAa,GAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,UAA8B,CAAC;gBAChE,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtG,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBACnD,aAAa,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC3D,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC;gBAChE,aAAa,CAAC,cAAc,GAAG,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/J,OAAO,aAAa,CAAC,UAAU,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,iBAAiB,CAAC;YAEpE,MAAM,EAAE,GAAG;gBACT,GAAG,MAAM,CAAC,aAAa,CAAC;gBACxB,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,8DAA8D;QAC9D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAA4B,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAiB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAiB,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAM/R,OAAO,EAAE,KAAK,uBAAuB,EAA2B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAA4B,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAiB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAiB,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAM/R,OAAO,EAAE,KAAK,uBAAuB,EAA2B,MAAM,yBAAyB,CAAC;AAGhG,wBAAgB,yBAAyB,CACvC,SAAS,SAAS,SAAS,EAC3B,KAAK,SAAS,KAAK,EACnB,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACnD,WAAW,EAAE,4BAA4B,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAwC7H;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AACF,KAAK,oBAAoB,GAAG;IAC1B,mBAAmB,EAAE,UAAU,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,wBAAwB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,8BAA8B,CACxC,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,KAAK,IACzB,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAAC;AAE7D,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,KAAK,EAC3B,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,EACnD,OAAO,SAAS,OAAO,GAAG,OAAO,IAC/B,QAAQ,CACV,MAAM,CACJ,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,SAAS,SAAS,GACvB,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,GACtD,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC,EAC5C,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,uBAAuB,CACnG,GAAG,oBAAoB,CACzB,CAAC;AAEF,MAAM,WAAW,4BAA4B,CAC3C,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,KAAK,EAC3B,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,CACnD,SAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC;IACjF,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,UAAU,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,wBAAwB,CAAC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Account, type Chain, type Transport, type WalletActions } from "viem";
|
|
2
|
+
import type { ClientWithZksyncSsoPasskeyData } from "../client.js";
|
|
3
|
+
export type ZksyncSsoPasskeyWalletActions<chain extends Chain, account extends Account> = Omit<WalletActions<chain, account>, "addChain" | "getPermissions" | "requestAddresses" | "requestPermissions" | "switchChain" | "watchAsset" | "prepareTransactionRequest">;
|
|
4
|
+
export declare function zksyncSsoPasskeyWalletActions<transport extends Transport, chain extends Chain, account extends Account>(client: ClientWithZksyncSsoPasskeyData<transport, chain>): ZksyncSsoPasskeyWalletActions<chain, account>;
|
|
5
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,KAAK,EAAqB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAKnH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,KAAK,EAAE,OAAO,SAAS,OAAO,IAAI,IAAI,CAC5F,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,aAAa,GAAG,YAAY,GAAG,2BAA2B,CACtK,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,SAAS,SAAS,SAAS,EAC3B,KAAK,SAAS,KAAK,EACnB,OAAO,SAAS,OAAO,EACvB,MAAM,EAAE,8BAA8B,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAoCzG"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import { passkeyHashSignatureResponseFormat } from "../../utils/passkey.js";
|
|
|
5
5
|
import { toPasskeyAccount } from "./account.js";
|
|
6
6
|
import { requestPasskeyAuthentication } from "./actions/passkey.js";
|
|
7
7
|
import { type ZksyncSsoPasskeyActions, zksyncSsoPasskeyActions } from "./decorators/passkey.js";
|
|
8
|
+
import { zksyncSsoPasskeyWalletActions } from "./decorators/wallet.js";
|
|
8
9
|
|
|
9
10
|
export function createZksyncPasskeyClient<
|
|
10
11
|
transport extends Transport,
|
|
@@ -47,7 +48,8 @@ export function createZksyncPasskeyClient<
|
|
|
47
48
|
.extend(publicActions)
|
|
48
49
|
.extend(walletActions)
|
|
49
50
|
.extend(eip712WalletActions())
|
|
50
|
-
.extend(zksyncSsoPasskeyActions)
|
|
51
|
+
.extend(zksyncSsoPasskeyActions)
|
|
52
|
+
.extend(zksyncSsoPasskeyWalletActions);
|
|
51
53
|
return client;
|
|
52
54
|
}
|
|
53
55
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type Account, bytesToHex, type Chain, formatTransaction, type Transport, type WalletActions } from "viem";
|
|
2
|
+
import { deployContract, getAddresses, getChainId, sendRawTransaction, signMessage, signTypedData, writeContract } from "viem/actions";
|
|
3
|
+
import { signTransaction, type ZksyncEip712Meta } from "viem/zksync";
|
|
4
|
+
|
|
5
|
+
import { sendEip712Transaction } from "../../session/actions/sendEip712Transaction.js";
|
|
6
|
+
import type { ClientWithZksyncSsoPasskeyData } from "../client.js";
|
|
7
|
+
|
|
8
|
+
export type ZksyncSsoPasskeyWalletActions<chain extends Chain, account extends Account> = Omit<
|
|
9
|
+
WalletActions<chain, account>, "addChain" | "getPermissions" | "requestAddresses" | "requestPermissions" | "switchChain" | "watchAsset" | "prepareTransactionRequest"
|
|
10
|
+
>;
|
|
11
|
+
|
|
12
|
+
export function zksyncSsoPasskeyWalletActions<
|
|
13
|
+
transport extends Transport,
|
|
14
|
+
chain extends Chain,
|
|
15
|
+
account extends Account,
|
|
16
|
+
>(client: ClientWithZksyncSsoPasskeyData<transport, chain>): ZksyncSsoPasskeyWalletActions<chain, account> {
|
|
17
|
+
return {
|
|
18
|
+
deployContract: (args) => deployContract(client, args),
|
|
19
|
+
getAddresses: () => getAddresses(client),
|
|
20
|
+
getChainId: () => getChainId(client),
|
|
21
|
+
sendRawTransaction: (args) => sendRawTransaction(client, args),
|
|
22
|
+
sendTransaction: async (args) => {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
const unformattedTx: any = Object.assign({}, args);
|
|
25
|
+
|
|
26
|
+
if ("eip712Meta" in unformattedTx) {
|
|
27
|
+
const eip712Meta = unformattedTx.eip712Meta as ZksyncEip712Meta;
|
|
28
|
+
unformattedTx.gasPerPubdata = eip712Meta.gasPerPubdata ? BigInt(eip712Meta.gasPerPubdata) : undefined;
|
|
29
|
+
unformattedTx.factoryDeps = eip712Meta.factoryDeps;
|
|
30
|
+
unformattedTx.customSignature = eip712Meta.customSignature;
|
|
31
|
+
unformattedTx.paymaster = eip712Meta.paymasterParams?.paymaster;
|
|
32
|
+
unformattedTx.paymasterInput = eip712Meta.paymasterParams?.paymasterInput ? bytesToHex(new Uint8Array(eip712Meta.paymasterParams?.paymasterInput)) : undefined;
|
|
33
|
+
delete unformattedTx.eip712Meta;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const formatters = client.chain?.formatters;
|
|
37
|
+
const format = formatters?.transaction?.format || formatTransaction;
|
|
38
|
+
|
|
39
|
+
const tx = {
|
|
40
|
+
...format(unformattedTx),
|
|
41
|
+
type: "eip712",
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return await sendEip712Transaction(client, tx);
|
|
45
|
+
},
|
|
46
|
+
signMessage: (args) => signMessage(client, args),
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
signTransaction: (args) => signTransaction(client, args as any),
|
|
49
|
+
signTypedData: (args) => signTypedData(client, args),
|
|
50
|
+
writeContract: (args) => writeContract(client, args),
|
|
51
|
+
};
|
|
52
|
+
}
|