permissionless 0.0.17 → 0.0.18
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/CHANGELOG.md +6 -0
- package/_cjs/actions/bundler/waitForUserOperationReceipt.js +2 -2
- package/_cjs/actions/bundler/waitForUserOperationReceipt.js.map +1 -1
- package/_cjs/utils/index.js +3 -1
- package/_cjs/utils/index.js.map +1 -1
- package/_cjs/utils/walletClientToCustomSigner.js +22 -0
- package/_cjs/utils/walletClientToCustomSigner.js.map +1 -0
- package/_esm/actions/bundler/waitForUserOperationReceipt.js +2 -2
- package/_esm/actions/bundler/waitForUserOperationReceipt.js.map +1 -1
- package/_esm/utils/index.js +2 -1
- package/_esm/utils/index.js.map +1 -1
- package/_esm/utils/walletClientToCustomSigner.js +18 -0
- package/_esm/utils/walletClientToCustomSigner.js.map +1 -0
- package/_types/utils/index.d.ts +2 -1
- package/_types/utils/index.d.ts.map +1 -1
- package/_types/utils/walletClientToCustomSigner.d.ts +4 -0
- package/_types/utils/walletClientToCustomSigner.d.ts.map +1 -0
- package/actions/bundler/waitForUserOperationReceipt.ts +2 -2
- package/package.json +1 -1
- package/utils/index.ts +2 -0
- package/utils/walletClientToCustomSigner.ts +42 -0
package/CHANGELOG.md
CHANGED
|
@@ -28,12 +28,12 @@ const waitForUserOperationReceipt = (bundlerClient, { hash, pollingInterval = bu
|
|
|
28
28
|
if (timeout) {
|
|
29
29
|
setTimeout(() => reject(new WaitForUserOperationReceiptTimeoutError({ hash })), timeout);
|
|
30
30
|
}
|
|
31
|
-
const
|
|
31
|
+
const unobserve = (0, observe_js_1.observe)(observerId, { resolve, reject }, async (emit) => {
|
|
32
32
|
const _removeInterval = setInterval(async () => {
|
|
33
33
|
const done = (fn) => {
|
|
34
34
|
clearInterval(_removeInterval);
|
|
35
35
|
fn();
|
|
36
|
-
|
|
36
|
+
unobserve();
|
|
37
37
|
};
|
|
38
38
|
const _userOperationReceipt = await (0, getAction_js_1.getAction)(bundlerClient, getUserOperationReceipt_js_1.getUserOperationReceipt)({ hash });
|
|
39
39
|
if (_userOperationReceipt !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForUserOperationReceipt.js","sourceRoot":"","sources":["../../../actions/bundler/waitForUserOperationReceipt.ts"],"names":[],"mappings":";;;AAAA,+BAQa;AACb,2DAAoD;AACpD,uDAAgD;AAChD,6EAGqC;AAErC,MAAa,uCAAwC,SAAQ,gBAAS;IAElE,YAAY,EAAE,IAAI,EAAkB;QAChC,KAAK,CACD,sDAAsD,IAAI,oBAAoB,CACjF,CAAA;QAJI;;;;mBAAO,yCAAyC;WAAA;IAKzD,CAAC;CACJ;AAPD,0FAOC;AAmCM,MAAM,2BAA2B,GAAG,CAKvC,aAAmD,EACnD,EACI,IAAI,EACJ,eAAe,GAAG,aAAa,CAAC,eAAe,EAC/C,OAAO,EAC6B,EACE,EAAE;IAC5C,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC;QACzB,6BAA6B;QAC7B,aAAa,CAAC,GAAG;QACjB,IAAI;KACP,CAAC,CAAA;IAEF,IAAI,oBAAuD,CAAA;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,OAAO,EAAE;YACT,UAAU,CACN,GAAG,EAAE,CACD,MAAM,CACF,IAAI,uCAAuC,CAAC,EAAE,IAAI,EAAE,CAAC,CACxD,EACL,OAAO,CACV,CAAA;SACJ;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"waitForUserOperationReceipt.js","sourceRoot":"","sources":["../../../actions/bundler/waitForUserOperationReceipt.ts"],"names":[],"mappings":";;;AAAA,+BAQa;AACb,2DAAoD;AACpD,uDAAgD;AAChD,6EAGqC;AAErC,MAAa,uCAAwC,SAAQ,gBAAS;IAElE,YAAY,EAAE,IAAI,EAAkB;QAChC,KAAK,CACD,sDAAsD,IAAI,oBAAoB,CACjF,CAAA;QAJI;;;;mBAAO,yCAAyC;WAAA;IAKzD,CAAC;CACJ;AAPD,0FAOC;AAmCM,MAAM,2BAA2B,GAAG,CAKvC,aAAmD,EACnD,EACI,IAAI,EACJ,eAAe,GAAG,aAAa,CAAC,eAAe,EAC/C,OAAO,EAC6B,EACE,EAAE;IAC5C,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC;QACzB,6BAA6B;QAC7B,aAAa,CAAC,GAAG;QACjB,IAAI;KACP,CAAC,CAAA;IAEF,IAAI,oBAAuD,CAAA;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,OAAO,EAAE;YACT,UAAU,CACN,GAAG,EAAE,CACD,MAAM,CACF,IAAI,uCAAuC,CAAC,EAAE,IAAI,EAAE,CAAC,CACxD,EACL,OAAO,CACV,CAAA;SACJ;QAED,MAAM,SAAS,GAAG,IAAA,oBAAO,EACrB,UAAU,EACV,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EAAE;YACX,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,IAAI,GAAG,CAAC,EAAc,EAAE,EAAE;oBAC5B,aAAa,CAAC,eAAe,CAAC,CAAA;oBAC9B,EAAE,EAAE,CAAA;oBACJ,SAAS,EAAE,CAAA;gBACf,CAAC,CAAA;gBAED,MAAM,qBAAqB,GAAG,MAAM,IAAA,wBAAS,EACzC,aAAa,EACb,oDAAuB,CAC1B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEX,IAAI,qBAAqB,KAAK,IAAI,EAAE;oBAChC,oBAAoB,GAAG,qBAAqB,CAAA;iBAC/C;gBAED,IAAI,oBAAoB,EAAE;oBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;oBAC9C,OAAM;iBACT;YACL,CAAC,EAAE,eAAe,CAAC,CAAA;QACvB,CAAC,CACJ,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AA3DY,QAAA,2BAA2B,+BA2DvC"}
|
package/_cjs/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AccountOrClientNotFoundError = exports.signUserOperationHashWithECDSA = exports.getRequiredPrefund = exports.getUserOperationHash = exports.parseAccount = void 0;
|
|
3
|
+
exports.AccountOrClientNotFoundError = exports.signUserOperationHashWithECDSA = exports.walletClientToCustomSigner = exports.getRequiredPrefund = exports.getUserOperationHash = exports.parseAccount = void 0;
|
|
4
4
|
const getRequiredPrefund_js_1 = require("./getRequiredPrefund.js");
|
|
5
5
|
Object.defineProperty(exports, "getRequiredPrefund", { enumerable: true, get: function () { return getRequiredPrefund_js_1.getRequiredPrefund; } });
|
|
6
6
|
const getUserOperationHash_js_1 = require("./getUserOperationHash.js");
|
|
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "getUserOperationHash", { enumerable: true, get:
|
|
|
8
8
|
const signUserOperationHashWithECDSA_js_1 = require("./signUserOperationHashWithECDSA.js");
|
|
9
9
|
Object.defineProperty(exports, "AccountOrClientNotFoundError", { enumerable: true, get: function () { return signUserOperationHashWithECDSA_js_1.AccountOrClientNotFoundError; } });
|
|
10
10
|
Object.defineProperty(exports, "signUserOperationHashWithECDSA", { enumerable: true, get: function () { return signUserOperationHashWithECDSA_js_1.signUserOperationHashWithECDSA; } });
|
|
11
|
+
const walletClientToCustomSigner_js_1 = require("./walletClientToCustomSigner.js");
|
|
12
|
+
Object.defineProperty(exports, "walletClientToCustomSigner", { enumerable: true, get: function () { return walletClientToCustomSigner_js_1.walletClientToCustomSigner; } });
|
|
11
13
|
function parseAccount(account) {
|
|
12
14
|
if (typeof account === "string")
|
|
13
15
|
return { address: account, type: "json-rpc" };
|
package/_cjs/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;AACA,mEAGgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;AACA,mEAGgC;AAmB5B,mGApBA,0CAAkB,OAoBA;AAlBtB,uEAGkC;AAc9B,qGAfA,8CAAoB,OAeA;AAbxB,2FAG4C;AAgBxC,6GAlBA,gEAA4B,OAkBA;AAD5B,+GAhBA,kEAA8B,OAgBA;AAdlC,mFAA4E;AAWxE,2GAXK,0DAA0B,OAWL;AAT9B,SAAgB,YAAY,CAAC,OAA0B;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IACjD,OAAO,OAAO,CAAA;AAClB,CAAC;AAJD,oCAIC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.walletClientToCustomSigner = void 0;
|
|
4
|
+
function walletClientToCustomSigner(walletClient) {
|
|
5
|
+
return {
|
|
6
|
+
address: walletClient.account.address,
|
|
7
|
+
type: "local",
|
|
8
|
+
source: "custom",
|
|
9
|
+
publicKey: walletClient.account.address,
|
|
10
|
+
signMessage: async ({ message }) => {
|
|
11
|
+
return walletClient.signMessage({ message });
|
|
12
|
+
},
|
|
13
|
+
signTypedData: async (typedData) => {
|
|
14
|
+
return walletClient.signTypedData({
|
|
15
|
+
account: walletClient.account,
|
|
16
|
+
...typedData
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.walletClientToCustomSigner = walletClientToCustomSigner;
|
|
22
|
+
//# sourceMappingURL=walletClientToCustomSigner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletClientToCustomSigner.js","sourceRoot":"","sources":["../../utils/walletClientToCustomSigner.ts"],"names":[],"mappings":";;;AAcA,SAAgB,0BAA0B,CAGtC,YAAsD;IAEtD,OAAO;QACH,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;QACrC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;QACvC,WAAW,EAAE,KAAK,EAAE,EAChB,OAAO,EACoB,EAAgB,EAAE;YAC7C,OAAO,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,aAAa,EAAE,KAAK,EAIhB,SAAwD,EAC5C,EAAE;YACd,OAAO,YAAY,CAAC,aAAa,CAAC;gBAC9B,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,GAAG,SAAS;aACf,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;AACL,CAAC;AA3BD,gEA2BC"}
|
|
@@ -45,12 +45,12 @@ export const waitForUserOperationReceipt = (bundlerClient, { hash, pollingInterv
|
|
|
45
45
|
if (timeout) {
|
|
46
46
|
setTimeout(() => reject(new WaitForUserOperationReceiptTimeoutError({ hash })), timeout);
|
|
47
47
|
}
|
|
48
|
-
const
|
|
48
|
+
const unobserve = observe(observerId, { resolve, reject }, async (emit) => {
|
|
49
49
|
const _removeInterval = setInterval(async () => {
|
|
50
50
|
const done = (fn) => {
|
|
51
51
|
clearInterval(_removeInterval);
|
|
52
52
|
fn();
|
|
53
|
-
|
|
53
|
+
unobserve();
|
|
54
54
|
};
|
|
55
55
|
const _userOperationReceipt = await getAction(bundlerClient, getUserOperationReceipt)({ hash });
|
|
56
56
|
if (_userOperationReceipt !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForUserOperationReceipt.js","sourceRoot":"","sources":["../../../actions/bundler/waitForUserOperationReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAKT,SAAS,EACZ,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAEH,uBAAuB,EAC1B,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,uCAAwC,SAAQ,SAAS;IAElE,YAAY,EAAE,IAAI,EAAkB;QAChC,KAAK,CACD,sDAAsD,IAAI,oBAAoB,CACjF,CAAA;QAJI;;;;mBAAO,yCAAyC;WAAA;IAKzD,CAAC;CACJ;AAcD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAKvC,aAAmD,EACnD,EACI,IAAI,EACJ,eAAe,GAAG,aAAa,CAAC,eAAe,EAC/C,OAAO,EAC6B,EACE,EAAE;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC;QACzB,6BAA6B;QAC7B,aAAa,CAAC,GAAG;QACjB,IAAI;KACP,CAAC,CAAA;IAEF,IAAI,oBAAuD,CAAA;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,OAAO,EAAE;YACT,UAAU,CACN,GAAG,EAAE,CACD,MAAM,CACF,IAAI,uCAAuC,CAAC,EAAE,IAAI,EAAE,CAAC,CACxD,EACL,OAAO,CACV,CAAA;SACJ;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"waitForUserOperationReceipt.js","sourceRoot":"","sources":["../../../actions/bundler/waitForUserOperationReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAKT,SAAS,EACZ,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAEH,uBAAuB,EAC1B,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,uCAAwC,SAAQ,SAAS;IAElE,YAAY,EAAE,IAAI,EAAkB;QAChC,KAAK,CACD,sDAAsD,IAAI,oBAAoB,CACjF,CAAA;QAJI;;;;mBAAO,yCAAyC;WAAA;IAKzD,CAAC;CACJ;AAcD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAKvC,aAAmD,EACnD,EACI,IAAI,EACJ,eAAe,GAAG,aAAa,CAAC,eAAe,EAC/C,OAAO,EAC6B,EACE,EAAE;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC;QACzB,6BAA6B;QAC7B,aAAa,CAAC,GAAG;QACjB,IAAI;KACP,CAAC,CAAA;IAEF,IAAI,oBAAuD,CAAA;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,OAAO,EAAE;YACT,UAAU,CACN,GAAG,EAAE,CACD,MAAM,CACF,IAAI,uCAAuC,CAAC,EAAE,IAAI,EAAE,CAAC,CACxD,EACL,OAAO,CACV,CAAA;SACJ;QAED,MAAM,SAAS,GAAG,OAAO,CACrB,UAAU,EACV,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EAAE;YACX,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,IAAI,GAAG,CAAC,EAAc,EAAE,EAAE;oBAC5B,aAAa,CAAC,eAAe,CAAC,CAAA;oBAC9B,EAAE,EAAE,CAAA;oBACJ,SAAS,EAAE,CAAA;gBACf,CAAC,CAAA;gBAED,MAAM,qBAAqB,GAAG,MAAM,SAAS,CACzC,aAAa,EACb,uBAAuB,CAC1B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEX,IAAI,qBAAqB,KAAK,IAAI,EAAE;oBAChC,oBAAoB,GAAG,qBAAqB,CAAA;iBAC/C;gBAED,IAAI,oBAAoB,EAAE;oBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;oBAC9C,OAAM;iBACT;YACL,CAAC,EAAE,eAAe,CAAC,CAAA;QACvB,CAAC,CACJ,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
|
package/_esm/utils/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { getRequiredPrefund } from "./getRequiredPrefund.js";
|
|
2
2
|
import { getUserOperationHash } from "./getUserOperationHash.js";
|
|
3
3
|
import { AccountOrClientNotFoundError, signUserOperationHashWithECDSA } from "./signUserOperationHashWithECDSA.js";
|
|
4
|
+
import { walletClientToCustomSigner } from "./walletClientToCustomSigner.js";
|
|
4
5
|
export function parseAccount(account) {
|
|
5
6
|
if (typeof account === "string")
|
|
6
7
|
return { address: account, type: "json-rpc" };
|
|
7
8
|
return account;
|
|
8
9
|
}
|
|
9
|
-
export { getUserOperationHash, getRequiredPrefund, signUserOperationHashWithECDSA, AccountOrClientNotFoundError };
|
|
10
|
+
export { getUserOperationHash, getRequiredPrefund, walletClientToCustomSigner, signUserOperationHashWithECDSA, AccountOrClientNotFoundError };
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/_esm/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,kBAAkB,EACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAEH,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACH,4BAA4B,EAC5B,8BAA8B,EACjC,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,kBAAkB,EACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAEH,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACH,4BAA4B,EAC5B,8BAA8B,EACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,MAAM,UAAU,YAAY,CAAC,OAA0B;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IACjD,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAG1B,8BAA8B,EAC9B,4BAA4B,EAC/B,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function walletClientToCustomSigner(walletClient) {
|
|
2
|
+
return {
|
|
3
|
+
address: walletClient.account.address,
|
|
4
|
+
type: "local",
|
|
5
|
+
source: "custom",
|
|
6
|
+
publicKey: walletClient.account.address,
|
|
7
|
+
signMessage: async ({ message }) => {
|
|
8
|
+
return walletClient.signMessage({ message });
|
|
9
|
+
},
|
|
10
|
+
signTypedData: async (typedData) => {
|
|
11
|
+
return walletClient.signTypedData({
|
|
12
|
+
account: walletClient.account,
|
|
13
|
+
...typedData
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=walletClientToCustomSigner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletClientToCustomSigner.js","sourceRoot":"","sources":["../../utils/walletClientToCustomSigner.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,0BAA0B,CAGtC,YAAsD;IAEtD,OAAO;QACH,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;QACrC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;QACvC,WAAW,EAAE,KAAK,EAAE,EAChB,OAAO,EACoB,EAAgB,EAAE;YAC7C,OAAO,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,aAAa,EAAE,KAAK,EAIhB,SAAwD,EAC5C,EAAE;YACd,OAAO,YAAY,CAAC,aAAa,CAAC;gBAC9B,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,GAAG,SAAS;aACf,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;AACL,CAAC"}
|
package/_types/utils/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Account, Address } from "viem";
|
|
|
2
2
|
import { type GetRequiredPrefundReturnType, getRequiredPrefund } from "./getRequiredPrefund.js";
|
|
3
3
|
import { type GetUserOperationHashParams, getUserOperationHash } from "./getUserOperationHash.js";
|
|
4
4
|
import { AccountOrClientNotFoundError, signUserOperationHashWithECDSA } from "./signUserOperationHashWithECDSA.js";
|
|
5
|
+
import { walletClientToCustomSigner } from "./walletClientToCustomSigner.js";
|
|
5
6
|
export declare function parseAccount(account: Address | Account): Account;
|
|
6
|
-
export { getUserOperationHash, getRequiredPrefund, type GetRequiredPrefundReturnType, type GetUserOperationHashParams, signUserOperationHashWithECDSA, AccountOrClientNotFoundError };
|
|
7
|
+
export { getUserOperationHash, getRequiredPrefund, walletClientToCustomSigner, type GetRequiredPrefundReturnType, type GetUserOperationHashParams, signUserOperationHashWithECDSA, AccountOrClientNotFoundError };
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EACH,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,0BAA0B,EAC/B,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACH,4BAA4B,EAC5B,8BAA8B,EACjC,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EACH,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,0BAA0B,EAC/B,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACH,4BAA4B,EAC5B,8BAA8B,EACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAIhE;AAED,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC/B,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Account, Address, Chain, Transport, WalletClient } from "viem";
|
|
2
|
+
import type { SmartAccountSigner } from "../accounts/types.js";
|
|
3
|
+
export declare function walletClientToCustomSigner<TChain extends Chain | undefined = Chain | undefined>(walletClient: WalletClient<Transport, TChain, Account>): SmartAccountSigner<"custom", Address>;
|
|
4
|
+
//# sourceMappingURL=walletClientToCustomSigner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletClientToCustomSigner.d.ts","sourceRoot":"","sources":["../../utils/walletClientToCustomSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,OAAO,EACP,KAAK,EAGL,SAAS,EAGT,YAAY,EACf,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,wBAAgB,0BAA0B,CACtC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,GACvD,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAuBvC"}
|
|
@@ -87,7 +87,7 @@ export const waitForUserOperationReceipt = <
|
|
|
87
87
|
)
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
const
|
|
90
|
+
const unobserve = observe(
|
|
91
91
|
observerId,
|
|
92
92
|
{ resolve, reject },
|
|
93
93
|
async (emit) => {
|
|
@@ -95,7 +95,7 @@ export const waitForUserOperationReceipt = <
|
|
|
95
95
|
const done = (fn: () => void) => {
|
|
96
96
|
clearInterval(_removeInterval)
|
|
97
97
|
fn()
|
|
98
|
-
|
|
98
|
+
unobserve()
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
const _userOperationReceipt = await getAction(
|
package/package.json
CHANGED
package/utils/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
AccountOrClientNotFoundError,
|
|
12
12
|
signUserOperationHashWithECDSA
|
|
13
13
|
} from "./signUserOperationHashWithECDSA.js"
|
|
14
|
+
import { walletClientToCustomSigner } from "./walletClientToCustomSigner.js"
|
|
14
15
|
|
|
15
16
|
export function parseAccount(account: Address | Account): Account {
|
|
16
17
|
if (typeof account === "string")
|
|
@@ -21,6 +22,7 @@ export function parseAccount(account: Address | Account): Account {
|
|
|
21
22
|
export {
|
|
22
23
|
getUserOperationHash,
|
|
23
24
|
getRequiredPrefund,
|
|
25
|
+
walletClientToCustomSigner,
|
|
24
26
|
type GetRequiredPrefundReturnType,
|
|
25
27
|
type GetUserOperationHashParams,
|
|
26
28
|
signUserOperationHashWithECDSA,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Account,
|
|
3
|
+
Address,
|
|
4
|
+
Chain,
|
|
5
|
+
Hex,
|
|
6
|
+
SignableMessage,
|
|
7
|
+
Transport,
|
|
8
|
+
TypedData,
|
|
9
|
+
TypedDataDefinition,
|
|
10
|
+
WalletClient
|
|
11
|
+
} from "viem"
|
|
12
|
+
|
|
13
|
+
import type { SmartAccountSigner } from "../accounts/types.js"
|
|
14
|
+
|
|
15
|
+
export function walletClientToCustomSigner<
|
|
16
|
+
TChain extends Chain | undefined = Chain | undefined
|
|
17
|
+
>(
|
|
18
|
+
walletClient: WalletClient<Transport, TChain, Account>
|
|
19
|
+
): SmartAccountSigner<"custom", Address> {
|
|
20
|
+
return {
|
|
21
|
+
address: walletClient.account.address,
|
|
22
|
+
type: "local",
|
|
23
|
+
source: "custom",
|
|
24
|
+
publicKey: walletClient.account.address,
|
|
25
|
+
signMessage: async ({
|
|
26
|
+
message
|
|
27
|
+
}: { message: SignableMessage }): Promise<Hex> => {
|
|
28
|
+
return walletClient.signMessage({ message })
|
|
29
|
+
},
|
|
30
|
+
signTypedData: async <
|
|
31
|
+
const TTypedData extends TypedData | { [key: string]: unknown },
|
|
32
|
+
TPrimaryType extends string = string
|
|
33
|
+
>(
|
|
34
|
+
typedData: TypedDataDefinition<TTypedData, TPrimaryType>
|
|
35
|
+
): Promise<Hex> => {
|
|
36
|
+
return walletClient.signTypedData({
|
|
37
|
+
account: walletClient.account,
|
|
38
|
+
...typedData
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|