@zerodev/permissions 5.2.3 → 5.2.5

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.
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toRemoteSessionKeySigner = exports.SessionKeySignerMode = void 0;
4
4
  const sdk_1 = require("@zerodev/sdk");
5
- const axios_1 = require("axios");
6
5
  const accounts_1 = require("permissionless/accounts");
7
6
  const viem_1 = require("viem");
8
7
  const accounts_2 = require("viem/accounts");
@@ -12,59 +11,62 @@ var SessionKeySignerMode;
12
11
  SessionKeySignerMode["Create"] = "create";
13
12
  SessionKeySignerMode["Get"] = "get";
14
13
  })(SessionKeySignerMode || (exports.SessionKeySignerMode = SessionKeySignerMode = {}));
15
- async function toRemoteSessionKeySigner({ userName, apiKey, walletAddress, sessionKeyStorageUrl, mode = SessionKeySignerMode.Get, signerContractAddress = constants_js_1.ECDSA_SIGNER_CONTRACT }) {
14
+ async function toRemoteSessionKeySigner({ apiKey, keyAddress, sessionKeyStorageUrl = "https://keys.zerodev.app/wallet/v1", mode = SessionKeySignerMode.Get, signerContractAddress = constants_js_1.ECDSA_SIGNER_CONTRACT }) {
16
15
  if (mode === SessionKeySignerMode.Create) {
17
16
  try {
18
- const createTurnkeyWalletResult = await axios_1.default.post(`${sessionKeyStorageUrl}/key-pair`, {
19
- userName
20
- }, {
17
+ const response = await fetch(`${sessionKeyStorageUrl}/key-pair`, {
18
+ method: "POST",
21
19
  headers: {
20
+ "Content-Type": "application/json",
22
21
  "x-api-key": apiKey
23
22
  }
24
23
  });
25
- walletAddress = createTurnkeyWalletResult.data.walletAddress;
24
+ if (!response.ok) {
25
+ const errorBody = await response.json();
26
+ throw new Error(`Request failed with status code ${response.status}: ${errorBody.message}`);
27
+ }
28
+ const createTurnkeyWalletResult = await response.json();
29
+ keyAddress = createTurnkeyWalletResult.walletAddress;
26
30
  }
27
31
  catch (error) {
28
32
  const errorMessage = error instanceof Error
29
33
  ? error.message
30
34
  : "An unknown error occurred";
31
- if (axios_1.default.isAxiosError(error) && error.response) {
32
- throw new Error(`Request failed with status code ${error.response.status}: ${error.response.data.message || errorMessage}`);
33
- }
34
- else {
35
- throw new Error(`An unexpected error occurred: ${errorMessage}`);
36
- }
35
+ throw new Error(`An unexpected error occurred: ${errorMessage}`);
37
36
  }
38
37
  }
39
- if (!walletAddress) {
38
+ if (!keyAddress) {
40
39
  throw new Error("Wallet address should be provided on get mode");
41
40
  }
42
41
  const signMessageWithTurnkeyWallet = async (message) => {
43
42
  try {
44
- const signMessageResult = await axios_1.default.post(`${sessionKeyStorageUrl}/sign-message`, {
45
- walletAddress,
46
- message
47
- }, {
43
+ const response = await fetch(`${sessionKeyStorageUrl}/sign-message`, {
44
+ method: "POST",
48
45
  headers: {
46
+ "Content-Type": "application/json",
49
47
  "x-api-key": apiKey
50
- }
48
+ },
49
+ body: JSON.stringify({
50
+ keyAddress,
51
+ message
52
+ })
51
53
  });
52
- return signMessageResult.data.signature;
54
+ if (!response.ok) {
55
+ const errorBody = await response.json();
56
+ throw new Error(`Request failed with status code ${response.status}: ${errorBody.message || "An unknown error occurred"}`);
57
+ }
58
+ const signMessageResult = await response.json();
59
+ return signMessageResult.signature;
53
60
  }
54
61
  catch (error) {
55
62
  const errorMessage = error instanceof Error
56
63
  ? error.message
57
64
  : "An unknown error occurred";
58
- if (axios_1.default.isAxiosError(error) && error.response) {
59
- throw new Error(`Request failed with status code ${error.response.status}: ${error.response.data.message || errorMessage}`);
60
- }
61
- else {
62
- throw new Error(`An unexpected error occurred: ${errorMessage}`);
63
- }
65
+ throw new Error(`An unexpected error occurred: ${errorMessage}`);
64
66
  }
65
67
  };
66
68
  const account = (0, accounts_2.toAccount)({
67
- address: walletAddress,
69
+ address: keyAddress,
68
70
  async signMessage({ message }) {
69
71
  return (0, sdk_1.fixSignedData)(await signMessageWithTurnkeyWallet(message));
70
72
  },
@@ -86,10 +88,10 @@ async function toRemoteSessionKeySigner({ userName, apiKey, walletAddress, sessi
86
88
  account,
87
89
  signerContractAddress,
88
90
  getSignerData: () => {
89
- if (!walletAddress) {
91
+ if (!keyAddress) {
90
92
  throw new Error("Wallet address not found");
91
93
  }
92
- return walletAddress;
94
+ return keyAddress;
93
95
  },
94
96
  getDummySignature: () => sdk_1.constants.DUMMY_ECDSA_SIG
95
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toRemoteSessionKeySigner.js","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toRemoteSessionKeySigner.js","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { constants, fixSignedData } from "@zerodev/sdk";
2
- import axios from "axios";
3
2
  import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
4
3
  import { getTypesForEIP712Domain, hashTypedData, validateTypedData } from "viem";
5
4
  import { toAccount } from "viem/accounts";
@@ -9,59 +8,62 @@ export var SessionKeySignerMode;
9
8
  SessionKeySignerMode["Create"] = "create";
10
9
  SessionKeySignerMode["Get"] = "get";
11
10
  })(SessionKeySignerMode || (SessionKeySignerMode = {}));
12
- export async function toRemoteSessionKeySigner({ userName, apiKey, walletAddress, sessionKeyStorageUrl, mode = SessionKeySignerMode.Get, signerContractAddress = ECDSA_SIGNER_CONTRACT }) {
11
+ export async function toRemoteSessionKeySigner({ apiKey, keyAddress, sessionKeyStorageUrl = "https://keys.zerodev.app/wallet/v1", mode = SessionKeySignerMode.Get, signerContractAddress = ECDSA_SIGNER_CONTRACT }) {
13
12
  if (mode === SessionKeySignerMode.Create) {
14
13
  try {
15
- const createTurnkeyWalletResult = await axios.post(`${sessionKeyStorageUrl}/key-pair`, {
16
- userName
17
- }, {
14
+ const response = await fetch(`${sessionKeyStorageUrl}/key-pair`, {
15
+ method: "POST",
18
16
  headers: {
17
+ "Content-Type": "application/json",
19
18
  "x-api-key": apiKey
20
19
  }
21
20
  });
22
- walletAddress = createTurnkeyWalletResult.data.walletAddress;
21
+ if (!response.ok) {
22
+ const errorBody = await response.json();
23
+ throw new Error(`Request failed with status code ${response.status}: ${errorBody.message}`);
24
+ }
25
+ const createTurnkeyWalletResult = await response.json();
26
+ keyAddress = createTurnkeyWalletResult.walletAddress;
23
27
  }
24
28
  catch (error) {
25
29
  const errorMessage = error instanceof Error
26
30
  ? error.message
27
31
  : "An unknown error occurred";
28
- if (axios.isAxiosError(error) && error.response) {
29
- throw new Error(`Request failed with status code ${error.response.status}: ${error.response.data.message || errorMessage}`);
30
- }
31
- else {
32
- throw new Error(`An unexpected error occurred: ${errorMessage}`);
33
- }
32
+ throw new Error(`An unexpected error occurred: ${errorMessage}`);
34
33
  }
35
34
  }
36
- if (!walletAddress) {
35
+ if (!keyAddress) {
37
36
  throw new Error("Wallet address should be provided on get mode");
38
37
  }
39
38
  const signMessageWithTurnkeyWallet = async (message) => {
40
39
  try {
41
- const signMessageResult = await axios.post(`${sessionKeyStorageUrl}/sign-message`, {
42
- walletAddress,
43
- message
44
- }, {
40
+ const response = await fetch(`${sessionKeyStorageUrl}/sign-message`, {
41
+ method: "POST",
45
42
  headers: {
43
+ "Content-Type": "application/json",
46
44
  "x-api-key": apiKey
47
- }
45
+ },
46
+ body: JSON.stringify({
47
+ keyAddress,
48
+ message
49
+ })
48
50
  });
49
- return signMessageResult.data.signature;
51
+ if (!response.ok) {
52
+ const errorBody = await response.json();
53
+ throw new Error(`Request failed with status code ${response.status}: ${errorBody.message || "An unknown error occurred"}`);
54
+ }
55
+ const signMessageResult = await response.json();
56
+ return signMessageResult.signature;
50
57
  }
51
58
  catch (error) {
52
59
  const errorMessage = error instanceof Error
53
60
  ? error.message
54
61
  : "An unknown error occurred";
55
- if (axios.isAxiosError(error) && error.response) {
56
- throw new Error(`Request failed with status code ${error.response.status}: ${error.response.data.message || errorMessage}`);
57
- }
58
- else {
59
- throw new Error(`An unexpected error occurred: ${errorMessage}`);
60
- }
62
+ throw new Error(`An unexpected error occurred: ${errorMessage}`);
61
63
  }
62
64
  };
63
65
  const account = toAccount({
64
- address: walletAddress,
66
+ address: keyAddress,
65
67
  async signMessage({ message }) {
66
68
  return fixSignedData(await signMessageWithTurnkeyWallet(message));
67
69
  },
@@ -83,10 +85,10 @@ export async function toRemoteSessionKeySigner({ userName, apiKey, walletAddress
83
85
  account,
84
86
  signerContractAddress,
85
87
  getSignerData: () => {
86
- if (!walletAddress) {
88
+ if (!keyAddress) {
87
89
  throw new Error("Wallet address not found");
88
90
  }
89
- return walletAddress;
91
+ return keyAddress;
90
92
  },
91
93
  getDummySignature: () => constants.DUMMY_ECDSA_SIG
92
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toRemoteSessionKeySigner.js","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,yCAAyC,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAKH,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAGvD,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,mCAAW,CAAA;AACf,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAUD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC3C,QAAQ,EACR,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,IAAI,GAAG,oBAAoB,CAAC,GAAG,EAC/B,qBAAqB,GAAG,qBAAqB,EACjB;IAC5B,IAAI,IAAI,KAAK,oBAAoB,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,MAAM,yBAAyB,GAAG,MAAM,KAAK,CAAC,IAAI,CAC9C,GAAG,oBAAoB,WAAW,EAClC;gBACI,QAAQ;aACX,EACD;gBACI,OAAO,EAAE;oBACL,WAAW,EAAE,MAAM;iBACtB;aACJ,CACJ,CAAA;YACD,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAA;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GACd,KAAK,YAAY,KAAK;gBAClB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,2BAA2B,CAAA;YACrC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACX,mCACI,KAAK,CAAC,QAAQ,CAAC,MACnB,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CACrD,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAA;YACpE,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,4BAA4B,GAAG,KAAK,EAAE,OAAwB,EAAE,EAAE;QACpE,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,IAAI,CACtC,GAAG,oBAAoB,eAAe,EACtC;gBACI,aAAa;gBACb,OAAO;aACV,EACD;gBACI,OAAO,EAAE;oBACL,WAAW,EAAE,MAAM;iBACtB;aACJ,CACJ,CAAA;YAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GACd,KAAK,YAAY,KAAK;gBAClB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,2BAA2B,CAAA;YACrC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACX,mCACI,KAAK,CAAC,QAAQ,CAAC,MACnB,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,EAAE,CACrD,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAA;YACpE,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,aAAa;QACtB,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,OAAO,aAAa,CAAC,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAKjB,SAAwD;YACtD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAClC,SAA+C,CAAA;YAEnD,MAAM,KAAK,GAAG;gBACV,YAAY,EAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;gBACjD,GAAG,SAAS,CAAC,KAAK;aACrB,CAAA;YAED,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAE1D,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YACrC,OAAO,aAAa,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAA;QAClE,CAAC;KACJ,CAAC,CAAA;IACF,OAAO;QACH,OAAO;QACP,qBAAqB;QACrB,aAAa,EAAE,GAAG,EAAE;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC/C,CAAC;YACD,OAAO,aAAa,CAAA;QACxB,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,eAAe;KACrD,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"toRemoteSessionKeySigner.js","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,10 @@ export declare enum SessionKeySignerMode {
5
5
  Get = "get"
6
6
  }
7
7
  export type SessionKeyModularSignerParams = ModularSignerParams & {
8
- userName: string;
9
8
  apiKey: string;
10
- sessionKeyStorageUrl: string;
11
- walletAddress?: Hex;
9
+ sessionKeyStorageUrl?: string;
10
+ keyAddress?: Hex;
12
11
  mode?: SessionKeySignerMode;
13
12
  };
14
- export declare function toRemoteSessionKeySigner({ userName, apiKey, walletAddress, sessionKeyStorageUrl, mode, signerContractAddress }: SessionKeyModularSignerParams): Promise<ModularSigner>;
13
+ export declare function toRemoteSessionKeySigner({ apiKey, keyAddress, sessionKeyStorageUrl, mode, signerContractAddress }: SessionKeyModularSignerParams): Promise<ModularSigner>;
15
14
  //# sourceMappingURL=toRemoteSessionKeySigner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toRemoteSessionKeySigner.d.ts","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAErE,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,GAAG;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAA;IACnB,IAAI,CAAC,EAAE,oBAAoB,CAAA;CAC9B,CAAA;AAED,wBAAsB,wBAAwB,CAAC,EAC3C,QAAQ,EACR,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,IAA+B,EAC/B,qBAA6C,EAChD,EAAE,6BAA6B,GAAG,OAAO,CAAC,aAAa,CAAC,CA4GxD"}
1
+ {"version":3,"file":"toRemoteSessionKeySigner.d.ts","sourceRoot":"","sources":["../../signers/toRemoteSessionKeySigner.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAErE,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,GAAG;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,IAAI,CAAC,EAAE,oBAAoB,CAAA;CAC9B,CAAA;AAED,wBAAsB,wBAAwB,CAAC,EAC3C,MAAM,EACN,UAAU,EACV,oBAA2D,EAC3D,IAA+B,EAC/B,qBAA6C,EAChD,EAAE,6BAA6B,GAAG,OAAO,CAAC,aAAa,CAAC,CA6GxD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/permissions",
3
- "version": "5.2.3",
3
+ "version": "5.2.5",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -1,6 +1,5 @@
1
1
  import { constants, fixSignedData } from "@zerodev/sdk"
2
2
  import type { TypedData } from "abitype"
3
- import axios from "axios"
4
3
  import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts"
5
4
  import {
6
5
  type Hex,
@@ -21,91 +20,90 @@ export enum SessionKeySignerMode {
21
20
  }
22
21
 
23
22
  export type SessionKeyModularSignerParams = ModularSignerParams & {
24
- userName: string
25
23
  apiKey: string
26
- sessionKeyStorageUrl: string
27
- walletAddress?: Hex
24
+ sessionKeyStorageUrl?: string
25
+ keyAddress?: Hex
28
26
  mode?: SessionKeySignerMode
29
27
  }
30
28
 
31
29
  export async function toRemoteSessionKeySigner({
32
- userName,
33
30
  apiKey,
34
- walletAddress,
35
- sessionKeyStorageUrl,
31
+ keyAddress,
32
+ sessionKeyStorageUrl = "https://keys.zerodev.app/wallet/v1",
36
33
  mode = SessionKeySignerMode.Get,
37
34
  signerContractAddress = ECDSA_SIGNER_CONTRACT
38
35
  }: SessionKeyModularSignerParams): Promise<ModularSigner> {
39
36
  if (mode === SessionKeySignerMode.Create) {
40
37
  try {
41
- const createTurnkeyWalletResult = await axios.post(
42
- `${sessionKeyStorageUrl}/key-pair`,
43
- {
44
- userName
45
- },
46
- {
47
- headers: {
48
- "x-api-key": apiKey
49
- }
38
+ const response = await fetch(`${sessionKeyStorageUrl}/key-pair`, {
39
+ method: "POST",
40
+ headers: {
41
+ "Content-Type": "application/json",
42
+ "x-api-key": apiKey
50
43
  }
51
- )
52
- walletAddress = createTurnkeyWalletResult.data.walletAddress
44
+ })
45
+
46
+ if (!response.ok) {
47
+ const errorBody = await response.json()
48
+ throw new Error(
49
+ `Request failed with status code ${response.status}: ${errorBody.message}`
50
+ )
51
+ }
52
+
53
+ const createTurnkeyWalletResult = await response.json()
54
+ keyAddress = createTurnkeyWalletResult.walletAddress
53
55
  } catch (error) {
54
56
  const errorMessage =
55
57
  error instanceof Error
56
58
  ? error.message
57
59
  : "An unknown error occurred"
58
- if (axios.isAxiosError(error) && error.response) {
59
- throw new Error(
60
- `Request failed with status code ${
61
- error.response.status
62
- }: ${error.response.data.message || errorMessage}`
63
- )
64
- } else {
65
- throw new Error(`An unexpected error occurred: ${errorMessage}`)
66
- }
60
+ throw new Error(`An unexpected error occurred: ${errorMessage}`)
67
61
  }
68
62
  }
69
63
 
70
- if (!walletAddress) {
64
+ if (!keyAddress) {
71
65
  throw new Error("Wallet address should be provided on get mode")
72
66
  }
73
67
 
74
68
  const signMessageWithTurnkeyWallet = async (message: SignableMessage) => {
75
69
  try {
76
- const signMessageResult = await axios.post(
70
+ const response = await fetch(
77
71
  `${sessionKeyStorageUrl}/sign-message`,
78
72
  {
79
- walletAddress,
80
- message
81
- },
82
- {
73
+ method: "POST",
83
74
  headers: {
75
+ "Content-Type": "application/json",
84
76
  "x-api-key": apiKey
85
- }
77
+ },
78
+ body: JSON.stringify({
79
+ keyAddress,
80
+ message
81
+ })
86
82
  }
87
83
  )
88
84
 
89
- return signMessageResult.data.signature
85
+ if (!response.ok) {
86
+ const errorBody = await response.json()
87
+ throw new Error(
88
+ `Request failed with status code ${response.status}: ${
89
+ errorBody.message || "An unknown error occurred"
90
+ }`
91
+ )
92
+ }
93
+
94
+ const signMessageResult = await response.json()
95
+ return signMessageResult.signature
90
96
  } catch (error) {
91
97
  const errorMessage =
92
98
  error instanceof Error
93
99
  ? error.message
94
100
  : "An unknown error occurred"
95
- if (axios.isAxiosError(error) && error.response) {
96
- throw new Error(
97
- `Request failed with status code ${
98
- error.response.status
99
- }: ${error.response.data.message || errorMessage}`
100
- )
101
- } else {
102
- throw new Error(`An unexpected error occurred: ${errorMessage}`)
103
- }
101
+ throw new Error(`An unexpected error occurred: ${errorMessage}`)
104
102
  }
105
103
  }
106
104
 
107
105
  const account = toAccount({
108
- address: walletAddress,
106
+ address: keyAddress,
109
107
  async signMessage({ message }) {
110
108
  return fixSignedData(await signMessageWithTurnkeyWallet(message))
111
109
  },
@@ -136,10 +134,10 @@ export async function toRemoteSessionKeySigner({
136
134
  account,
137
135
  signerContractAddress,
138
136
  getSignerData: () => {
139
- if (!walletAddress) {
137
+ if (!keyAddress) {
140
138
  throw new Error("Wallet address not found")
141
139
  }
142
- return walletAddress
140
+ return keyAddress
143
141
  },
144
142
  getDummySignature: () => constants.DUMMY_ECDSA_SIG
145
143
  }