permissionless 0.1.15 → 0.1.16

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # permissionless
2
2
 
3
+ ## 0.1.16
4
+
5
+ ### Patch Changes
6
+
7
+ - 84d841d9f5474c0c5dc806ec6e8177551b2307e8: Added util function getPackedUserOperation
8
+
3
9
  ## 0.1.15
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPackedUserOperation = exports.unpackPaymasterAndData = exports.getPaymasterAndData = exports.unpackGasLimits = exports.getGasLimits = exports.unpackAccountGasLimits = exports.getAccountGasLimits = exports.unPackInitCode = exports.getInitCode = void 0;
4
+ const viem_1 = require("viem");
5
+ function getInitCode(unpackedUserOperation) {
6
+ return unpackedUserOperation.factory
7
+ ? (0, viem_1.concat)([
8
+ unpackedUserOperation.factory,
9
+ unpackedUserOperation.factoryData || "0x"
10
+ ])
11
+ : "0x";
12
+ }
13
+ exports.getInitCode = getInitCode;
14
+ function unPackInitCode(initCode) {
15
+ if (initCode === "0x") {
16
+ return {
17
+ factory: null,
18
+ factoryData: null
19
+ };
20
+ }
21
+ return {
22
+ factory: (0, viem_1.getAddress)((0, viem_1.slice)(initCode, 0, 20)),
23
+ factoryData: (0, viem_1.slice)(initCode, 20)
24
+ };
25
+ }
26
+ exports.unPackInitCode = unPackInitCode;
27
+ function getAccountGasLimits(unpackedUserOperation) {
28
+ return (0, viem_1.concat)([
29
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.verificationGasLimit), {
30
+ size: 16
31
+ }),
32
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.callGasLimit), { size: 16 })
33
+ ]);
34
+ }
35
+ exports.getAccountGasLimits = getAccountGasLimits;
36
+ function unpackAccountGasLimits(accountGasLimits) {
37
+ return {
38
+ verificationGasLimit: BigInt((0, viem_1.slice)(accountGasLimits, 0, 16)),
39
+ callGasLimit: BigInt((0, viem_1.slice)(accountGasLimits, 16))
40
+ };
41
+ }
42
+ exports.unpackAccountGasLimits = unpackAccountGasLimits;
43
+ function getGasLimits(unpackedUserOperation) {
44
+ return (0, viem_1.concat)([
45
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.maxPriorityFeePerGas), {
46
+ size: 16
47
+ }),
48
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.maxFeePerGas), { size: 16 })
49
+ ]);
50
+ }
51
+ exports.getGasLimits = getGasLimits;
52
+ function unpackGasLimits(gasLimits) {
53
+ return {
54
+ maxPriorityFeePerGas: BigInt((0, viem_1.slice)(gasLimits, 0, 16)),
55
+ maxFeePerGas: BigInt((0, viem_1.slice)(gasLimits, 16))
56
+ };
57
+ }
58
+ exports.unpackGasLimits = unpackGasLimits;
59
+ function getPaymasterAndData(unpackedUserOperation) {
60
+ return unpackedUserOperation.paymaster
61
+ ? (0, viem_1.concat)([
62
+ unpackedUserOperation.paymaster,
63
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.paymasterVerificationGasLimit || 0n), {
64
+ size: 16
65
+ }),
66
+ (0, viem_1.pad)((0, viem_1.toHex)(unpackedUserOperation.paymasterPostOpGasLimit || 0n), {
67
+ size: 16
68
+ }),
69
+ unpackedUserOperation.paymasterData || "0x"
70
+ ])
71
+ : "0x";
72
+ }
73
+ exports.getPaymasterAndData = getPaymasterAndData;
74
+ function unpackPaymasterAndData(paymasterAndData) {
75
+ if (paymasterAndData === "0x") {
76
+ return {
77
+ paymaster: null,
78
+ paymasterVerificationGasLimit: null,
79
+ paymasterPostOpGasLimit: null,
80
+ paymasterData: null
81
+ };
82
+ }
83
+ return {
84
+ paymaster: (0, viem_1.getAddress)((0, viem_1.slice)(paymasterAndData, 0, 20)),
85
+ paymasterVerificationGasLimit: BigInt((0, viem_1.slice)(paymasterAndData, 20, 36)),
86
+ paymasterPostOpGasLimit: BigInt((0, viem_1.slice)(paymasterAndData, 36, 52)),
87
+ paymasterData: (0, viem_1.slice)(paymasterAndData, 52)
88
+ };
89
+ }
90
+ exports.unpackPaymasterAndData = unpackPaymasterAndData;
91
+ const getPackedUserOperation = (userOperation) => {
92
+ return {
93
+ sender: userOperation.sender,
94
+ nonce: userOperation.nonce,
95
+ initCode: getInitCode(userOperation),
96
+ callData: userOperation.callData,
97
+ accountGasLimits: getAccountGasLimits(userOperation),
98
+ preVerificationGas: userOperation.preVerificationGas,
99
+ gasFees: getGasLimits(userOperation),
100
+ paymasterAndData: getPaymasterAndData(userOperation),
101
+ signature: userOperation.signature
102
+ };
103
+ };
104
+ exports.getPackedUserOperation = getPackedUserOperation;
105
+ //# sourceMappingURL=getPackedUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackedUserOperation.js","sourceRoot":"","sources":["../../utils/getPackedUserOperation.ts"],"names":[],"mappings":";;;AAAA,+BAAsE;AAItE,SAAgB,WAAW,CAAC,qBAA4C;IACpE,OAAO,qBAAqB,CAAC,OAAO;QAChC,CAAC,CAAC,IAAA,aAAM,EAAC;YACH,qBAAqB,CAAC,OAAO;YAC7B,qBAAqB,CAAC,WAAW,IAAK,IAAY;SACrD,CAAC;QACJ,CAAC,CAAC,IAAI,CAAA;AACd,CAAC;AAPD,kCAOC;AAED,SAAgB,cAAc,CAAC,QAAa;IACxC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI;SACpB,CAAA;IACL,CAAC;IACD,OAAO;QACH,OAAO,EAAE,IAAA,iBAAU,EAAC,IAAA,YAAK,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,WAAW,EAAE,IAAA,YAAK,EAAC,QAAQ,EAAE,EAAE,CAAC;KACnC,CAAA;AACL,CAAC;AAXD,wCAWC;AAED,SAAgB,mBAAmB,CAC/B,qBAA4C;IAE5C,OAAO,IAAA,aAAM,EAAC;QACV,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE;YACnD,IAAI,EAAE,EAAE;SACX,CAAC;QACF,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAC/D,CAAU,CAAA;AACf,CAAC;AATD,kDASC;AAED,SAAgB,sBAAsB,CAAC,gBAAqB;IACxD,OAAO;QACH,oBAAoB,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,YAAY,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;KACpD,CAAA;AACL,CAAC;AALD,wDAKC;AAED,SAAgB,YAAY,CAAC,qBAA4C;IACrE,OAAO,IAAA,aAAM,EAAC;QACV,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE;YACnD,IAAI,EAAE,EAAE;SACX,CAAC;QACF,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAC/D,CAAU,CAAA;AACf,CAAC;AAPD,oCAOC;AAED,SAAgB,eAAe,CAAC,SAAc;IAC1C,OAAO;QACH,oBAAoB,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,YAAY,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KAC7C,CAAA;AACL,CAAC;AALD,0CAKC;AAED,SAAgB,mBAAmB,CAC/B,qBAA4C;IAE5C,OAAO,qBAAqB,CAAC,SAAS;QAClC,CAAC,CAAC,IAAA,aAAM,EAAC;YACH,qBAAqB,CAAC,SAAS;YAC/B,IAAA,UAAG,EACC,IAAA,YAAK,EACD,qBAAqB,CAAC,6BAA6B,IAAI,EAAE,CAC5D,EACD;gBACI,IAAI,EAAE,EAAE;aACX,CACJ;YACD,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,qBAAqB,CAAC,uBAAuB,IAAI,EAAE,CAAC,EAAE;gBAC5D,IAAI,EAAE,EAAE;aACX,CAAC;YACF,qBAAqB,CAAC,aAAa,IAAK,IAAY;SACvD,CAAC;QACJ,CAAC,CAAC,IAAI,CAAA;AACd,CAAC;AApBD,kDAoBC;AAED,SAAgB,sBAAsB,CAAC,gBAAqB;IACxD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;YACH,SAAS,EAAE,IAAI;YACf,6BAA6B,EAAE,IAAI;YACnC,uBAAuB,EAAE,IAAI;YAC7B,aAAa,EAAE,IAAI;SACtB,CAAA;IACL,CAAC;IACD,OAAO;QACH,SAAS,EAAE,IAAA,iBAAU,EAAC,IAAA,YAAK,EAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,6BAA6B,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,uBAAuB,EAAE,MAAM,CAAC,IAAA,YAAK,EAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChE,aAAa,EAAE,IAAA,YAAK,EAAC,gBAAgB,EAAE,EAAE,CAAC;KAC7C,CAAA;AACL,CAAC;AAfD,wDAeC;AAEM,MAAM,sBAAsB,GAAG,CAClC,aAAoC,EACjB,EAAE;IACrB,OAAO;QACH,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC;QACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,gBAAgB,EAAE,mBAAmB,CAAC,aAAa,CAAC;QACpD,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;QACpD,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC;QACpC,gBAAgB,EAAE,mBAAmB,CAAC,aAAa,CAAC;QACpD,SAAS,EAAE,aAAa,CAAC,SAAS;KACrC,CAAA;AACL,CAAC,CAAA;AAdY,QAAA,sBAAsB,0BAclC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENTRYPOINT_ADDRESS_V07 = exports.ENTRYPOINT_ADDRESS_V06 = exports.getEntryPointVersion = exports.getAddressFromInitCodeOrPaymasterAndData = exports.providerToSmartAccountSigner = exports.isSmartAccountDeployed = exports.AccountOrClientNotFoundError = exports.signUserOperationHashWithECDSA = exports.walletClientToSmartAccountSigner = exports.getRequiredPrefund = exports.getUserOperationHash = exports.getAction = exports.deepHexlify = exports.transactionReceiptStatus = exports.parseAccount = void 0;
3
+ exports.ENTRYPOINT_ADDRESS_V07 = exports.ENTRYPOINT_ADDRESS_V06 = exports.getEntryPointVersion = exports.getPackedUserOperation = exports.getAddressFromInitCodeOrPaymasterAndData = exports.providerToSmartAccountSigner = exports.isSmartAccountDeployed = exports.AccountOrClientNotFoundError = exports.signUserOperationHashWithECDSA = exports.walletClientToSmartAccountSigner = exports.getRequiredPrefund = exports.getUserOperationHash = exports.getAction = exports.deepHexlify = exports.transactionReceiptStatus = exports.parseAccount = void 0;
4
4
  const deepHexlify_1 = require("./deepHexlify.js");
5
5
  Object.defineProperty(exports, "deepHexlify", { enumerable: true, get: function () { return deepHexlify_1.deepHexlify; } });
6
6
  Object.defineProperty(exports, "transactionReceiptStatus", { enumerable: true, get: function () { return deepHexlify_1.transactionReceiptStatus; } });
@@ -31,4 +31,6 @@ const getEntryPointVersion_1 = require("./getEntryPointVersion.js");
31
31
  Object.defineProperty(exports, "ENTRYPOINT_ADDRESS_V06", { enumerable: true, get: function () { return getEntryPointVersion_1.ENTRYPOINT_ADDRESS_V06; } });
32
32
  Object.defineProperty(exports, "ENTRYPOINT_ADDRESS_V07", { enumerable: true, get: function () { return getEntryPointVersion_1.ENTRYPOINT_ADDRESS_V07; } });
33
33
  Object.defineProperty(exports, "getEntryPointVersion", { enumerable: true, get: function () { return getEntryPointVersion_1.getEntryPointVersion; } });
34
+ const getPackedUserOperation_1 = require("./getPackedUserOperation.js");
35
+ Object.defineProperty(exports, "getPackedUserOperation", { enumerable: true, get: function () { return getPackedUserOperation_1.getPackedUserOperation; } });
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;AACA,+CAAqE;AAiCjE,4FAjCK,yBAAW,OAiCL;AADX,yGAhCkB,sCAAwB,OAgClB;AA/B5B,2CAAuC;AAiCnC,0FAjCK,qBAAS,OAiCL;AAhCb,yGAAqG;AA2CjG,yHA3CK,mFAAwC,OA2CL;AA1C5C,6DAG6B;AA8BzB,mGA/BA,uCAAkB,OA+BA;AA7BtB,iEAG+B;AAyB3B,qGA1BA,2CAAoB,OA0BA;AAxBxB,qEAAiE;AAgC7D,uGAhCK,+CAAsB,OAgCL;AA/B1B,iFAA6E;AAgCzE,6GAhCK,2DAA4B,OAgCL;AA/BhC,qFAIyC;AAyBrC,6GA5BA,6DAA4B,OA4BA;AAF5B,+GAxBA,+DAA8B,OAwBA;AAtBlC,yFAAqF;AAmBjF,iHAnBK,mEAAgC,OAmBL;AAjBpC,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;AACD,iEAI+B;AAkB3B,uGArBA,6CAAsB,OAqBA;AACtB,uGArBA,6CAAsB,OAqBA;AAFtB,qGAlBA,2CAAoB,OAkBA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;AACA,+CAAqE;AAmCjE,4FAnCK,yBAAW,OAmCL;AADX,yGAlCkB,sCAAwB,OAkClB;AAjC5B,2CAAuC;AAmCnC,0FAnCK,qBAAS,OAmCL;AAlCb,yGAAqG;AA6CjG,yHA7CK,mFAAwC,OA6CL;AA5C5C,6DAG6B;AAgCzB,mGAjCA,uCAAkB,OAiCA;AA/BtB,iEAG+B;AA2B3B,qGA5BA,2CAAoB,OA4BA;AA1BxB,qEAAiE;AAkC7D,uGAlCK,+CAAsB,OAkCL;AAjC1B,iFAA6E;AAkCzE,6GAlCK,2DAA4B,OAkCL;AAjChC,qFAIyC;AA2BrC,6GA9BA,6DAA4B,OA8BA;AAF5B,+GA1BA,+DAA8B,OA0BA;AAxBlC,yFAAqF;AAqBjF,iHArBK,mEAAgC,OAqBL;AAnBpC,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;AACD,iEAI+B;AAqB3B,uGAxBA,6CAAsB,OAwBA;AACtB,uGAxBA,6CAAsB,OAwBA;AAFtB,qGArBA,2CAAoB,OAqBA;AAlBxB,qEAAiE;AAiB7D,uGAjBK,+CAAsB,OAiBL"}
@@ -0,0 +1,93 @@
1
+ import { concat, getAddress, pad, slice, toHex } from "viem";
2
+ export function getInitCode(unpackedUserOperation) {
3
+ return unpackedUserOperation.factory
4
+ ? concat([
5
+ unpackedUserOperation.factory,
6
+ unpackedUserOperation.factoryData || "0x"
7
+ ])
8
+ : "0x";
9
+ }
10
+ export function unPackInitCode(initCode) {
11
+ if (initCode === "0x") {
12
+ return {
13
+ factory: null,
14
+ factoryData: null
15
+ };
16
+ }
17
+ return {
18
+ factory: getAddress(slice(initCode, 0, 20)),
19
+ factoryData: slice(initCode, 20)
20
+ };
21
+ }
22
+ export function getAccountGasLimits(unpackedUserOperation) {
23
+ return concat([
24
+ pad(toHex(unpackedUserOperation.verificationGasLimit), {
25
+ size: 16
26
+ }),
27
+ pad(toHex(unpackedUserOperation.callGasLimit), { size: 16 })
28
+ ]);
29
+ }
30
+ export function unpackAccountGasLimits(accountGasLimits) {
31
+ return {
32
+ verificationGasLimit: BigInt(slice(accountGasLimits, 0, 16)),
33
+ callGasLimit: BigInt(slice(accountGasLimits, 16))
34
+ };
35
+ }
36
+ export function getGasLimits(unpackedUserOperation) {
37
+ return concat([
38
+ pad(toHex(unpackedUserOperation.maxPriorityFeePerGas), {
39
+ size: 16
40
+ }),
41
+ pad(toHex(unpackedUserOperation.maxFeePerGas), { size: 16 })
42
+ ]);
43
+ }
44
+ export function unpackGasLimits(gasLimits) {
45
+ return {
46
+ maxPriorityFeePerGas: BigInt(slice(gasLimits, 0, 16)),
47
+ maxFeePerGas: BigInt(slice(gasLimits, 16))
48
+ };
49
+ }
50
+ export function getPaymasterAndData(unpackedUserOperation) {
51
+ return unpackedUserOperation.paymaster
52
+ ? concat([
53
+ unpackedUserOperation.paymaster,
54
+ pad(toHex(unpackedUserOperation.paymasterVerificationGasLimit || 0n), {
55
+ size: 16
56
+ }),
57
+ pad(toHex(unpackedUserOperation.paymasterPostOpGasLimit || 0n), {
58
+ size: 16
59
+ }),
60
+ unpackedUserOperation.paymasterData || "0x"
61
+ ])
62
+ : "0x";
63
+ }
64
+ export function unpackPaymasterAndData(paymasterAndData) {
65
+ if (paymasterAndData === "0x") {
66
+ return {
67
+ paymaster: null,
68
+ paymasterVerificationGasLimit: null,
69
+ paymasterPostOpGasLimit: null,
70
+ paymasterData: null
71
+ };
72
+ }
73
+ return {
74
+ paymaster: getAddress(slice(paymasterAndData, 0, 20)),
75
+ paymasterVerificationGasLimit: BigInt(slice(paymasterAndData, 20, 36)),
76
+ paymasterPostOpGasLimit: BigInt(slice(paymasterAndData, 36, 52)),
77
+ paymasterData: slice(paymasterAndData, 52)
78
+ };
79
+ }
80
+ export const getPackedUserOperation = (userOperation) => {
81
+ return {
82
+ sender: userOperation.sender,
83
+ nonce: userOperation.nonce,
84
+ initCode: getInitCode(userOperation),
85
+ callData: userOperation.callData,
86
+ accountGasLimits: getAccountGasLimits(userOperation),
87
+ preVerificationGas: userOperation.preVerificationGas,
88
+ gasFees: getGasLimits(userOperation),
89
+ paymasterAndData: getPaymasterAndData(userOperation),
90
+ signature: userOperation.signature
91
+ };
92
+ };
93
+ //# sourceMappingURL=getPackedUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackedUserOperation.js","sourceRoot":"","sources":["../../utils/getPackedUserOperation.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,6 @@ export function parseAccount(account) {
13
13
  return account;
14
14
  }
15
15
  import { ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07, getEntryPointVersion } from "./getEntryPointVersion.js";
16
- export { transactionReceiptStatus, deepHexlify, getAction, getUserOperationHash, getRequiredPrefund, walletClientToSmartAccountSigner, signUserOperationHashWithECDSA, AccountOrClientNotFoundError, isSmartAccountDeployed, providerToSmartAccountSigner, getAddressFromInitCodeOrPaymasterAndData, getEntryPointVersion, ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07 };
16
+ import { getPackedUserOperation } from "./getPackedUserOperation.js";
17
+ export { transactionReceiptStatus, deepHexlify, getAction, getUserOperationHash, getRequiredPrefund, walletClientToSmartAccountSigner, signUserOperationHashWithECDSA, AccountOrClientNotFoundError, isSmartAccountDeployed, providerToSmartAccountSigner, getAddressFromInitCodeOrPaymasterAndData, getPackedUserOperation, getEntryPointVersion, ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07 };
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,wCAAwC,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EAEH,kBAAkB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEH,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EACH,4BAA4B,EAE5B,8BAA8B,EACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAA;AAErF,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;AACD,OAAO,EACH,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAGhC,8BAA8B,EAE9B,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,wCAAwC,EACxC,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACzB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,wCAAwC,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EAEH,kBAAkB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEH,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EACH,4BAA4B,EAE5B,8BAA8B,EACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAA;AAErF,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;AACD,OAAO,EACH,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAGhC,8BAA8B,EAE9B,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,wCAAwC,EACxC,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACzB,CAAA"}
@@ -5,6 +5,7 @@ import type { EntryPoint } from "./entrypoint";
5
5
  import type { UserOperation } from "./userOperation";
6
6
  export type { UserOperation };
7
7
  export type { EntryPointVersion, ENTRYPOINT_ADDRESS_V06_TYPE, ENTRYPOINT_ADDRESS_V07_TYPE, GetEntryPointVersion, EntryPoint } from "./entrypoint";
8
+ export type { PackedUserOperation } from "./userOperation";
8
9
  export type GetAccountParameterWithClient<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends Account | undefined = Account | undefined> = IsUndefined<TAccount> extends true ? {
9
10
  account: Account;
10
11
  client?: Client<TTransport, TChain, TAccount>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,CAAA;AAC7B,YAAY,EACR,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,UAAU,EACb,MAAM,cAAc,CAAA;AAErB,MAAM,MAAM,6BAA6B,CACrC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IAC1D,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GACnE;IAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEzE,MAAM,MAAM,mBAAmB,CAC3B,UAAU,SAAS,UAAU,EAC7B,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAChC;IAAE,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CAAE,GACrC;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CAAE,CAAA;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAG9E,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,GACvD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,KAAK,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,CAAA;AAC7B,YAAY,EACR,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,UAAU,EACb,MAAM,cAAc,CAAA;AAErB,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,MAAM,MAAM,6BAA6B,CACrC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,IAC1D,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;CAAE,GACnE;IAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEzE,MAAM,MAAM,mBAAmB,CAC3B,UAAU,SAAS,UAAU,EAC7B,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAChC;IAAE,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CAAE,GACrC;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;CAAE,CAAA;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAG9E,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,GACvD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,KAAK,CAAA"}
@@ -76,4 +76,18 @@ export type UserOperation<entryPointVersion extends EntryPointVersion> = entryPo
76
76
  initCode?: never;
77
77
  paymasterAndData?: never;
78
78
  };
79
+ export type Hex32 = `0x${string & {
80
+ length: 64;
81
+ }}`;
82
+ export type PackedUserOperation = {
83
+ sender: Address;
84
+ nonce: bigint;
85
+ initCode: Hex;
86
+ callData: Hex;
87
+ accountGasLimits: Hex32;
88
+ preVerificationGas: bigint;
89
+ gasFees: Hex32;
90
+ paymasterAndData: Hex;
91
+ signature: Hex;
92
+ };
79
93
  //# sourceMappingURL=userOperation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userOperation.d.ts","sourceRoot":"","sources":["../../types/userOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userOperation.d.ts","sourceRoot":"","sources":["../../types/userOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type Hex } from "viem";
2
+ import type { UserOperation } from "../types/userOperation";
3
+ import type { PackedUserOperation } from "../types/userOperation";
4
+ export declare function getInitCode(unpackedUserOperation: UserOperation<"v0.7">): `0x${string}`;
5
+ export declare function unPackInitCode(initCode: Hex): {
6
+ factory: null;
7
+ factoryData: null;
8
+ } | {
9
+ factory: `0x${string}`;
10
+ factoryData: `0x${string}`;
11
+ };
12
+ export declare function getAccountGasLimits(unpackedUserOperation: UserOperation<"v0.7">): `0x${string & {
13
+ length: 64;
14
+ }}`;
15
+ export declare function unpackAccountGasLimits(accountGasLimits: Hex): {
16
+ verificationGasLimit: bigint;
17
+ callGasLimit: bigint;
18
+ };
19
+ export declare function getGasLimits(unpackedUserOperation: UserOperation<"v0.7">): `0x${string & {
20
+ length: 64;
21
+ }}`;
22
+ export declare function unpackGasLimits(gasLimits: Hex): {
23
+ maxPriorityFeePerGas: bigint;
24
+ maxFeePerGas: bigint;
25
+ };
26
+ export declare function getPaymasterAndData(unpackedUserOperation: UserOperation<"v0.7">): `0x${string}`;
27
+ export declare function unpackPaymasterAndData(paymasterAndData: Hex): {
28
+ paymaster: null;
29
+ paymasterVerificationGasLimit: null;
30
+ paymasterPostOpGasLimit: null;
31
+ paymasterData: null;
32
+ } | {
33
+ paymaster: `0x${string}`;
34
+ paymasterVerificationGasLimit: bigint;
35
+ paymasterPostOpGasLimit: bigint;
36
+ paymasterData: `0x${string}`;
37
+ };
38
+ export declare const getPackedUserOperation: (userOperation: UserOperation<"v0.7">) => PackedUserOperation;
39
+ //# sourceMappingURL=getPackedUserOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPackedUserOperation.d.ts","sourceRoot":"","sources":["../../utils/getPackedUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAyC,MAAM,MAAM,CAAA;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAS,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAExE,wBAAgB,WAAW,CAAC,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,iBAOvE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG;;;;;;EAW3C;AAED,wBAAgB,mBAAmB,CAC/B,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC;;IAQ/C;AAED,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,GAAG;;;EAK3D;AAED,wBAAgB,YAAY,CAAC,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC;;IAOxE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG;;;EAK7C;AAED,wBAAgB,mBAAmB,CAC/B,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,iBAmB/C;AAED,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,GAAG;;;;;;;;;;EAe3D;AAED,eAAO,MAAM,sBAAsB,kBAChB,cAAc,MAAM,CAAC,KACrC,mBAYF,CAAA"}
@@ -10,5 +10,6 @@ import { AccountOrClientNotFoundError, type SignUserOperationHashWithECDSAParams
10
10
  import { walletClientToSmartAccountSigner } from "./walletClientToSmartAccountSigner";
11
11
  export declare function parseAccount(account: Address | Account): Account;
12
12
  import { ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07, getEntryPointVersion } from "./getEntryPointVersion";
13
- export { transactionReceiptStatus, deepHexlify, getAction, getUserOperationHash, getRequiredPrefund, walletClientToSmartAccountSigner, type GetRequiredPrefundReturnType, type GetUserOperationHashParams, signUserOperationHashWithECDSA, type SignUserOperationHashWithECDSAParams, AccountOrClientNotFoundError, isSmartAccountDeployed, providerToSmartAccountSigner, getAddressFromInitCodeOrPaymasterAndData, getEntryPointVersion, ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07 };
13
+ import { getPackedUserOperation } from "./getPackedUserOperation";
14
+ export { transactionReceiptStatus, deepHexlify, getAction, getUserOperationHash, getRequiredPrefund, walletClientToSmartAccountSigner, type GetRequiredPrefundReturnType, type GetUserOperationHashParams, signUserOperationHashWithECDSA, type SignUserOperationHashWithECDSAParams, AccountOrClientNotFoundError, isSmartAccountDeployed, providerToSmartAccountSigner, getAddressFromInitCodeOrPaymasterAndData, getPackedUserOperation, getEntryPointVersion, ENTRYPOINT_ADDRESS_V06, ENTRYPOINT_ADDRESS_V07 };
14
15
  //# 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,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,wCAAwC,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EACH,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,0BAA0B,EAC/B,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EACH,4BAA4B,EAC5B,KAAK,oCAAoC,EACzC,8BAA8B,EACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAA;AAErF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAIhE;AACD,OAAO,EACH,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAChC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,KAAK,oCAAoC,EACzC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,wCAAwC,EACxC,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACzB,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,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,wCAAwC,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EACH,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,0BAA0B,EAC/B,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EACH,4BAA4B,EAC5B,KAAK,oCAAoC,EACzC,8BAA8B,EACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAA;AAErF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAIhE;AACD,OAAO,EACH,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAChC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,8BAA8B,EAC9B,KAAK,oCAAoC,EACzC,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,wCAAwC,EACxC,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACzB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permissionless",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "author": "Pimlico",
5
5
  "homepage": "https://docs.pimlico.io/permissionless",
6
6
  "repository": "github:pimlicolabs/permissionless.js",
package/types/index.ts CHANGED
@@ -12,6 +12,8 @@ export type {
12
12
  EntryPoint
13
13
  } from "./entrypoint"
14
14
 
15
+ export type { PackedUserOperation } from "./userOperation"
16
+
15
17
  export type GetAccountParameterWithClient<
16
18
  TTransport extends Transport = Transport,
17
19
  TChain extends Chain | undefined = Chain | undefined,
@@ -86,3 +86,17 @@ export type UserOperation<entryPointVersion extends EntryPointVersion> =
86
86
  initCode?: never
87
87
  paymasterAndData?: never
88
88
  }
89
+
90
+ export type Hex32 = `0x${string & { length: 64 }}`
91
+
92
+ export type PackedUserOperation = {
93
+ sender: Address
94
+ nonce: bigint
95
+ initCode: Hex
96
+ callData: Hex
97
+ accountGasLimits: Hex32
98
+ preVerificationGas: bigint
99
+ gasFees: Hex32
100
+ paymasterAndData: Hex
101
+ signature: Hex
102
+ }
@@ -0,0 +1,114 @@
1
+ import { type Hex, concat, getAddress, pad, slice, toHex } from "viem"
2
+ import type { UserOperation } from "../types/userOperation"
3
+ import type { Hex32, PackedUserOperation } from "../types/userOperation"
4
+
5
+ export function getInitCode(unpackedUserOperation: UserOperation<"v0.7">) {
6
+ return unpackedUserOperation.factory
7
+ ? concat([
8
+ unpackedUserOperation.factory,
9
+ unpackedUserOperation.factoryData || ("0x" as Hex)
10
+ ])
11
+ : "0x"
12
+ }
13
+
14
+ export function unPackInitCode(initCode: Hex) {
15
+ if (initCode === "0x") {
16
+ return {
17
+ factory: null,
18
+ factoryData: null
19
+ }
20
+ }
21
+ return {
22
+ factory: getAddress(slice(initCode, 0, 20)),
23
+ factoryData: slice(initCode, 20)
24
+ }
25
+ }
26
+
27
+ export function getAccountGasLimits(
28
+ unpackedUserOperation: UserOperation<"v0.7">
29
+ ) {
30
+ return concat([
31
+ pad(toHex(unpackedUserOperation.verificationGasLimit), {
32
+ size: 16
33
+ }),
34
+ pad(toHex(unpackedUserOperation.callGasLimit), { size: 16 })
35
+ ]) as Hex32
36
+ }
37
+
38
+ export function unpackAccountGasLimits(accountGasLimits: Hex) {
39
+ return {
40
+ verificationGasLimit: BigInt(slice(accountGasLimits, 0, 16)),
41
+ callGasLimit: BigInt(slice(accountGasLimits, 16))
42
+ }
43
+ }
44
+
45
+ export function getGasLimits(unpackedUserOperation: UserOperation<"v0.7">) {
46
+ return concat([
47
+ pad(toHex(unpackedUserOperation.maxPriorityFeePerGas), {
48
+ size: 16
49
+ }),
50
+ pad(toHex(unpackedUserOperation.maxFeePerGas), { size: 16 })
51
+ ]) as Hex32
52
+ }
53
+
54
+ export function unpackGasLimits(gasLimits: Hex) {
55
+ return {
56
+ maxPriorityFeePerGas: BigInt(slice(gasLimits, 0, 16)),
57
+ maxFeePerGas: BigInt(slice(gasLimits, 16))
58
+ }
59
+ }
60
+
61
+ export function getPaymasterAndData(
62
+ unpackedUserOperation: UserOperation<"v0.7">
63
+ ) {
64
+ return unpackedUserOperation.paymaster
65
+ ? concat([
66
+ unpackedUserOperation.paymaster,
67
+ pad(
68
+ toHex(
69
+ unpackedUserOperation.paymasterVerificationGasLimit || 0n
70
+ ),
71
+ {
72
+ size: 16
73
+ }
74
+ ),
75
+ pad(toHex(unpackedUserOperation.paymasterPostOpGasLimit || 0n), {
76
+ size: 16
77
+ }),
78
+ unpackedUserOperation.paymasterData || ("0x" as Hex)
79
+ ])
80
+ : "0x"
81
+ }
82
+
83
+ export function unpackPaymasterAndData(paymasterAndData: Hex) {
84
+ if (paymasterAndData === "0x") {
85
+ return {
86
+ paymaster: null,
87
+ paymasterVerificationGasLimit: null,
88
+ paymasterPostOpGasLimit: null,
89
+ paymasterData: null
90
+ }
91
+ }
92
+ return {
93
+ paymaster: getAddress(slice(paymasterAndData, 0, 20)),
94
+ paymasterVerificationGasLimit: BigInt(slice(paymasterAndData, 20, 36)),
95
+ paymasterPostOpGasLimit: BigInt(slice(paymasterAndData, 36, 52)),
96
+ paymasterData: slice(paymasterAndData, 52)
97
+ }
98
+ }
99
+
100
+ export const getPackedUserOperation = (
101
+ userOperation: UserOperation<"v0.7">
102
+ ): PackedUserOperation => {
103
+ return {
104
+ sender: userOperation.sender,
105
+ nonce: userOperation.nonce,
106
+ initCode: getInitCode(userOperation),
107
+ callData: userOperation.callData,
108
+ accountGasLimits: getAccountGasLimits(userOperation),
109
+ preVerificationGas: userOperation.preVerificationGas,
110
+ gasFees: getGasLimits(userOperation),
111
+ paymasterAndData: getPaymasterAndData(userOperation),
112
+ signature: userOperation.signature
113
+ }
114
+ }
package/utils/index.ts CHANGED
@@ -30,6 +30,8 @@ import {
30
30
  getEntryPointVersion
31
31
  } from "./getEntryPointVersion"
32
32
 
33
+ import { getPackedUserOperation } from "./getPackedUserOperation"
34
+
33
35
  export {
34
36
  transactionReceiptStatus,
35
37
  deepHexlify,
@@ -45,6 +47,7 @@ export {
45
47
  isSmartAccountDeployed,
46
48
  providerToSmartAccountSigner,
47
49
  getAddressFromInitCodeOrPaymasterAndData,
50
+ getPackedUserOperation,
48
51
  getEntryPointVersion,
49
52
  ENTRYPOINT_ADDRESS_V06,
50
53
  ENTRYPOINT_ADDRESS_V07