@ensuro/account-abstraction 0.0.5 → 0.2.0

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.
@@ -0,0 +1,599 @@
1
+ {
2
+ "_format": "hh3-artifact-1",
3
+ "contractName": "ERC2771ForwarderAccount",
4
+ "sourceName": "contracts/ERC2771ForwarderAccount.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IEntryPoint",
10
+ "name": "anEntryPoint",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "target",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "name": "AddressEmptyCode",
26
+ "type": "error"
27
+ },
28
+ {
29
+ "inputs": [],
30
+ "name": "ECDSAInvalidSignature",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "uint256",
37
+ "name": "length",
38
+ "type": "uint256"
39
+ }
40
+ ],
41
+ "name": "ECDSAInvalidSignatureLength",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "bytes32",
48
+ "name": "s",
49
+ "type": "bytes32"
50
+ }
51
+ ],
52
+ "name": "ECDSAInvalidSignatureS",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "implementation",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ERC1967InvalidImplementation",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ERC1967NonPayable",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "uint256",
75
+ "name": "index",
76
+ "type": "uint256"
77
+ },
78
+ {
79
+ "internalType": "bytes",
80
+ "name": "error",
81
+ "type": "bytes"
82
+ }
83
+ ],
84
+ "name": "ExecuteError",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "FailedCall",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "uint256",
96
+ "name": "balance",
97
+ "type": "uint256"
98
+ },
99
+ {
100
+ "internalType": "uint256",
101
+ "name": "needed",
102
+ "type": "uint256"
103
+ }
104
+ ],
105
+ "name": "InsufficientBalance",
106
+ "type": "error"
107
+ },
108
+ {
109
+ "inputs": [],
110
+ "name": "InvalidCall",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [
115
+ {
116
+ "internalType": "contract ERC2771Context",
117
+ "name": "target",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "internalType": "address",
122
+ "name": "signer",
123
+ "type": "address"
124
+ }
125
+ ],
126
+ "name": "InvalidTarget",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "OnlyExecuteUserOpAllowed",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "sender",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "RequiredEntryPointOrExecutor",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [],
147
+ "name": "UUPSUnauthorizedCallContext",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "bytes32",
154
+ "name": "slot",
155
+ "type": "bytes32"
156
+ }
157
+ ],
158
+ "name": "UUPSUnsupportedProxiableUUID",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "anonymous": false,
163
+ "inputs": [
164
+ {
165
+ "indexed": true,
166
+ "internalType": "address",
167
+ "name": "executor",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "indexed": true,
172
+ "internalType": "contract ERC2771Context",
173
+ "name": "target",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "ExecutorAdded",
178
+ "type": "event"
179
+ },
180
+ {
181
+ "anonymous": false,
182
+ "inputs": [
183
+ {
184
+ "indexed": true,
185
+ "internalType": "address",
186
+ "name": "executor",
187
+ "type": "address"
188
+ }
189
+ ],
190
+ "name": "ExecutorRemoved",
191
+ "type": "event"
192
+ },
193
+ {
194
+ "anonymous": false,
195
+ "inputs": [
196
+ {
197
+ "indexed": true,
198
+ "internalType": "address",
199
+ "name": "implementation",
200
+ "type": "address"
201
+ }
202
+ ],
203
+ "name": "Upgraded",
204
+ "type": "event"
205
+ },
206
+ {
207
+ "inputs": [],
208
+ "name": "UPGRADE_INTERFACE_VERSION",
209
+ "outputs": [
210
+ {
211
+ "internalType": "string",
212
+ "name": "",
213
+ "type": "string"
214
+ }
215
+ ],
216
+ "stateMutability": "view",
217
+ "type": "function"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "addDeposit",
222
+ "outputs": [],
223
+ "stateMutability": "payable",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "address",
230
+ "name": "executor",
231
+ "type": "address"
232
+ },
233
+ {
234
+ "internalType": "contract ERC2771Context",
235
+ "name": "target",
236
+ "type": "address"
237
+ }
238
+ ],
239
+ "name": "addExecutor",
240
+ "outputs": [],
241
+ "stateMutability": "nonpayable",
242
+ "type": "function"
243
+ },
244
+ {
245
+ "inputs": [],
246
+ "name": "entryPoint",
247
+ "outputs": [
248
+ {
249
+ "internalType": "contract IEntryPoint",
250
+ "name": "",
251
+ "type": "address"
252
+ }
253
+ ],
254
+ "stateMutability": "view",
255
+ "type": "function"
256
+ },
257
+ {
258
+ "inputs": [
259
+ {
260
+ "internalType": "address",
261
+ "name": "",
262
+ "type": "address"
263
+ },
264
+ {
265
+ "internalType": "uint256",
266
+ "name": "",
267
+ "type": "uint256"
268
+ },
269
+ {
270
+ "internalType": "bytes",
271
+ "name": "",
272
+ "type": "bytes"
273
+ }
274
+ ],
275
+ "name": "execute",
276
+ "outputs": [],
277
+ "stateMutability": "nonpayable",
278
+ "type": "function"
279
+ },
280
+ {
281
+ "inputs": [
282
+ {
283
+ "components": [
284
+ {
285
+ "internalType": "address",
286
+ "name": "target",
287
+ "type": "address"
288
+ },
289
+ {
290
+ "internalType": "uint256",
291
+ "name": "value",
292
+ "type": "uint256"
293
+ },
294
+ {
295
+ "internalType": "bytes",
296
+ "name": "data",
297
+ "type": "bytes"
298
+ }
299
+ ],
300
+ "internalType": "struct BaseAccount.Call[]",
301
+ "name": "",
302
+ "type": "tuple[]"
303
+ }
304
+ ],
305
+ "name": "executeBatch",
306
+ "outputs": [],
307
+ "stateMutability": "nonpayable",
308
+ "type": "function"
309
+ },
310
+ {
311
+ "inputs": [
312
+ {
313
+ "components": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "sender",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "internalType": "uint256",
321
+ "name": "nonce",
322
+ "type": "uint256"
323
+ },
324
+ {
325
+ "internalType": "bytes",
326
+ "name": "initCode",
327
+ "type": "bytes"
328
+ },
329
+ {
330
+ "internalType": "bytes",
331
+ "name": "callData",
332
+ "type": "bytes"
333
+ },
334
+ {
335
+ "internalType": "bytes32",
336
+ "name": "accountGasLimits",
337
+ "type": "bytes32"
338
+ },
339
+ {
340
+ "internalType": "uint256",
341
+ "name": "preVerificationGas",
342
+ "type": "uint256"
343
+ },
344
+ {
345
+ "internalType": "bytes32",
346
+ "name": "gasFees",
347
+ "type": "bytes32"
348
+ },
349
+ {
350
+ "internalType": "bytes",
351
+ "name": "paymasterAndData",
352
+ "type": "bytes"
353
+ },
354
+ {
355
+ "internalType": "bytes",
356
+ "name": "signature",
357
+ "type": "bytes"
358
+ }
359
+ ],
360
+ "internalType": "struct PackedUserOperation",
361
+ "name": "userOp",
362
+ "type": "tuple"
363
+ },
364
+ {
365
+ "internalType": "bytes32",
366
+ "name": "userOpHash",
367
+ "type": "bytes32"
368
+ }
369
+ ],
370
+ "name": "executeUserOp",
371
+ "outputs": [],
372
+ "stateMutability": "nonpayable",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [],
377
+ "name": "getDeposit",
378
+ "outputs": [
379
+ {
380
+ "internalType": "uint256",
381
+ "name": "",
382
+ "type": "uint256"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [],
390
+ "name": "getNonce",
391
+ "outputs": [
392
+ {
393
+ "internalType": "uint256",
394
+ "name": "",
395
+ "type": "uint256"
396
+ }
397
+ ],
398
+ "stateMutability": "view",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "inputs": [],
403
+ "name": "initialize",
404
+ "outputs": [],
405
+ "stateMutability": "nonpayable",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [],
410
+ "name": "proxiableUUID",
411
+ "outputs": [
412
+ {
413
+ "internalType": "bytes32",
414
+ "name": "",
415
+ "type": "bytes32"
416
+ }
417
+ ],
418
+ "stateMutability": "view",
419
+ "type": "function"
420
+ },
421
+ {
422
+ "inputs": [
423
+ {
424
+ "internalType": "address",
425
+ "name": "executor",
426
+ "type": "address"
427
+ }
428
+ ],
429
+ "name": "removeExecutor",
430
+ "outputs": [],
431
+ "stateMutability": "nonpayable",
432
+ "type": "function"
433
+ },
434
+ {
435
+ "inputs": [
436
+ {
437
+ "internalType": "address",
438
+ "name": "newImplementation",
439
+ "type": "address"
440
+ },
441
+ {
442
+ "internalType": "bytes",
443
+ "name": "data",
444
+ "type": "bytes"
445
+ }
446
+ ],
447
+ "name": "upgradeToAndCall",
448
+ "outputs": [],
449
+ "stateMutability": "payable",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [
454
+ {
455
+ "components": [
456
+ {
457
+ "internalType": "address",
458
+ "name": "sender",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "internalType": "uint256",
463
+ "name": "nonce",
464
+ "type": "uint256"
465
+ },
466
+ {
467
+ "internalType": "bytes",
468
+ "name": "initCode",
469
+ "type": "bytes"
470
+ },
471
+ {
472
+ "internalType": "bytes",
473
+ "name": "callData",
474
+ "type": "bytes"
475
+ },
476
+ {
477
+ "internalType": "bytes32",
478
+ "name": "accountGasLimits",
479
+ "type": "bytes32"
480
+ },
481
+ {
482
+ "internalType": "uint256",
483
+ "name": "preVerificationGas",
484
+ "type": "uint256"
485
+ },
486
+ {
487
+ "internalType": "bytes32",
488
+ "name": "gasFees",
489
+ "type": "bytes32"
490
+ },
491
+ {
492
+ "internalType": "bytes",
493
+ "name": "paymasterAndData",
494
+ "type": "bytes"
495
+ },
496
+ {
497
+ "internalType": "bytes",
498
+ "name": "signature",
499
+ "type": "bytes"
500
+ }
501
+ ],
502
+ "internalType": "struct PackedUserOperation",
503
+ "name": "userOp",
504
+ "type": "tuple"
505
+ },
506
+ {
507
+ "internalType": "bytes32",
508
+ "name": "userOpHash",
509
+ "type": "bytes32"
510
+ },
511
+ {
512
+ "internalType": "uint256",
513
+ "name": "missingAccountFunds",
514
+ "type": "uint256"
515
+ }
516
+ ],
517
+ "name": "validateUserOp",
518
+ "outputs": [
519
+ {
520
+ "internalType": "uint256",
521
+ "name": "validationData",
522
+ "type": "uint256"
523
+ }
524
+ ],
525
+ "stateMutability": "nonpayable",
526
+ "type": "function"
527
+ },
528
+ {
529
+ "inputs": [
530
+ {
531
+ "internalType": "address payable",
532
+ "name": "withdrawAddress",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "uint256",
537
+ "name": "amount",
538
+ "type": "uint256"
539
+ }
540
+ ],
541
+ "name": "withdrawDepositTo",
542
+ "outputs": [],
543
+ "stateMutability": "nonpayable",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "stateMutability": "payable",
548
+ "type": "receive"
549
+ }
550
+ ],
551
+ "bytecode": "0x60c060405230608052348015610013575f5ffd5b5060405161152838038061152883398101604081905261003291610043565b6001600160a01b031660a052610070565b5f60208284031215610053575f5ffd5b81516001600160a01b0381168114610069575f5ffd5b9392505050565b60805160a0516114666100c25f395f81816102510152818161036f015281816103eb015281816105d40152818161066901526106a301525f81816107a6015281816107cf015261090b01526114665ff3fe6080604052600436106100e7575f3560e01c80636267e75911610087578063b0d691fe11610057578063b0d691fe14610238578063b61d27f61461027b578063c399ec8814610295578063d087d288146102a9575f5ffd5b80636267e759146101b25780638129fc1c146101d15780638dd7712f146101dc578063ad3cb1cc146101fb575f5ffd5b80634a58db19116100c25780634a58db19146101645780634d44560d1461016c5780634f1ef2861461018b57806352d1902d1461019e575f5ffd5b806319822f7c146100f2578063247884291461012457806334fcd5be14610145575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5061011161010c366004610f87565b6102bd565b6040519081526020015b60405180910390f35b34801561012f575f5ffd5b5061014361013e366004610fe5565b6102e2565b005b348015610150575f5ffd5b5061014361015f366004611000565b610354565b61014361036d565b348015610177575f5ffd5b50610143610186366004611071565b6103e9565b61014361019936600461113a565b61046d565b3480156101a9575f5ffd5b50610111610483565b3480156101bd575f5ffd5b506101436101cc366004611187565b61049e565b348015610143575f5ffd5b3480156101e7575f5ffd5b506101436101f63660046111be565b61051b565b348015610206575f5ffd5b5061022b604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161011b9190611200565b348015610243575f5ffd5b506040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016815260200161011b565b348015610286575f5ffd5b5061014361015f366004611235565b3480156102a0575f5ffd5b506101116105b5565b3480156102b4575f5ffd5b50610111610643565b5f6102c6610698565b6102d08484610710565b90506102db82610756565b9392505050565b6001600160a01b0381165f8181527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020819052604080832080546001600160a01b0319169055519092917f4a2cf608bfb427f53279ec7f0eadf48913b9346ccefc3af138dbdec14ea0907d91a25050565b604051630ad8c00b60e31b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060405163b760faf960e01b81523060048201526001600160a01b03919091169063b760faf99034906024015f604051808303818588803b1580156103d0575f5ffd5b505af11580156103e2573d5f5f3e3d5ffd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000060405163040b850f60e31b81526001600160a01b03848116600483015260248201849052919091169063205c2878906044015f604051808303815f87803b158015610453575f5ffd5b505af1158015610465573d5f5f3e3d5ffd5b505050505050565b61047561079b565b61047f828261083f565b5050565b5f61048c610900565b505f5160206114115f395f51905f5290565b6001600160a01b038281165f8181527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020819052604080832080546001600160a01b031916958716958617905551909392917f8a39fc6d5142759acd84b3e96ccde9187266ecb0df56c8ff08bf2aedc7c93c4791a3505050565b565b5f6105268383610949565b90505f6105338484610a4d565b905061054281835f0151610ace565b825190829061057c5760405163f252a21160e01b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103e2825f015183604001518360405160200161059c9291906112ba565b6040516020818303038152906040528460200151610b0e565b6040516370a0823160e01b81523060048201525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561061a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e91906112e9565b905090565b604051631aab3f0d60e11b81523060048201525f60248201819052906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906335567e1a906044016105ff565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105195760405162461bcd60e51b815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e74000000006044820152606401610573565b5f5f61071c8484610949565b90505f6107298585610a4d565b905061073881835f0151610ace565b6107475760019250505061074d565b5f925050505b92915050565b50565b8015610753576040515f90339083908381818185875af1925050503d805f81146103e2576040519150601f19603f3d011682016040523d82523d5f602084013e6103e2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061082157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108155f5160206114115f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156105195760405163703e46dd60e11b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610899575060408051601f3d908101601f19168201909252610896918101906112e9565b60015b6108c157604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610573565b5f5160206114115f395f51905f5281146108f157604051632a87526960e21b815260048101829052602401610573565b6108fb8383610bda565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105195760405163703e46dd60e11b815260040160405180910390fd5b60408051606080820183525f80835260208301529181019190915260386109736060850185611300565b9050101580156109b65750638dd7712f60e01b6109936060850185611300565b6109a1916004915f9161134a565b6109aa91611371565b6001600160e01b031916145b6109d35760405163574b16a760e11b815260040160405180910390fd5b6109e06060840184611300565b6109ee91600490829061134a565b8101906109fb91906113a7565b604084015260208301526001600160a01b031680825261074d578051610a218484610a4d565b60405163f252a21160e01b81526001600160a01b03928316600482015291166024820152604401610573565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c829052603c8120610ac681610a8d610100870187611300565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c2f92505050565b949350505050565b6001600160a01b039182165f9081527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020526040902054821691161490565b606081471015610b3a5760405163cf47918160e01b815247600482015260248101839052604401610573565b5f610b46858486610c57565b9050808015610b6757505f3d1180610b6757505f856001600160a01b03163b115b15610b7c57610b74610c6c565b9150506102db565b8015610ba657604051639996b31560e01b81526001600160a01b0386166004820152602401610573565b3d15610bb957610bb4610c85565b610bd2565b60405163d6bda27560e01b815260040160405180910390fd5b509392505050565b610be382610c90565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610c27576108fb8282610cf3565b61047f610d75565b5f5f5f5f610c3d8686610d94565b925092509250610c4d8282610ddd565b5090949350505050565b5f5f5f83516020850186885af1949350505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b806001600160a01b03163b5f03610cc557604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610573565b5f5160206114115f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f610d008484610e95565b9050808015610d2157505f3d1180610d2157505f846001600160a01b03163b115b15610d3657610d2e610c6c565b91505061074d565b8015610d6057604051639996b31560e01b81526001600160a01b0385166004820152602401610573565b3d15610bb957610d6e610c85565b5092915050565b34156105195760405163b398979f60e01b815260040160405180910390fd5b5f5f5f8351604103610dcb576020840151604085015160608601515f1a610dbd88828585610ea8565b955095509550505050610dd6565b505081515f91506002905b9250925092565b5f826003811115610df057610df06113fc565b03610df9575050565b6001826003811115610e0d57610e0d6113fc565b03610e2b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610e3f57610e3f6113fc565b03610e605760405163fce698f760e01b815260048101829052602401610573565b6003826003811115610e7457610e746113fc565b0361047f576040516335e2f38360e21b815260048101829052602401610573565b5f5f5f835160208501865af49392505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610ee157505f91506003905082610f66565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610f32573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610f5d57505f925060019150829050610f66565b92505f91508190505b9450945094915050565b5f6101208284031215610f81575f5ffd5b50919050565b5f5f5f60608486031215610f99575f5ffd5b833567ffffffffffffffff811115610faf575f5ffd5b610fbb86828701610f70565b9660208601359650604090950135949350505050565b6001600160a01b0381168114610753575f5ffd5b5f60208284031215610ff5575f5ffd5b81356102db81610fd1565b5f5f60208385031215611011575f5ffd5b823567ffffffffffffffff811115611027575f5ffd5b8301601f81018513611037575f5ffd5b803567ffffffffffffffff81111561104d575f5ffd5b8560208260051b8401011115611061575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611082575f5ffd5b823561108d81610fd1565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126110be575f5ffd5b813567ffffffffffffffff8111156110d8576110d861109b565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156111075761110761109b565b60405281815283820160200185101561111e575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f6040838503121561114b575f5ffd5b823561115681610fd1565b9150602083013567ffffffffffffffff811115611171575f5ffd5b61117d858286016110af565b9150509250929050565b5f5f60408385031215611198575f5ffd5b82356111a381610fd1565b915060208301356111b381610fd1565b809150509250929050565b5f5f604083850312156111cf575f5ffd5b823567ffffffffffffffff8111156111e5575f5ffd5b6111f185828601610f70565b95602094909401359450505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215611248575f5ffd5b843561125381610fd1565b935060208501359250604085013567ffffffffffffffff811115611275575f5ffd5b8501601f81018713611285575f5ffd5b803567ffffffffffffffff81111561129b575f5ffd5b8760208284010111156112ac575f5ffd5b949793965060200194505050565b5f83518060208601845e60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f602082840312156112f9575f5ffd5b5051919050565b5f5f8335601e19843603018112611315575f5ffd5b83018035915067ffffffffffffffff82111561132f575f5ffd5b602001915036819003821315611343575f5ffd5b9250929050565b5f5f85851115611358575f5ffd5b83861115611364575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015610d6e576001600160e01b031960049490940360031b84901b1690921692915050565b5f5f5f606084860312156113b9575f5ffd5b83356113c481610fd1565b925060208401359150604084013567ffffffffffffffff8111156113e6575f5ffd5b6113f2868287016110af565b9150509250925092565b634e487b7160e01b5f52602160045260245ffdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220872c50a7097bf4bc50c5972cce553b4d6fb501a6658c63b74a98bc002b65524164736f6c634300081e0033",
552
+ "deployedBytecode": "0x6080604052600436106100e7575f3560e01c80636267e75911610087578063b0d691fe11610057578063b0d691fe14610238578063b61d27f61461027b578063c399ec8814610295578063d087d288146102a9575f5ffd5b80636267e759146101b25780638129fc1c146101d15780638dd7712f146101dc578063ad3cb1cc146101fb575f5ffd5b80634a58db19116100c25780634a58db19146101645780634d44560d1461016c5780634f1ef2861461018b57806352d1902d1461019e575f5ffd5b806319822f7c146100f2578063247884291461012457806334fcd5be14610145575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5061011161010c366004610f87565b6102bd565b6040519081526020015b60405180910390f35b34801561012f575f5ffd5b5061014361013e366004610fe5565b6102e2565b005b348015610150575f5ffd5b5061014361015f366004611000565b610354565b61014361036d565b348015610177575f5ffd5b50610143610186366004611071565b6103e9565b61014361019936600461113a565b61046d565b3480156101a9575f5ffd5b50610111610483565b3480156101bd575f5ffd5b506101436101cc366004611187565b61049e565b348015610143575f5ffd5b3480156101e7575f5ffd5b506101436101f63660046111be565b61051b565b348015610206575f5ffd5b5061022b604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161011b9190611200565b348015610243575f5ffd5b506040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016815260200161011b565b348015610286575f5ffd5b5061014361015f366004611235565b3480156102a0575f5ffd5b506101116105b5565b3480156102b4575f5ffd5b50610111610643565b5f6102c6610698565b6102d08484610710565b90506102db82610756565b9392505050565b6001600160a01b0381165f8181527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020819052604080832080546001600160a01b0319169055519092917f4a2cf608bfb427f53279ec7f0eadf48913b9346ccefc3af138dbdec14ea0907d91a25050565b604051630ad8c00b60e31b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060405163b760faf960e01b81523060048201526001600160a01b03919091169063b760faf99034906024015f604051808303818588803b1580156103d0575f5ffd5b505af11580156103e2573d5f5f3e3d5ffd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000060405163040b850f60e31b81526001600160a01b03848116600483015260248201849052919091169063205c2878906044015f604051808303815f87803b158015610453575f5ffd5b505af1158015610465573d5f5f3e3d5ffd5b505050505050565b61047561079b565b61047f828261083f565b5050565b5f61048c610900565b505f5160206114115f395f51905f5290565b6001600160a01b038281165f8181527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020819052604080832080546001600160a01b031916958716958617905551909392917f8a39fc6d5142759acd84b3e96ccde9187266ecb0df56c8ff08bf2aedc7c93c4791a3505050565b565b5f6105268383610949565b90505f6105338484610a4d565b905061054281835f0151610ace565b825190829061057c5760405163f252a21160e01b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b50506103e2825f015183604001518360405160200161059c9291906112ba565b6040516020818303038152906040528460200151610b0e565b6040516370a0823160e01b81523060048201525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561061a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e91906112e9565b905090565b604051631aab3f0d60e11b81523060048201525f60248201819052906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906335567e1a906044016105ff565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105195760405162461bcd60e51b815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e74000000006044820152606401610573565b5f5f61071c8484610949565b90505f6107298585610a4d565b905061073881835f0151610ace565b6107475760019250505061074d565b5f925050505b92915050565b50565b8015610753576040515f90339083908381818185875af1925050503d805f81146103e2576040519150601f19603f3d011682016040523d82523d5f602084013e6103e2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061082157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108155f5160206114115f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156105195760405163703e46dd60e11b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610899575060408051601f3d908101601f19168201909252610896918101906112e9565b60015b6108c157604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610573565b5f5160206114115f395f51905f5281146108f157604051632a87526960e21b815260048101829052602401610573565b6108fb8383610bda565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105195760405163703e46dd60e11b815260040160405180910390fd5b60408051606080820183525f80835260208301529181019190915260386109736060850185611300565b9050101580156109b65750638dd7712f60e01b6109936060850185611300565b6109a1916004915f9161134a565b6109aa91611371565b6001600160e01b031916145b6109d35760405163574b16a760e11b815260040160405180910390fd5b6109e06060840184611300565b6109ee91600490829061134a565b8101906109fb91906113a7565b604084015260208301526001600160a01b031680825261074d578051610a218484610a4d565b60405163f252a21160e01b81526001600160a01b03928316600482015291166024820152604401610573565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c829052603c8120610ac681610a8d610100870187611300565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c2f92505050565b949350505050565b6001600160a01b039182165f9081527f32800a8a254400b8b55434a22b827759dcb96a572133b419f26b7155e38430006020526040902054821691161490565b606081471015610b3a5760405163cf47918160e01b815247600482015260248101839052604401610573565b5f610b46858486610c57565b9050808015610b6757505f3d1180610b6757505f856001600160a01b03163b115b15610b7c57610b74610c6c565b9150506102db565b8015610ba657604051639996b31560e01b81526001600160a01b0386166004820152602401610573565b3d15610bb957610bb4610c85565b610bd2565b60405163d6bda27560e01b815260040160405180910390fd5b509392505050565b610be382610c90565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610c27576108fb8282610cf3565b61047f610d75565b5f5f5f5f610c3d8686610d94565b925092509250610c4d8282610ddd565b5090949350505050565b5f5f5f83516020850186885af1949350505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b806001600160a01b03163b5f03610cc557604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610573565b5f5160206114115f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f610d008484610e95565b9050808015610d2157505f3d1180610d2157505f846001600160a01b03163b115b15610d3657610d2e610c6c565b91505061074d565b8015610d6057604051639996b31560e01b81526001600160a01b0385166004820152602401610573565b3d15610bb957610d6e610c85565b5092915050565b34156105195760405163b398979f60e01b815260040160405180910390fd5b5f5f5f8351604103610dcb576020840151604085015160608601515f1a610dbd88828585610ea8565b955095509550505050610dd6565b505081515f91506002905b9250925092565b5f826003811115610df057610df06113fc565b03610df9575050565b6001826003811115610e0d57610e0d6113fc565b03610e2b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610e3f57610e3f6113fc565b03610e605760405163fce698f760e01b815260048101829052602401610573565b6003826003811115610e7457610e746113fc565b0361047f576040516335e2f38360e21b815260048101829052602401610573565b5f5f5f835160208501865af49392505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610ee157505f91506003905082610f66565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610f32573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610f5d57505f925060019150829050610f66565b92505f91508190505b9450945094915050565b5f6101208284031215610f81575f5ffd5b50919050565b5f5f5f60608486031215610f99575f5ffd5b833567ffffffffffffffff811115610faf575f5ffd5b610fbb86828701610f70565b9660208601359650604090950135949350505050565b6001600160a01b0381168114610753575f5ffd5b5f60208284031215610ff5575f5ffd5b81356102db81610fd1565b5f5f60208385031215611011575f5ffd5b823567ffffffffffffffff811115611027575f5ffd5b8301601f81018513611037575f5ffd5b803567ffffffffffffffff81111561104d575f5ffd5b8560208260051b8401011115611061575f5ffd5b6020919091019590945092505050565b5f5f60408385031215611082575f5ffd5b823561108d81610fd1565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126110be575f5ffd5b813567ffffffffffffffff8111156110d8576110d861109b565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156111075761110761109b565b60405281815283820160200185101561111e575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f6040838503121561114b575f5ffd5b823561115681610fd1565b9150602083013567ffffffffffffffff811115611171575f5ffd5b61117d858286016110af565b9150509250929050565b5f5f60408385031215611198575f5ffd5b82356111a381610fd1565b915060208301356111b381610fd1565b809150509250929050565b5f5f604083850312156111cf575f5ffd5b823567ffffffffffffffff8111156111e5575f5ffd5b6111f185828601610f70565b95602094909401359450505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60608587031215611248575f5ffd5b843561125381610fd1565b935060208501359250604085013567ffffffffffffffff811115611275575f5ffd5b8501601f81018713611285575f5ffd5b803567ffffffffffffffff81111561129b575f5ffd5b8760208284010111156112ac575f5ffd5b949793965060200194505050565b5f83518060208601845e60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f602082840312156112f9575f5ffd5b5051919050565b5f5f8335601e19843603018112611315575f5ffd5b83018035915067ffffffffffffffff82111561132f575f5ffd5b602001915036819003821315611343575f5ffd5b9250929050565b5f5f85851115611358575f5ffd5b83861115611364575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015610d6e576001600160e01b031960049490940360031b84901b1690921692915050565b5f5f5f606084860312156113b9575f5ffd5b83356113c481610fd1565b925060208401359150604084013567ffffffffffffffff8111156113e6575f5ffd5b6113f2868287016110af565b9150509250925092565b634e487b7160e01b5f52602160045260245ffdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220872c50a7097bf4bc50c5972cce553b4d6fb501a6658c63b74a98bc002b65524164736f6c634300081e0033",
553
+ "linkReferences": {},
554
+ "deployedLinkReferences": {},
555
+ "immutableReferences": {
556
+ "2756": [
557
+ {
558
+ "length": 32,
559
+ "start": 1958
560
+ },
561
+ {
562
+ "length": 32,
563
+ "start": 1999
564
+ },
565
+ {
566
+ "length": 32,
567
+ "start": 2315
568
+ }
569
+ ],
570
+ "12314": [
571
+ {
572
+ "length": 32,
573
+ "start": 593
574
+ },
575
+ {
576
+ "length": 32,
577
+ "start": 879
578
+ },
579
+ {
580
+ "length": 32,
581
+ "start": 1003
582
+ },
583
+ {
584
+ "length": 32,
585
+ "start": 1492
586
+ },
587
+ {
588
+ "length": 32,
589
+ "start": 1641
590
+ },
591
+ {
592
+ "length": 32,
593
+ "start": 1699
594
+ }
595
+ ]
596
+ },
597
+ "inputSourceName": "project/contracts/ERC2771ForwarderAccount.sol",
598
+ "buildInfoId": "solc-0_8_30-95f43f1788cfd8898b8023be4a1aea1d69744865"
599
+ }