@pimlico/alto 0.0.0-main.20250117T174933 → 0.0.0-main.20250120T135454

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.
Files changed (101) hide show
  1. package/esm/cli/alto.js +1 -3
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +340 -358
  4. package/esm/cli/config/bundler.js +0 -5
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.d.ts +1 -2
  7. package/esm/cli/config/options.js +0 -12
  8. package/esm/cli/config/options.js.map +1 -1
  9. package/esm/cli/setupServer.js +3 -16
  10. package/esm/cli/setupServer.js.map +1 -1
  11. package/esm/executor/executor.d.ts +3 -11
  12. package/esm/executor/executor.js +38 -255
  13. package/esm/executor/executor.js.map +1 -1
  14. package/esm/executor/executorManager.d.ts +1 -1
  15. package/esm/executor/executorManager.js +2 -10
  16. package/esm/executor/executorManager.js.map +1 -1
  17. package/esm/executor/utils.d.ts +7 -17
  18. package/esm/executor/utils.js +25 -62
  19. package/esm/executor/utils.js.map +1 -1
  20. package/esm/handlers/index.d.ts +0 -1
  21. package/esm/handlers/index.js +0 -1
  22. package/esm/handlers/index.js.map +1 -1
  23. package/esm/rpc/rpcHandler.d.ts +3 -7
  24. package/esm/rpc/rpcHandler.js +2 -72
  25. package/esm/rpc/rpcHandler.js.map +1 -1
  26. package/esm/types/contracts/index.d.ts +0 -4
  27. package/esm/types/contracts/index.js +0 -4
  28. package/esm/types/contracts/index.js.map +1 -1
  29. package/esm/types/mempool.d.ts +2 -4
  30. package/esm/types/mempool.js +0 -6
  31. package/esm/types/mempool.js.map +1 -1
  32. package/esm/types/schemas.d.ts +224 -249
  33. package/esm/types/schemas.js +0 -10
  34. package/esm/types/schemas.js.map +1 -1
  35. package/esm/utils/userop.d.ts +1 -1
  36. package/lib/cli/alto.js +0 -2
  37. package/lib/cli/alto.js.map +1 -1
  38. package/lib/cli/config/bundler.d.ts +340 -358
  39. package/lib/cli/config/bundler.js +1 -6
  40. package/lib/cli/config/bundler.js.map +1 -1
  41. package/lib/cli/config/options.d.ts +1 -2
  42. package/lib/cli/config/options.js +1 -13
  43. package/lib/cli/config/options.js.map +1 -1
  44. package/lib/cli/setupServer.js +2 -15
  45. package/lib/cli/setupServer.js.map +1 -1
  46. package/lib/executor/executor.d.ts +3 -11
  47. package/lib/executor/executor.js +37 -254
  48. package/lib/executor/executor.js.map +1 -1
  49. package/lib/executor/executorManager.d.ts +1 -1
  50. package/lib/executor/executorManager.js +1 -9
  51. package/lib/executor/executorManager.js.map +1 -1
  52. package/lib/executor/utils.d.ts +7 -17
  53. package/lib/executor/utils.js +25 -63
  54. package/lib/executor/utils.js.map +1 -1
  55. package/lib/handlers/index.d.ts +0 -1
  56. package/lib/handlers/index.js +0 -1
  57. package/lib/handlers/index.js.map +1 -1
  58. package/lib/rpc/rpcHandler.d.ts +3 -7
  59. package/lib/rpc/rpcHandler.js +1 -71
  60. package/lib/rpc/rpcHandler.js.map +1 -1
  61. package/lib/types/contracts/index.d.ts +0 -4
  62. package/lib/types/contracts/index.js +0 -4
  63. package/lib/types/contracts/index.js.map +1 -1
  64. package/lib/types/mempool.d.ts +2 -4
  65. package/lib/types/mempool.js +1 -8
  66. package/lib/types/mempool.js.map +1 -1
  67. package/lib/types/schemas.d.ts +224 -249
  68. package/lib/types/schemas.js +0 -10
  69. package/lib/types/schemas.js.map +1 -1
  70. package/lib/utils/userop.d.ts +1 -1
  71. package/package.json +1 -1
  72. package/esm/handlers/compressionHandler.d.ts +0 -11
  73. package/esm/handlers/compressionHandler.js +0 -39
  74. package/esm/handlers/compressionHandler.js.map +0 -1
  75. package/esm/types/contracts/BundleBulker.d.ts +0 -120
  76. package/esm/types/contracts/BundleBulker.js +0 -157
  77. package/esm/types/contracts/BundleBulker.js.map +0 -1
  78. package/esm/types/contracts/IOpInflator.d.ts +0 -61
  79. package/esm/types/contracts/IOpInflator.js +0 -80
  80. package/esm/types/contracts/IOpInflator.js.map +0 -1
  81. package/esm/types/contracts/Inflator.d.ts +0 -65
  82. package/esm/types/contracts/Inflator.js +0 -84
  83. package/esm/types/contracts/Inflator.js.map +0 -1
  84. package/esm/types/contracts/PerOpInflator.d.ts +0 -176
  85. package/esm/types/contracts/PerOpInflator.js +0 -229
  86. package/esm/types/contracts/PerOpInflator.js.map +0 -1
  87. package/lib/handlers/compressionHandler.d.ts +0 -11
  88. package/lib/handlers/compressionHandler.js +0 -43
  89. package/lib/handlers/compressionHandler.js.map +0 -1
  90. package/lib/types/contracts/BundleBulker.d.ts +0 -120
  91. package/lib/types/contracts/BundleBulker.js +0 -160
  92. package/lib/types/contracts/BundleBulker.js.map +0 -1
  93. package/lib/types/contracts/IOpInflator.d.ts +0 -61
  94. package/lib/types/contracts/IOpInflator.js +0 -83
  95. package/lib/types/contracts/IOpInflator.js.map +0 -1
  96. package/lib/types/contracts/Inflator.d.ts +0 -65
  97. package/lib/types/contracts/Inflator.js +0 -87
  98. package/lib/types/contracts/Inflator.js.map +0 -1
  99. package/lib/types/contracts/PerOpInflator.d.ts +0 -176
  100. package/lib/types/contracts/PerOpInflator.js +0 -232
  101. package/lib/types/contracts/PerOpInflator.js.map +0 -1
@@ -1,176 +0,0 @@
1
- export declare const PerOpInflatorAbi: readonly [{
2
- readonly type: "constructor";
3
- readonly inputs: readonly [{
4
- readonly name: "_owner";
5
- readonly type: "address";
6
- readonly internalType: "address";
7
- }];
8
- readonly stateMutability: "nonpayable";
9
- }, {
10
- readonly type: "function";
11
- readonly name: "beneficiary";
12
- readonly inputs: readonly [];
13
- readonly outputs: readonly [{
14
- readonly name: "";
15
- readonly type: "address";
16
- readonly internalType: "address payable";
17
- }];
18
- readonly stateMutability: "view";
19
- }, {
20
- readonly type: "function";
21
- readonly name: "idToInflator";
22
- readonly inputs: readonly [{
23
- readonly name: "";
24
- readonly type: "uint32";
25
- readonly internalType: "uint32";
26
- }];
27
- readonly outputs: readonly [{
28
- readonly name: "";
29
- readonly type: "address";
30
- readonly internalType: "contract IOpInflator";
31
- }];
32
- readonly stateMutability: "view";
33
- }, {
34
- readonly type: "function";
35
- readonly name: "inflate";
36
- readonly inputs: readonly [{
37
- readonly name: "compressed";
38
- readonly type: "bytes";
39
- readonly internalType: "bytes";
40
- }];
41
- readonly outputs: readonly [{
42
- readonly name: "";
43
- readonly type: "tuple[]";
44
- readonly internalType: "struct UserOperation[]";
45
- readonly components: readonly [{
46
- readonly name: "sender";
47
- readonly type: "address";
48
- readonly internalType: "address";
49
- }, {
50
- readonly name: "nonce";
51
- readonly type: "uint256";
52
- readonly internalType: "uint256";
53
- }, {
54
- readonly name: "initCode";
55
- readonly type: "bytes";
56
- readonly internalType: "bytes";
57
- }, {
58
- readonly name: "callData";
59
- readonly type: "bytes";
60
- readonly internalType: "bytes";
61
- }, {
62
- readonly name: "callGasLimit";
63
- readonly type: "uint256";
64
- readonly internalType: "uint256";
65
- }, {
66
- readonly name: "verificationGasLimit";
67
- readonly type: "uint256";
68
- readonly internalType: "uint256";
69
- }, {
70
- readonly name: "preVerificationGas";
71
- readonly type: "uint256";
72
- readonly internalType: "uint256";
73
- }, {
74
- readonly name: "maxFeePerGas";
75
- readonly type: "uint256";
76
- readonly internalType: "uint256";
77
- }, {
78
- readonly name: "maxPriorityFeePerGas";
79
- readonly type: "uint256";
80
- readonly internalType: "uint256";
81
- }, {
82
- readonly name: "paymasterAndData";
83
- readonly type: "bytes";
84
- readonly internalType: "bytes";
85
- }, {
86
- readonly name: "signature";
87
- readonly type: "bytes";
88
- readonly internalType: "bytes";
89
- }];
90
- }, {
91
- readonly name: "";
92
- readonly type: "address";
93
- readonly internalType: "address payable";
94
- }];
95
- readonly stateMutability: "view";
96
- }, {
97
- readonly type: "function";
98
- readonly name: "inflatorToID";
99
- readonly inputs: readonly [{
100
- readonly name: "";
101
- readonly type: "address";
102
- readonly internalType: "contract IOpInflator";
103
- }];
104
- readonly outputs: readonly [{
105
- readonly name: "";
106
- readonly type: "uint32";
107
- readonly internalType: "uint32";
108
- }];
109
- readonly stateMutability: "view";
110
- }, {
111
- readonly type: "function";
112
- readonly name: "owner";
113
- readonly inputs: readonly [];
114
- readonly outputs: readonly [{
115
- readonly name: "";
116
- readonly type: "address";
117
- readonly internalType: "address";
118
- }];
119
- readonly stateMutability: "view";
120
- }, {
121
- readonly type: "function";
122
- readonly name: "registerOpInflator";
123
- readonly inputs: readonly [{
124
- readonly name: "inflatorId";
125
- readonly type: "uint32";
126
- readonly internalType: "uint32";
127
- }, {
128
- readonly name: "inflator";
129
- readonly type: "address";
130
- readonly internalType: "contract IOpInflator";
131
- }];
132
- readonly outputs: readonly [];
133
- readonly stateMutability: "nonpayable";
134
- }, {
135
- readonly type: "function";
136
- readonly name: "renounceOwnership";
137
- readonly inputs: readonly [];
138
- readonly outputs: readonly [];
139
- readonly stateMutability: "nonpayable";
140
- }, {
141
- readonly type: "function";
142
- readonly name: "setBeneficiary";
143
- readonly inputs: readonly [{
144
- readonly name: "_beneficiary";
145
- readonly type: "address";
146
- readonly internalType: "address payable";
147
- }];
148
- readonly outputs: readonly [];
149
- readonly stateMutability: "nonpayable";
150
- }, {
151
- readonly type: "function";
152
- readonly name: "transferOwnership";
153
- readonly inputs: readonly [{
154
- readonly name: "newOwner";
155
- readonly type: "address";
156
- readonly internalType: "address";
157
- }];
158
- readonly outputs: readonly [];
159
- readonly stateMutability: "nonpayable";
160
- }, {
161
- readonly type: "event";
162
- readonly name: "OwnershipTransferred";
163
- readonly inputs: readonly [{
164
- readonly name: "previousOwner";
165
- readonly type: "address";
166
- readonly indexed: true;
167
- readonly internalType: "address";
168
- }, {
169
- readonly name: "newOwner";
170
- readonly type: "address";
171
- readonly indexed: true;
172
- readonly internalType: "address";
173
- }];
174
- readonly anonymous: false;
175
- }];
176
- //# sourceMappingURL=PerOpInflator.d.ts.map
@@ -1,232 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PerOpInflatorAbi = void 0;
4
- exports.PerOpInflatorAbi = [
5
- {
6
- type: "constructor",
7
- inputs: [
8
- {
9
- name: "_owner",
10
- type: "address",
11
- internalType: "address"
12
- }
13
- ],
14
- stateMutability: "nonpayable"
15
- },
16
- {
17
- type: "function",
18
- name: "beneficiary",
19
- inputs: [],
20
- outputs: [
21
- {
22
- name: "",
23
- type: "address",
24
- internalType: "address payable"
25
- }
26
- ],
27
- stateMutability: "view"
28
- },
29
- {
30
- type: "function",
31
- name: "idToInflator",
32
- inputs: [
33
- {
34
- name: "",
35
- type: "uint32",
36
- internalType: "uint32"
37
- }
38
- ],
39
- outputs: [
40
- {
41
- name: "",
42
- type: "address",
43
- internalType: "contract IOpInflator"
44
- }
45
- ],
46
- stateMutability: "view"
47
- },
48
- {
49
- type: "function",
50
- name: "inflate",
51
- inputs: [
52
- {
53
- name: "compressed",
54
- type: "bytes",
55
- internalType: "bytes"
56
- }
57
- ],
58
- outputs: [
59
- {
60
- name: "",
61
- type: "tuple[]",
62
- internalType: "struct UserOperation[]",
63
- components: [
64
- {
65
- name: "sender",
66
- type: "address",
67
- internalType: "address"
68
- },
69
- {
70
- name: "nonce",
71
- type: "uint256",
72
- internalType: "uint256"
73
- },
74
- {
75
- name: "initCode",
76
- type: "bytes",
77
- internalType: "bytes"
78
- },
79
- {
80
- name: "callData",
81
- type: "bytes",
82
- internalType: "bytes"
83
- },
84
- {
85
- name: "callGasLimit",
86
- type: "uint256",
87
- internalType: "uint256"
88
- },
89
- {
90
- name: "verificationGasLimit",
91
- type: "uint256",
92
- internalType: "uint256"
93
- },
94
- {
95
- name: "preVerificationGas",
96
- type: "uint256",
97
- internalType: "uint256"
98
- },
99
- {
100
- name: "maxFeePerGas",
101
- type: "uint256",
102
- internalType: "uint256"
103
- },
104
- {
105
- name: "maxPriorityFeePerGas",
106
- type: "uint256",
107
- internalType: "uint256"
108
- },
109
- {
110
- name: "paymasterAndData",
111
- type: "bytes",
112
- internalType: "bytes"
113
- },
114
- {
115
- name: "signature",
116
- type: "bytes",
117
- internalType: "bytes"
118
- }
119
- ]
120
- },
121
- {
122
- name: "",
123
- type: "address",
124
- internalType: "address payable"
125
- }
126
- ],
127
- stateMutability: "view"
128
- },
129
- {
130
- type: "function",
131
- name: "inflatorToID",
132
- inputs: [
133
- {
134
- name: "",
135
- type: "address",
136
- internalType: "contract IOpInflator"
137
- }
138
- ],
139
- outputs: [
140
- {
141
- name: "",
142
- type: "uint32",
143
- internalType: "uint32"
144
- }
145
- ],
146
- stateMutability: "view"
147
- },
148
- {
149
- type: "function",
150
- name: "owner",
151
- inputs: [],
152
- outputs: [
153
- {
154
- name: "",
155
- type: "address",
156
- internalType: "address"
157
- }
158
- ],
159
- stateMutability: "view"
160
- },
161
- {
162
- type: "function",
163
- name: "registerOpInflator",
164
- inputs: [
165
- {
166
- name: "inflatorId",
167
- type: "uint32",
168
- internalType: "uint32"
169
- },
170
- {
171
- name: "inflator",
172
- type: "address",
173
- internalType: "contract IOpInflator"
174
- }
175
- ],
176
- outputs: [],
177
- stateMutability: "nonpayable"
178
- },
179
- {
180
- type: "function",
181
- name: "renounceOwnership",
182
- inputs: [],
183
- outputs: [],
184
- stateMutability: "nonpayable"
185
- },
186
- {
187
- type: "function",
188
- name: "setBeneficiary",
189
- inputs: [
190
- {
191
- name: "_beneficiary",
192
- type: "address",
193
- internalType: "address payable"
194
- }
195
- ],
196
- outputs: [],
197
- stateMutability: "nonpayable"
198
- },
199
- {
200
- type: "function",
201
- name: "transferOwnership",
202
- inputs: [
203
- {
204
- name: "newOwner",
205
- type: "address",
206
- internalType: "address"
207
- }
208
- ],
209
- outputs: [],
210
- stateMutability: "nonpayable"
211
- },
212
- {
213
- type: "event",
214
- name: "OwnershipTransferred",
215
- inputs: [
216
- {
217
- name: "previousOwner",
218
- type: "address",
219
- indexed: true,
220
- internalType: "address"
221
- },
222
- {
223
- name: "newOwner",
224
- type: "address",
225
- indexed: true,
226
- internalType: "address"
227
- }
228
- ],
229
- anonymous: false
230
- }
231
- ];
232
- //# sourceMappingURL=PerOpInflator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerOpInflator.js","sourceRoot":"","sources":["../../../types/contracts/PerOpInflator.ts"],"names":[],"mappings":"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"}