@funkit/core 2.1.1 → 2.1.2-next.1

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 (171) hide show
  1. package/dist/index.js +16232 -12
  2. package/dist/index.js.map +7 -1
  3. package/dist/src/common/constants.d.ts +35 -9
  4. package/dist/src/viem/Converter.d.ts +4 -4
  5. package/package.json +6 -4
  6. package/dist/src/abis/ApproveAndExec.json +0 -106
  7. package/dist/src/abis/ApproveAndSwap.json +0 -141
  8. package/dist/src/abis/CheckoutPaymaster.json +0 -3358
  9. package/dist/src/abis/ERC20.json +0 -1
  10. package/dist/src/abis/ERC721.json +0 -1
  11. package/dist/src/abis/EntryPoint.json +0 -1023
  12. package/dist/src/abis/EstimationPaymaster.json +0 -266
  13. package/dist/src/abis/FeePercentOracle.json +0 -218
  14. package/dist/src/abis/FunWallet.json +0 -758
  15. package/dist/src/abis/FunWalletFactory.json +0 -232
  16. package/dist/src/abis/GaslessPaymaster.json +0 -558
  17. package/dist/src/abis/LidoWithdrawQueue.json +0 -1
  18. package/dist/src/abis/RoleBasedAccessControl.json +0 -836
  19. package/dist/src/abis/TestNFT.json +0 -226
  20. package/dist/src/abis/TokenPaymaster.json +0 -696
  21. package/dist/src/abis/TokenPriceOracle.json +0 -57
  22. package/dist/src/abis/UniswapV2Factory.json +0 -1
  23. package/dist/src/abis/UniswapV2Router02.json +0 -1
  24. package/dist/src/abis/UniswapV3LimitOrder.json +0 -1
  25. package/dist/src/abis/UserAuthentication.json +0 -338
  26. package/dist/src/abis/univ3factory.json +0 -1
  27. package/dist/src/abis/univ3quoter.json +0 -1
  28. package/dist/src/abis/univ3router.json +0 -1
  29. package/dist/src/actions/AccessControl.js +0 -87
  30. package/dist/src/actions/AccessControl.js.map +0 -1
  31. package/dist/src/actions/BatchActions.js +0 -8
  32. package/dist/src/actions/BatchActions.js.map +0 -1
  33. package/dist/src/actions/Bridge.js +0 -42
  34. package/dist/src/actions/Bridge.js.map +0 -1
  35. package/dist/src/actions/FirstClassActions.js +0 -329
  36. package/dist/src/actions/FirstClassActions.js.map +0 -1
  37. package/dist/src/actions/Group.js +0 -30
  38. package/dist/src/actions/Group.js.map +0 -1
  39. package/dist/src/actions/LimitOrder.js +0 -43
  40. package/dist/src/actions/LimitOrder.js.map +0 -1
  41. package/dist/src/actions/Stake.js +0 -108
  42. package/dist/src/actions/Stake.js.map +0 -1
  43. package/dist/src/actions/Swap.js +0 -150
  44. package/dist/src/actions/Swap.js.map +0 -1
  45. package/dist/src/actions/Token.js +0 -103
  46. package/dist/src/actions/Token.js.map +0 -1
  47. package/dist/src/actions/index.js +0 -8
  48. package/dist/src/actions/index.js.map +0 -1
  49. package/dist/src/actions/types.js +0 -14
  50. package/dist/src/actions/types.js.map +0 -1
  51. package/dist/src/apis/AccessControlApis.js +0 -19
  52. package/dist/src/apis/AccessControlApis.js.map +0 -1
  53. package/dist/src/apis/BridgeApis.js +0 -54
  54. package/dist/src/apis/BridgeApis.js.map +0 -1
  55. package/dist/src/apis/ContractApis.js +0 -7
  56. package/dist/src/apis/ContractApis.js.map +0 -1
  57. package/dist/src/apis/GroupApis.js +0 -15
  58. package/dist/src/apis/GroupApis.js.map +0 -1
  59. package/dist/src/apis/InfoApis.js +0 -53
  60. package/dist/src/apis/InfoApis.js.map +0 -1
  61. package/dist/src/apis/ListenerApis.js +0 -31
  62. package/dist/src/apis/ListenerApis.js.map +0 -1
  63. package/dist/src/apis/NFTApis.js +0 -29
  64. package/dist/src/apis/NFTApis.js.map +0 -1
  65. package/dist/src/apis/OperationApis.js +0 -76
  66. package/dist/src/apis/OperationApis.js.map +0 -1
  67. package/dist/src/apis/PaymasterApis.js +0 -18
  68. package/dist/src/apis/PaymasterApis.js.map +0 -1
  69. package/dist/src/apis/SwapApis.js +0 -40
  70. package/dist/src/apis/SwapApis.js.map +0 -1
  71. package/dist/src/apis/UserApis.js +0 -56
  72. package/dist/src/apis/UserApis.js.map +0 -1
  73. package/dist/src/apis/index.js +0 -9
  74. package/dist/src/apis/index.js.map +0 -1
  75. package/dist/src/apis/types.js +0 -2
  76. package/dist/src/apis/types.js.map +0 -1
  77. package/dist/src/auth/Auth.js +0 -321
  78. package/dist/src/auth/Auth.js.map +0 -1
  79. package/dist/src/auth/SessionKeyAuth.js +0 -115
  80. package/dist/src/auth/SessionKeyAuth.js.map +0 -1
  81. package/dist/src/auth/index.js +0 -3
  82. package/dist/src/auth/index.js.map +0 -1
  83. package/dist/src/auth/types.js +0 -2
  84. package/dist/src/auth/types.js.map +0 -1
  85. package/dist/src/common/constants.js +0 -449
  86. package/dist/src/common/constants.js.map +0 -1
  87. package/dist/src/common/index.js +0 -3
  88. package/dist/src/common/index.js.map +0 -1
  89. package/dist/src/common/types.js +0 -2
  90. package/dist/src/common/types.js.map +0 -1
  91. package/dist/src/config/Config.js +0 -50
  92. package/dist/src/config/Config.js.map +0 -1
  93. package/dist/src/config/index.js +0 -3
  94. package/dist/src/config/index.js.map +0 -1
  95. package/dist/src/config/types.js +0 -2
  96. package/dist/src/config/types.js.map +0 -1
  97. package/dist/src/data/Chain.js +0 -209
  98. package/dist/src/data/Chain.js.map +0 -1
  99. package/dist/src/data/NFT.js +0 -101
  100. package/dist/src/data/NFT.js.map +0 -1
  101. package/dist/src/data/Operation.js +0 -88
  102. package/dist/src/data/Operation.js.map +0 -1
  103. package/dist/src/data/SolidityData.js +0 -84
  104. package/dist/src/data/SolidityData.js.map +0 -1
  105. package/dist/src/data/Token.js +0 -118
  106. package/dist/src/data/Token.js.map +0 -1
  107. package/dist/src/data/index.js +0 -7
  108. package/dist/src/data/index.js.map +0 -1
  109. package/dist/src/data/types.js +0 -22
  110. package/dist/src/data/types.js.map +0 -1
  111. package/dist/src/errors/BaseError.js +0 -25
  112. package/dist/src/errors/BaseError.js.map +0 -1
  113. package/dist/src/errors/ClientError.js +0 -63
  114. package/dist/src/errors/ClientError.js.map +0 -1
  115. package/dist/src/errors/ServerError.js +0 -13
  116. package/dist/src/errors/ServerError.js.map +0 -1
  117. package/dist/src/errors/errors.json +0 -626
  118. package/dist/src/errors/index.js +0 -5
  119. package/dist/src/errors/index.js.map +0 -1
  120. package/dist/src/errors/types.js +0 -48
  121. package/dist/src/errors/types.js.map +0 -1
  122. package/dist/src/sponsors/CheckoutSponsor.js +0 -61
  123. package/dist/src/sponsors/CheckoutSponsor.js.map +0 -1
  124. package/dist/src/sponsors/GaslessSponsor.js +0 -75
  125. package/dist/src/sponsors/GaslessSponsor.js.map +0 -1
  126. package/dist/src/sponsors/Sponsor.js +0 -80
  127. package/dist/src/sponsors/Sponsor.js.map +0 -1
  128. package/dist/src/sponsors/TokenSponsor.js +0 -251
  129. package/dist/src/sponsors/TokenSponsor.js.map +0 -1
  130. package/dist/src/sponsors/index.js +0 -5
  131. package/dist/src/sponsors/index.js.map +0 -1
  132. package/dist/src/sponsors/types.js +0 -8
  133. package/dist/src/sponsors/types.js.map +0 -1
  134. package/dist/src/utils/ApiUtils.js +0 -94
  135. package/dist/src/utils/ApiUtils.js.map +0 -1
  136. package/dist/src/utils/AuthUtils.js +0 -31
  137. package/dist/src/utils/AuthUtils.js.map +0 -1
  138. package/dist/src/utils/ChainUtils.js +0 -131
  139. package/dist/src/utils/ChainUtils.js.map +0 -1
  140. package/dist/src/utils/CheckoutUtils.js +0 -28
  141. package/dist/src/utils/CheckoutUtils.js.map +0 -1
  142. package/dist/src/utils/GroupUtils.js +0 -26
  143. package/dist/src/utils/GroupUtils.js.map +0 -1
  144. package/dist/src/utils/MerkleUtils.js +0 -86
  145. package/dist/src/utils/MerkleUtils.js.map +0 -1
  146. package/dist/src/utils/PaymasterUtils.js +0 -17
  147. package/dist/src/utils/PaymasterUtils.js.map +0 -1
  148. package/dist/src/utils/SwapUtils.js +0 -193
  149. package/dist/src/utils/SwapUtils.js.map +0 -1
  150. package/dist/src/utils/TypeUtils.js +0 -9
  151. package/dist/src/utils/TypeUtils.js.map +0 -1
  152. package/dist/src/utils/UserOpUtils.js +0 -171
  153. package/dist/src/utils/UserOpUtils.js.map +0 -1
  154. package/dist/src/utils/ViemUtils.js +0 -30
  155. package/dist/src/utils/ViemUtils.js.map +0 -1
  156. package/dist/src/utils/WalletUtils.js +0 -56
  157. package/dist/src/utils/WalletUtils.js.map +0 -1
  158. package/dist/src/utils/index.js +0 -9
  159. package/dist/src/utils/index.js.map +0 -1
  160. package/dist/src/viem/ContractInterface.js +0 -90
  161. package/dist/src/viem/ContractInterface.js.map +0 -1
  162. package/dist/src/viem/Converter.js +0 -47
  163. package/dist/src/viem/Converter.js.map +0 -1
  164. package/dist/src/viem/index.js +0 -3
  165. package/dist/src/viem/index.js.map +0 -1
  166. package/dist/src/wallet/FunWallet.js +0 -804
  167. package/dist/src/wallet/FunWallet.js.map +0 -1
  168. package/dist/src/wallet/index.js +0 -3
  169. package/dist/src/wallet/index.js.map +0 -1
  170. package/dist/src/wallet/types.js +0 -2
  171. package/dist/src/wallet/types.js.map +0 -1
@@ -1,3358 +0,0 @@
1
- {
2
- "abi": [
3
- {
4
- "type": "constructor",
5
- "inputs": [
6
- {
7
- "name": "entryPoint",
8
- "type": "address",
9
- "internalType": "contract IEntryPoint"
10
- }
11
- ],
12
- "stateMutability": "nonpayable"
13
- },
14
- {
15
- "type": "function",
16
- "name": "VERSION",
17
- "inputs": [],
18
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
19
- "stateMutability": "view"
20
- },
21
- {
22
- "type": "function",
23
- "name": "activateAndCall",
24
- "inputs": [
25
- { "name": "target", "type": "address", "internalType": "address" },
26
- { "name": "callData", "type": "bytes", "internalType": "bytes" }
27
- ],
28
- "outputs": [{ "name": "", "type": "bytes", "internalType": "bytes" }],
29
- "stateMutability": "payable"
30
- },
31
- {
32
- "type": "function",
33
- "name": "addStake",
34
- "inputs": [
35
- {
36
- "name": "unstakeDelaySec",
37
- "type": "uint32",
38
- "internalType": "uint32"
39
- }
40
- ],
41
- "outputs": [],
42
- "stateMutability": "payable"
43
- },
44
- {
45
- "type": "function",
46
- "name": "deposit",
47
- "inputs": [],
48
- "outputs": [],
49
- "stateMutability": "payable"
50
- },
51
- {
52
- "type": "function",
53
- "name": "entryPoint",
54
- "inputs": [],
55
- "outputs": [
56
- {
57
- "name": "",
58
- "type": "address",
59
- "internalType": "contract IEntryPoint"
60
- }
61
- ],
62
- "stateMutability": "view"
63
- },
64
- {
65
- "type": "function",
66
- "name": "getDeposit",
67
- "inputs": [],
68
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
69
- "stateMutability": "view"
70
- },
71
- {
72
- "type": "function",
73
- "name": "getLastOpMode",
74
- "inputs": [],
75
- "outputs": [
76
- {
77
- "name": "",
78
- "type": "uint8",
79
- "internalType": "enum IPaymaster.PostOpMode"
80
- }
81
- ],
82
- "stateMutability": "view"
83
- },
84
- {
85
- "type": "function",
86
- "name": "owner",
87
- "inputs": [],
88
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
89
- "stateMutability": "view"
90
- },
91
- {
92
- "type": "function",
93
- "name": "postOp",
94
- "inputs": [
95
- {
96
- "name": "mode",
97
- "type": "uint8",
98
- "internalType": "enum IPaymaster.PostOpMode"
99
- },
100
- { "name": "context", "type": "bytes", "internalType": "bytes" },
101
- {
102
- "name": "actualGasCost",
103
- "type": "uint256",
104
- "internalType": "uint256"
105
- }
106
- ],
107
- "outputs": [],
108
- "stateMutability": "nonpayable"
109
- },
110
- {
111
- "type": "function",
112
- "name": "renounceOwnership",
113
- "inputs": [],
114
- "outputs": [],
115
- "stateMutability": "nonpayable"
116
- },
117
- {
118
- "type": "function",
119
- "name": "setOperators",
120
- "inputs": [
121
- {
122
- "name": "operators",
123
- "type": "address[]",
124
- "internalType": "address[]"
125
- },
126
- { "name": "isAllowed", "type": "bool", "internalType": "bool" }
127
- ],
128
- "outputs": [],
129
- "stateMutability": "nonpayable"
130
- },
131
- {
132
- "type": "function",
133
- "name": "transferOwnership",
134
- "inputs": [
135
- { "name": "newOwner", "type": "address", "internalType": "address" }
136
- ],
137
- "outputs": [],
138
- "stateMutability": "nonpayable"
139
- },
140
- {
141
- "type": "function",
142
- "name": "unlockStake",
143
- "inputs": [],
144
- "outputs": [],
145
- "stateMutability": "nonpayable"
146
- },
147
- {
148
- "type": "function",
149
- "name": "validatePaymasterUserOp",
150
- "inputs": [
151
- {
152
- "name": "userOp",
153
- "type": "tuple",
154
- "internalType": "struct UserOperation",
155
- "components": [
156
- { "name": "sender", "type": "address", "internalType": "address" },
157
- { "name": "nonce", "type": "uint256", "internalType": "uint256" },
158
- { "name": "initCode", "type": "bytes", "internalType": "bytes" },
159
- { "name": "callData", "type": "bytes", "internalType": "bytes" },
160
- {
161
- "name": "callGasLimit",
162
- "type": "uint256",
163
- "internalType": "uint256"
164
- },
165
- {
166
- "name": "verificationGasLimit",
167
- "type": "uint256",
168
- "internalType": "uint256"
169
- },
170
- {
171
- "name": "preVerificationGas",
172
- "type": "uint256",
173
- "internalType": "uint256"
174
- },
175
- {
176
- "name": "maxFeePerGas",
177
- "type": "uint256",
178
- "internalType": "uint256"
179
- },
180
- {
181
- "name": "maxPriorityFeePerGas",
182
- "type": "uint256",
183
- "internalType": "uint256"
184
- },
185
- {
186
- "name": "paymasterAndData",
187
- "type": "bytes",
188
- "internalType": "bytes"
189
- },
190
- { "name": "signature", "type": "bytes", "internalType": "bytes" }
191
- ]
192
- },
193
- { "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" },
194
- { "name": "maxCost", "type": "uint256", "internalType": "uint256" }
195
- ],
196
- "outputs": [
197
- { "name": "context", "type": "bytes", "internalType": "bytes" },
198
- {
199
- "name": "validationData",
200
- "type": "uint256",
201
- "internalType": "uint256"
202
- }
203
- ],
204
- "stateMutability": "nonpayable"
205
- },
206
- {
207
- "type": "function",
208
- "name": "withdrawStake",
209
- "inputs": [
210
- {
211
- "name": "withdrawAddress",
212
- "type": "address",
213
- "internalType": "address payable"
214
- }
215
- ],
216
- "outputs": [],
217
- "stateMutability": "nonpayable"
218
- },
219
- {
220
- "type": "function",
221
- "name": "withdrawTo",
222
- "inputs": [
223
- {
224
- "name": "withdrawAddress",
225
- "type": "address",
226
- "internalType": "address payable"
227
- },
228
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
229
- ],
230
- "outputs": [],
231
- "stateMutability": "nonpayable"
232
- },
233
- {
234
- "type": "event",
235
- "name": "OwnershipTransferred",
236
- "inputs": [
237
- {
238
- "name": "previousOwner",
239
- "type": "address",
240
- "indexed": true,
241
- "internalType": "address"
242
- },
243
- {
244
- "name": "newOwner",
245
- "type": "address",
246
- "indexed": true,
247
- "internalType": "address"
248
- }
249
- ],
250
- "anonymous": false
251
- },
252
- { "type": "error", "name": "Inactive", "inputs": [] },
253
- {
254
- "type": "error",
255
- "name": "InvalidOperator",
256
- "inputs": [
257
- { "name": "operator", "type": "address", "internalType": "address" }
258
- ]
259
- },
260
- {
261
- "type": "error",
262
- "name": "InvalidPaymasterAndDataLength",
263
- "inputs": [
264
- { "name": "length", "type": "uint256", "internalType": "uint256" }
265
- ]
266
- }
267
- ],
268
- "bytecode": {
269
- "object": "0x60a060405234801561001057600080fd5b50604051610f03380380610f0383398101604081905261002f916100ae565b806100393361005e565b6001600160a01b0316608052506000805460ff60a01b1916600160a01b1790556100de565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c057600080fd5b81516001600160a01b03811681146100d757600080fd5b9392505050565b608051610dd961012a600039600081816101f60152818161031d015281816103b4015281816104af01528181610543015281816105b30152818161071c01526108bb0152610dd96000f3fe6080604052600436106100f35760003560e01c8063bb9fe6bf1161008a578063d0e30db011610059578063d0e30db014610290578063f2fde38b14610298578063f465c77e146102b8578063ffa1ad74146102e657600080fd5b8063bb9fe6bf14610218578063c23a5cea1461022d578063c399ec881461024d578063c458b07b1461027057600080fd5b80638da5cb5b116100c65780638da5cb5b14610172578063a3111bdb146101a4578063a9a23409146101c4578063b0d691fe146101e457600080fd5b80630396cb60146100f8578063205c28781461010d578063255ed9471461012d578063715018a61461015d575b600080fd5b61010b6101063660046109d5565b6102fb565b005b34801561011957600080fd5b5061010b610128366004610a17565b610386565b34801561013957600080fd5b50600054600160a81b900460ff166040516101549190610a59565b60405180910390f35b34801561016957600080fd5b5061010b6103f8565b34801561017e57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610154565b3480156101b057600080fd5b5061010b6101bf366004610a81565b61040c565b3480156101d057600080fd5b5061010b6101df366004610b55565b61048b565b3480156101f057600080fd5b5061018c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022457600080fd5b5061010b6104a5565b34801561023957600080fd5b5061010b610248366004610bb5565b61051c565b34801561025957600080fd5b5061026261059b565b604051908152602001610154565b61028361027e366004610bd2565b61062b565b6040516101549190610c6d565b61010b610707565b3480156102a457600080fd5b5061010b6102b3366004610bb5565b610769565b3480156102c457600080fd5b506102d86102d3366004610c80565b6107e2565b604051610154929190610cd4565b3480156102f257600080fd5b50610262600181565b610303610806565b604051621cb65b60e51b815263ffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630396cb609034906024016000604051808303818588803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b505050505050565b61038e610806565b60405163040b850f60e31b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b15801561036a57600080fd5b610400610806565b61040a6000610860565b565b610414610806565b8160005b8181101561048457826001600087878581811061043757610437610cf6565b905060200201602081019061044c9190610bb5565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561047d81610d0c565b9050610418565b5050505050565b6104936108b0565b61049f84848484610920565b50505050565b6104ad610806565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561050857600080fd5b505af115801561049f573d6000803e3d6000fd5b610524610806565b60405163611d2e7560e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90602401600060405180830381600087803b15801561058757600080fd5b505af1158015610484573d6000803e3d6000fd5b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190610d33565b905090565b3360009081526001602052604090205460609060ff1661066557604051633eaa03e360e01b81523360048201526024015b60405180910390fd5b6000805460ff60a01b1916600160a11b17815560405181906001600160a01b0387169034906106979088908890610d4c565b60006040518083038185875af1925050503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106eb57805160208201fd5b6000805460ff60a01b1916600160a01b17905595945050505050565b60405163b760faf960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b760faf99034906024016000604051808303818588803b15801561058757600080fd5b610771610806565b6001600160a01b0381166107d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065c565b6107df81610860565b50565b606060006107ee6108b0565b6107f985858561098e565b915091505b935093915050565b6000546001600160a01b0316331461040a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461040a5760405162461bcd60e51b815260206004820152601560248201527414d95b99195c881b9bdd08115b9d1c9e541bda5b9d605a1b604482015260640161065c565b6002600054600160a01b900460ff16600281111561094057610940610a43565b1461095e57604051632e8acb0d60e01b815260040160405180910390fd5b6000805485919060ff60a81b1916600160a81b83600281111561098357610983610a43565b021790555050505050565b606060006109a0610120860186610d5c565b90506014146107fe576109b7610120860186610d5c565b604051635ae9bb9760e01b815261065c925060040190815260200190565b6000602082840312156109e757600080fd5b813563ffffffff811681146109fb57600080fd5b9392505050565b6001600160a01b03811681146107df57600080fd5b60008060408385031215610a2a57600080fd5b8235610a3581610a02565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6020810160038310610a7b57634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060408486031215610a9657600080fd5b833567ffffffffffffffff80821115610aae57600080fd5b818601915086601f830112610ac257600080fd5b813581811115610ad157600080fd5b8760208260051b8501011115610ae657600080fd5b602092830195509350508401358015158114610b0157600080fd5b809150509250925092565b60008083601f840112610b1e57600080fd5b50813567ffffffffffffffff811115610b3657600080fd5b602083019150836020828501011115610b4e57600080fd5b9250929050565b60008060008060608587031215610b6b57600080fd5b843560038110610b7a57600080fd5b9350602085013567ffffffffffffffff811115610b9657600080fd5b610ba287828801610b0c565b9598909750949560400135949350505050565b600060208284031215610bc757600080fd5b81356109fb81610a02565b600080600060408486031215610be757600080fd5b8335610bf281610a02565b9250602084013567ffffffffffffffff811115610c0e57600080fd5b610c1a86828701610b0c565b9497909650939450505050565b6000815180845260005b81811015610c4d57602081850181015186830182015201610c31565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109fb6020830184610c27565b600080600060608486031215610c9557600080fd5b833567ffffffffffffffff811115610cac57600080fd5b84016101608187031215610cbf57600080fd5b95602085013595506040909401359392505050565b604081526000610ce76040830185610c27565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610d2c57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610d4557600080fd5b5051919050565b8183823760009101908152919050565b6000808335601e19843603018112610d7357600080fd5b83018035915067ffffffffffffffff821115610d8e57600080fd5b602001915036819003821315610b4e57600080fdfea26469706673582212206ca98fa625bb450eac6fbf76f3fdd1ad097fee4001bd72ad8d66bb88a9b49f6d64736f6c63430008140033",
270
- "sourceMap": "678:2943:74:-:0;;;1428:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1478:10;936:32:32;719:10:51;936:18:32;:32::i;:::-;-1:-1:-1;;;;;564:24:1;;;-1:-1:-1;1500:14:74::1;:37:::0;;-1:-1:-1;;;;1500:37:74::1;-1:-1:-1::0;;;1500:37:74::1;::::0;;678:2943;;2426:187:32;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:32;;;-1:-1:-1;;;;;;2534:17:32;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:309:88:-;103:6;156:2;144:9;135:7;131:23;127:32;124:52;;;172:1;169;162:12;124:52;198:16;;-1:-1:-1;;;;;243:31:88;;233:42;;223:70;;289:1;286;279:12;223:70;312:5;14:309;-1:-1:-1;;;14:309:88:o;328:127::-;678:2943:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
271
- "linkReferences": {}
272
- },
273
- "deployedBytecode": {
274
- "object": "0x6080604052600436106100f35760003560e01c8063bb9fe6bf1161008a578063d0e30db011610059578063d0e30db014610290578063f2fde38b14610298578063f465c77e146102b8578063ffa1ad74146102e657600080fd5b8063bb9fe6bf14610218578063c23a5cea1461022d578063c399ec881461024d578063c458b07b1461027057600080fd5b80638da5cb5b116100c65780638da5cb5b14610172578063a3111bdb146101a4578063a9a23409146101c4578063b0d691fe146101e457600080fd5b80630396cb60146100f8578063205c28781461010d578063255ed9471461012d578063715018a61461015d575b600080fd5b61010b6101063660046109d5565b6102fb565b005b34801561011957600080fd5b5061010b610128366004610a17565b610386565b34801561013957600080fd5b50600054600160a81b900460ff166040516101549190610a59565b60405180910390f35b34801561016957600080fd5b5061010b6103f8565b34801561017e57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610154565b3480156101b057600080fd5b5061010b6101bf366004610a81565b61040c565b3480156101d057600080fd5b5061010b6101df366004610b55565b61048b565b3480156101f057600080fd5b5061018c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022457600080fd5b5061010b6104a5565b34801561023957600080fd5b5061010b610248366004610bb5565b61051c565b34801561025957600080fd5b5061026261059b565b604051908152602001610154565b61028361027e366004610bd2565b61062b565b6040516101549190610c6d565b61010b610707565b3480156102a457600080fd5b5061010b6102b3366004610bb5565b610769565b3480156102c457600080fd5b506102d86102d3366004610c80565b6107e2565b604051610154929190610cd4565b3480156102f257600080fd5b50610262600181565b610303610806565b604051621cb65b60e51b815263ffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630396cb609034906024016000604051808303818588803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b505050505050565b61038e610806565b60405163040b850f60e31b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b15801561036a57600080fd5b610400610806565b61040a6000610860565b565b610414610806565b8160005b8181101561048457826001600087878581811061043757610437610cf6565b905060200201602081019061044c9190610bb5565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561047d81610d0c565b9050610418565b5050505050565b6104936108b0565b61049f84848484610920565b50505050565b6104ad610806565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bb9fe6bf6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561050857600080fd5b505af115801561049f573d6000803e3d6000fd5b610524610806565b60405163611d2e7560e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c23a5cea90602401600060405180830381600087803b15801561058757600080fd5b505af1158015610484573d6000803e3d6000fd5b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190610d33565b905090565b3360009081526001602052604090205460609060ff1661066557604051633eaa03e360e01b81523360048201526024015b60405180910390fd5b6000805460ff60a01b1916600160a11b17815560405181906001600160a01b0387169034906106979088908890610d4c565b60006040518083038185875af1925050503d80600081146106d4576040519150601f19603f3d011682016040523d82523d6000602084013e6106d9565b606091505b5091509150816106eb57805160208201fd5b6000805460ff60a01b1916600160a01b17905595945050505050565b60405163b760faf960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b760faf99034906024016000604051808303818588803b15801561058757600080fd5b610771610806565b6001600160a01b0381166107d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065c565b6107df81610860565b50565b606060006107ee6108b0565b6107f985858561098e565b915091505b935093915050565b6000546001600160a01b0316331461040a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461040a5760405162461bcd60e51b815260206004820152601560248201527414d95b99195c881b9bdd08115b9d1c9e541bda5b9d605a1b604482015260640161065c565b6002600054600160a01b900460ff16600281111561094057610940610a43565b1461095e57604051632e8acb0d60e01b815260040160405180910390fd5b6000805485919060ff60a81b1916600160a81b83600281111561098357610983610a43565b021790555050505050565b606060006109a0610120860186610d5c565b90506014146107fe576109b7610120860186610d5c565b604051635ae9bb9760e01b815261065c925060040190815260200190565b6000602082840312156109e757600080fd5b813563ffffffff811681146109fb57600080fd5b9392505050565b6001600160a01b03811681146107df57600080fd5b60008060408385031215610a2a57600080fd5b8235610a3581610a02565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6020810160038310610a7b57634e487b7160e01b600052602160045260246000fd5b91905290565b600080600060408486031215610a9657600080fd5b833567ffffffffffffffff80821115610aae57600080fd5b818601915086601f830112610ac257600080fd5b813581811115610ad157600080fd5b8760208260051b8501011115610ae657600080fd5b602092830195509350508401358015158114610b0157600080fd5b809150509250925092565b60008083601f840112610b1e57600080fd5b50813567ffffffffffffffff811115610b3657600080fd5b602083019150836020828501011115610b4e57600080fd5b9250929050565b60008060008060608587031215610b6b57600080fd5b843560038110610b7a57600080fd5b9350602085013567ffffffffffffffff811115610b9657600080fd5b610ba287828801610b0c565b9598909750949560400135949350505050565b600060208284031215610bc757600080fd5b81356109fb81610a02565b600080600060408486031215610be757600080fd5b8335610bf281610a02565b9250602084013567ffffffffffffffff811115610c0e57600080fd5b610c1a86828701610b0c565b9497909650939450505050565b6000815180845260005b81811015610c4d57602081850181015186830182015201610c31565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109fb6020830184610c27565b600080600060608486031215610c9557600080fd5b833567ffffffffffffffff811115610cac57600080fd5b84016101608187031215610cbf57600080fd5b95602085013595506040909401359392505050565b604081526000610ce76040830185610c27565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610d2c57634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610d4557600080fd5b5051919050565b8183823760009101908152919050565b6000808335601e19843603018112610d7357600080fd5b83018035915067ffffffffffffffff821115610d8e57600080fd5b602001915036819003821315610b4e57600080fdfea26469706673582212206ca98fa625bb450eac6fbf76f3fdd1ad097fee4001bd72ad8d66bb88a9b49f6d64736f6c63430008140033",
275
- "sourceMap": "678:2943:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:141:1;;;;;;:::i;:::-;;:::i;:::-;;2721:149;;;;;;;;;;-1:-1:-1;2721:149:1;;;;;:::i;:::-;;:::i;2242:98:74:-;;;;;;;;;;-1:-1:-1;2290:10:74;2319:14;-1:-1:-1;;;2319:14:74;;;;2242:98;;;;;;:::i;:::-;;;;;;;;1824:101:32;;;;;;;;;;;;;:::i;1201:85::-;;;;;;;;;;-1:-1:-1;1247:7:32;1273:6;-1:-1:-1;;;;;1273:6:32;1201:85;;;-1:-1:-1;;;;;1418:32:88;;;1400:51;;1388:2;1373:18;1201:85:32;1254:203:88;1550:253:74;;;;;;;;;;-1:-1:-1;1550:253:74;;;;;:::i;:::-;;:::i;1143:186:1:-;;;;;;;;;;-1:-1:-1;1143:186:1;;;;;:::i;:::-;;:::i;471:39::-;;;;;;;;;;;;;;;3588:83;;;;;;;;;;;;;:::i;3890:133::-;;;;;;;;;;-1:-1:-1;3890:133:1;;;;;:::i;:::-;;:::i;3318:111::-;;;;;;;;;;;;;:::i;:::-;;;3882:25:88;;;3870:2;3855:18;3318:111:1;3736:177:88;1809:427:74;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2474:105:1:-;;;:::i;2074:198:32:-;;;;;;;;;;-1:-1:-1;2074:198:32;;;;;:::i;:::-;;:::i;632:290:1:-;;;;;;;;;;-1:-1:-1;632:290:1;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;805:35:74:-;;;;;;;;;;;;839:1;805:35;;3094:141:1;1094:13:32;:11;:13::i;:::-;3173:55:1::1;::::0;-1:-1:-1;;;3173:55:1;;6385:10:88;6373:23;;3173:55:1::1;::::0;::::1;6355:42:88::0;3173:10:1::1;-1:-1:-1::0;;;;;3173:19:1::1;::::0;::::1;::::0;3201:9:::1;::::0;6328:18:88;;3173:55:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;3094:141:::0;:::o;2721:149::-;1094:13:32;:11;:13::i;:::-;2817:46:1::1;::::0;-1:-1:-1;;;2817:46:1;;-1:-1:-1;;;;;6616:32:88;;;2817:46:1::1;::::0;::::1;6598:51:88::0;6665:18;;;6658:34;;;2817:10:1::1;:21;::::0;::::1;::::0;6571:18:88;;2817:46:1::1;;;;;;;;;;;;;;;;;::::0;::::1;1824:101:32::0;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1550:253:74:-;1094:13:32;:11;:13::i;:::-;1681:9:74;1669::::1;1707:90;1727:1;1723;:5;1707:90;;;1777:9;1749:11;:25;1761:9;;1771:1;1761:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1749:25:74::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;1749:25:74;:37;;-1:-1:-1;;1749:37:74::1;::::0;::::1;;::::0;;;::::1;::::0;;1730:3:::1;::::0;::::1;:::i;:::-;;;1707:90;;;;1659:144;1550:253:::0;;;:::o;1143:186:1:-;1251:24;:22;:24::i;:::-;1285:37;1293:4;1299:7;;1308:13;1285:7;:37::i;:::-;1143:186;;;;:::o;3588:83::-;1094:13:32;:11;:13::i;:::-;3640:10:1::1;-1:-1:-1::0;;;;;3640:22:1::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;3890:133:::0;1094:13:32;:11;:13::i;:::-;3975:41:1::1;::::0;-1:-1:-1;;;3975:41:1;;-1:-1:-1;;;;;1418:32:88;;;3975:41:1::1;::::0;::::1;1400:51:88::0;3975:10:1::1;:24;::::0;::::1;::::0;1373:18:88;;3975:41:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;3318:111:::0;3387:35;;-1:-1:-1;;;3387:35:1;;3416:4;3387:35;;;1400:51:88;3361:7:1;;3387:10;-1:-1:-1;;;;;3387:20:1;;;;1373:18:88;;3387:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3380:42;;3318:111;:::o;1809:427:74:-;1104:10;1092:23;;;;:11;:23;;;;;;1932:12;;1092:23;;1087:89;;1138:27;;-1:-1:-1;;;1138:27:74;;1154:10;1138:27;;;1400:51:88;1373:18;;1138:27:74;;;;;;;;1087:89;1185:14;:35;;-1:-1:-1;;;;1185:35:74;-1:-1:-1;;;1185:35:74;;;1998:70:::1;::::0;1185:14;;-1:-1:-1;;;;;1998:20:74;::::1;::::0;2039:9:::1;::::0;1998:70:::1;::::0;2059:8;;;;1998:70:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:112;;;;2083:7;2078:125;;2167:10;2161:17;2156:2;2144:10;2140:19;2133:46;2078:125;1241:14:::0;:37;;-1:-1:-1;;;;1241:37:74;-1:-1:-1;;;1241:37:74;;;2219:10;;-1:-1:-1;;;;;1809:427:74:o;2474:105:1:-;2518:54;;-1:-1:-1;;;2518:54:1;;2566:4;2518:54;;;1400:51:88;2518:10:1;-1:-1:-1;;;;;2518:20:1;;;;2547:9;;1373:18:88;;2518:54:1;;;;;;;;;;;;;;;;;;;2074:198:32;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:32;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:32;;7963:2:88;2154:73:32::1;::::0;::::1;7945:21:88::0;8002:2;7982:18;;;7975:30;8041:34;8021:18;;;8014:62;-1:-1:-1;;;8092:18:88;;;8085:36;8138:19;;2154:73:32::1;7761:402:88::0;2154:73:32::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;632:290:1:-;764:20;786:22;821:24;:22;:24::i;:::-;862:53;887:6;895:10;907:7;862:24;:53::i;:::-;855:60;;;;632:290;;;;;;;:::o;1359:130:32:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:32;719:10:51;1422:23:32;1414:68;;;;-1:-1:-1;;;1414:68:32;;8370:2:88;1414:68:32;;;8352:21:88;;;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;8500:18;;1414:68:32;8168:356:88;2426:187:32;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:32;;;-1:-1:-1;;;;;;2534:17:32;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;4087:135:1:-;4156:10;-1:-1:-1;;;;;4178:10:1;4156:33;;4148:67;;;;-1:-1:-1;;;4148:67:1;;8731:2:88;4148:67:1;;;8713:21:88;8770:2;8750:18;;;8743:30;-1:-1:-1;;;8789:18:88;;;8782:51;8850:18;;4148:67:1;8529:345:88;3431:188:74;1343:18;1325:14;;-1:-1:-1;;;1325:14:74;;;;:36;;;;;;;;:::i;:::-;;1321:84;;1384:10;;-1:-1:-1;;;1384:10:74;;;;;;;;;;;1321:84;3591:14:::1;:21:::0;;3608:4;;3591:14;-1:-1:-1;;;;3591:21:74::1;-1:-1:-1::0;;;3608:4:74;3591:21:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;3431:188:::0;;;;:::o;2641:435::-;2845:20;2867:22;2909:23;;;;:6;:23;:::i;:::-;:30;;2943:2;2909:36;2905:165;;3015:23;;;;:6;:23;:::i;:::-;2968:91;;-1:-1:-1;;;2968:91:74;;;;-1:-1:-1;2968:91:74;;3882:25:88;;;3870:2;3855:18;;3736:177;14:276;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:10;223:5;219:22;212:5;209:33;199:61;;256:1;253;246:12;199:61;279:5;14:276;-1:-1:-1;;;14:276:88:o;295:139::-;-1:-1:-1;;;;;378:31:88;;368:42;;358:70;;424:1;421;414:12;439:331;515:6;523;576:2;564:9;555:7;551:23;547:32;544:52;;;592:1;589;582:12;544:52;631:9;618:23;650:39;683:5;650:39;:::i;:::-;708:5;760:2;745:18;;;;732:32;;-1:-1:-1;;;439:331:88:o;775:127::-;836:10;831:3;827:20;824:1;817:31;867:4;864:1;857:15;891:4;888:1;881:15;907:342;1053:2;1038:18;;1086:1;1075:13;;1065:144;;1131:10;1126:3;1122:20;1119:1;1112:31;1166:4;1163:1;1156:15;1194:4;1191:1;1184:15;1065:144;1218:25;;;907:342;:::o;1462:782::-;1554:6;1562;1570;1623:2;1611:9;1602:7;1598:23;1594:32;1591:52;;;1639:1;1636;1629:12;1591:52;1679:9;1666:23;1708:18;1749:2;1741:6;1738:14;1735:34;;;1765:1;1762;1755:12;1735:34;1803:6;1792:9;1788:22;1778:32;;1848:7;1841:4;1837:2;1833:13;1829:27;1819:55;;1870:1;1867;1860:12;1819:55;1910:2;1897:16;1936:2;1928:6;1925:14;1922:34;;;1952:1;1949;1942:12;1922:34;2007:7;2000:4;1990:6;1987:1;1983:14;1979:2;1975:23;1971:34;1968:47;1965:67;;;2028:1;2025;2018:12;1965:67;2059:4;2051:13;;;;-1:-1:-1;2083:6:88;-1:-1:-1;;2124:20:88;;2111:34;2181:13;;2174:21;2164:32;;2154:60;;2210:1;2207;2200:12;2154:60;2233:5;2223:15;;;1462:782;;;;;:::o;2249:347::-;2300:8;2310:6;2364:3;2357:4;2349:6;2345:17;2341:27;2331:55;;2382:1;2379;2372:12;2331:55;-1:-1:-1;2405:20:88;;2448:18;2437:30;;2434:50;;;2480:1;2477;2470:12;2434:50;2517:4;2509:6;2505:17;2493:29;;2569:3;2562:4;2553:6;2545;2541:19;2537:30;2534:39;2531:59;;;2586:1;2583;2576:12;2531:59;2249:347;;;;;:::o;2601:635::-;2703:6;2711;2719;2727;2780:2;2768:9;2759:7;2755:23;2751:32;2748:52;;;2796:1;2793;2786:12;2748:52;2835:9;2822:23;2874:1;2867:5;2864:12;2854:40;;2890:1;2887;2880:12;2854:40;2913:5;-1:-1:-1;2969:2:88;2954:18;;2941:32;2996:18;2985:30;;2982:50;;;3028:1;3025;3018:12;2982:50;3067:58;3117:7;3108:6;3097:9;3093:22;3067:58;:::i;:::-;2601:635;;3144:8;;-1:-1:-1;3041:84:88;;3226:2;3211:18;3198:32;;2601:635;-1:-1:-1;;;;2601:635:88:o;3468:263::-;3535:6;3588:2;3576:9;3567:7;3563:23;3559:32;3556:52;;;3604:1;3601;3594:12;3556:52;3643:9;3630:23;3662:39;3695:5;3662:39;:::i;3918:552::-;3997:6;4005;4013;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:39;4173:5;4140:39;:::i;:::-;4198:5;-1:-1:-1;4254:2:88;4239:18;;4226:32;4281:18;4270:30;;4267:50;;;4313:1;4310;4303:12;4267:50;4352:58;4402:7;4393:6;4382:9;4378:22;4352:58;:::i;:::-;3918:552;;4429:8;;-1:-1:-1;4326:84:88;;-1:-1:-1;;;;3918:552:88:o;4475:422::-;4516:3;4554:5;4548:12;4581:6;4576:3;4569:19;4606:1;4616:162;4630:6;4627:1;4624:13;4616:162;;;4692:4;4748:13;;;4744:22;;4738:29;4720:11;;;4716:20;;4709:59;4645:12;4616:162;;;4620:3;4823:1;4816:4;4807:6;4802:3;4798:16;4794:27;4787:38;4886:4;4879:2;4875:7;4870:2;4862:6;4858:15;4854:29;4849:3;4845:39;4841:50;4834:57;;;4475:422;;;;:::o;4902:217::-;5049:2;5038:9;5031:21;5012:4;5069:44;5109:2;5098:9;5094:18;5086:6;5069:44;:::i;5384:529::-;5494:6;5502;5510;5563:2;5551:9;5542:7;5538:23;5534:32;5531:52;;;5579:1;5576;5569:12;5531:52;5619:9;5606:23;5652:18;5644:6;5641:30;5638:50;;;5684:1;5681;5674:12;5638:50;5707:22;;5763:3;5745:16;;;5741:26;5738:46;;;5780:1;5777;5770:12;5738:46;5803:2;5852;5837:18;;5824:32;;-1:-1:-1;5903:2:88;5888:18;;;5875:32;;5384:529;-1:-1:-1;;;5384:529:88:o;5918:288::-;6093:2;6082:9;6075:21;6056:4;6113:44;6153:2;6142:9;6138:18;6130:6;6113:44;:::i;:::-;6105:52;;6193:6;6188:2;6177:9;6173:18;6166:34;5918:288;;;;;:::o;6703:127::-;6764:10;6759:3;6755:20;6752:1;6745:31;6795:4;6792:1;6785:15;6819:4;6816:1;6809:15;6835:232;6874:3;6895:17;;;6892:140;;6954:10;6949:3;6945:20;6942:1;6935:31;6989:4;6986:1;6979:15;7017:4;7014:1;7007:15;6892:140;-1:-1:-1;7059:1:88;7048:13;;6835:232::o;7296:184::-;7366:6;7419:2;7407:9;7398:7;7394:23;7390:32;7387:52;;;7435:1;7432;7425:12;7387:52;-1:-1:-1;7458:16:88;;7296:184;-1:-1:-1;7296:184:88:o;7485:271::-;7668:6;7660;7655:3;7642:33;7624:3;7694:16;;7719:13;;;7694:16;7485:271;-1:-1:-1;7485:271:88:o;8879:521::-;8956:4;8962:6;9022:11;9009:25;9116:2;9112:7;9101:8;9085:14;9081:29;9077:43;9057:18;9053:68;9043:96;;9135:1;9132;9125:12;9043:96;9162:33;;9214:20;;;-1:-1:-1;9257:18:88;9246:30;;9243:50;;;9289:1;9286;9279:12;9243:50;9322:4;9310:17;;-1:-1:-1;9353:14:88;9349:27;;;9339:38;;9336:58;;;9390:1;9387;9380:12",
276
- "linkReferences": {},
277
- "immutableReferences": {
278
- "155": [
279
- { "start": 502, "length": 32 },
280
- { "start": 797, "length": 32 },
281
- { "start": 948, "length": 32 },
282
- { "start": 1199, "length": 32 },
283
- { "start": 1347, "length": 32 },
284
- { "start": 1459, "length": 32 },
285
- { "start": 1820, "length": 32 },
286
- { "start": 2235, "length": 32 }
287
- ]
288
- }
289
- },
290
- "methodIdentifiers": {
291
- "VERSION()": "ffa1ad74",
292
- "activateAndCall(address,bytes)": "c458b07b",
293
- "addStake(uint32)": "0396cb60",
294
- "deposit()": "d0e30db0",
295
- "entryPoint()": "b0d691fe",
296
- "getDeposit()": "c399ec88",
297
- "getLastOpMode()": "255ed947",
298
- "owner()": "8da5cb5b",
299
- "postOp(uint8,bytes,uint256)": "a9a23409",
300
- "renounceOwnership()": "715018a6",
301
- "setOperators(address[],bool)": "a3111bdb",
302
- "transferOwnership(address)": "f2fde38b",
303
- "unlockStake()": "bb9fe6bf",
304
- "validatePaymasterUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": "f465c77e",
305
- "withdrawStake(address)": "c23a5cea",
306
- "withdrawTo(address,uint256)": "205c2878"
307
- },
308
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Inactive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidPaymasterAndDataLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"activateAndCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entryPoint\",\"outputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastOpMode\",\"outputs\":[{\"internalType\":\"enum IPaymaster.PostOpMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IPaymaster.PostOpMode\",\"name\":\"mode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"}],\"name\":\"postOp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"isAllowed\",\"type\":\"bool\"}],\"name\":\"setOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maxCost\",\"type\":\"uint256\"}],\"name\":\"validatePaymasterUserOp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Fun.xyz\",\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- the unstake delay for this paymaster. Can only be increased.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"postOp(uint8,bytes,uint256)\":{\"params\":{\"actualGasCost\":\"- actual gas used so far (without this postOp call).\",\"context\":\"- the context value returned by validatePaymasterUserOp\",\"mode\":\"enum with the following options: opSucceeded - user operation succeeded. opReverted - user op reverted. still has to pay for gas. postOpReverted - user op succeeded, but caused postOp (in mode=opSucceeded) to revert. Now this is the 2nd call, after user's op was deliberately reverted.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"validatePaymasterUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)\":{\"params\":{\"maxCost\":\"the maximum cost of this transaction (based on maximum gas and gas price from userOp)\",\"userOp\":\"the user operation\",\"userOpHash\":\"hash of the user's request data.\"},\"returns\":{\"context\":\"value to send to a postOp zero length to signify postOp is not required.\",\"validationData\":\"signature and time-range of this operation, encoded the same as the return value of validateUserOperation <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an \\\"authorizer\\\" contract. <6-byte> validUntil - last timestamp this operation is valid. 0 for \\\"indefinite\\\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly.\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"the address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"amount\":\"to withdraw\",\"withdrawAddress\":\"target to send to\"}}},\"title\":\"CheckoutPaymaster\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake(uint32)\":{\"notice\":\"add stake for this paymaster. This method can also carry eth value to add to the current stake.\"},\"deposit()\":{\"notice\":\"add a deposit for this paymaster, used for paying for transaction fees\"},\"getDeposit()\":{\"notice\":\"return current paymaster's deposit on the entryPoint.\"},\"postOp(uint8,bytes,uint256)\":{\"notice\":\"post-operation handler. Must verify sender is the entryPoint\"},\"unlockStake()\":{\"notice\":\"unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again\"},\"validatePaymasterUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)\":{\"notice\":\"payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted) The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns.\"},\"withdrawStake(address)\":{\"notice\":\"withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)\"},\"withdrawTo(address,uint256)\":{\"notice\":\"withdraw value from the deposit\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/paymaster/CheckoutPaymaster.sol\":\"CheckoutPaymaster\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@account-abstraction/contracts/=lib/account-abstraction/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/account-abstraction/contracts/core/BasePaymaster.sol\":{\"keccak256\":\"0x27f658d545b5f26c2e09a7ac4fba72f9975433839d10225a520e557540b84443\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://426f0c6565ae612d34ae184fb1582e6fc360abf79450975c1c2dd439184094a0\",\"dweb:/ipfs/QmZMeMosC1P6Z5BQyT6iGFQrY6ui5ART65ycVWmXFnDpoq\"]},\"lib/account-abstraction/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/interfaces/InspectablePaymasterInterface.sol\":{\"keccak256\":\"0xfa01cf6d6c5c7585be4ffba481461417568e83e4326e4d4f3f978f448c494c05\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://359879084737d058f0098e12d25170e8181bf597231cb440302a945d6483e638\",\"dweb:/ipfs/QmWjJtxkBGXk8MmrVQCqp2gjyyibTmMc6b6GwQLcrcGyNp\"]},\"src/paymaster/CheckoutPaymaster.sol\":{\"keccak256\":\"0x750ce14a013dca17e026f47f3e1f141c7941983a9e38d66d79ad32f7dd4f64d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e0a9a642e69bbba805719b3c12144f2e32d3e2b70d24392ae7b09dd72a9510c6\",\"dweb:/ipfs/Qma8sDR2eC1pjAjkizjNhBnBbMvZV1x6pv82Z4xjNHvnaW\"]},\"src/paymaster/CheckoutPaymasterEventsAndErrors.sol\":{\"keccak256\":\"0xff791f10ae484b55407bdfa6f82516187388264e8e84bccd7571486c6ee08c37\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0df9a5fbbe1aa679422daa50a9f25a1fdd84df2a939903d9dd3f90d3a88f99e2\",\"dweb:/ipfs/QmPFaWWrb49R8WZizNKC7LN9YhWuhF7wey6cZKQg2WkMnr\"]}},\"version\":1}",
309
- "metadata": {
310
- "compiler": { "version": "0.8.20+commit.a1b79de6" },
311
- "language": "Solidity",
312
- "output": {
313
- "abi": [
314
- {
315
- "inputs": [
316
- {
317
- "internalType": "contract IEntryPoint",
318
- "name": "entryPoint",
319
- "type": "address"
320
- }
321
- ],
322
- "stateMutability": "nonpayable",
323
- "type": "constructor"
324
- },
325
- { "inputs": [], "type": "error", "name": "Inactive" },
326
- {
327
- "inputs": [
328
- { "internalType": "address", "name": "operator", "type": "address" }
329
- ],
330
- "type": "error",
331
- "name": "InvalidOperator"
332
- },
333
- {
334
- "inputs": [
335
- { "internalType": "uint256", "name": "length", "type": "uint256" }
336
- ],
337
- "type": "error",
338
- "name": "InvalidPaymasterAndDataLength"
339
- },
340
- {
341
- "inputs": [
342
- {
343
- "internalType": "address",
344
- "name": "previousOwner",
345
- "type": "address",
346
- "indexed": true
347
- },
348
- {
349
- "internalType": "address",
350
- "name": "newOwner",
351
- "type": "address",
352
- "indexed": true
353
- }
354
- ],
355
- "type": "event",
356
- "name": "OwnershipTransferred",
357
- "anonymous": false
358
- },
359
- {
360
- "inputs": [],
361
- "stateMutability": "view",
362
- "type": "function",
363
- "name": "VERSION",
364
- "outputs": [
365
- { "internalType": "uint256", "name": "", "type": "uint256" }
366
- ]
367
- },
368
- {
369
- "inputs": [
370
- { "internalType": "address", "name": "target", "type": "address" },
371
- { "internalType": "bytes", "name": "callData", "type": "bytes" }
372
- ],
373
- "stateMutability": "payable",
374
- "type": "function",
375
- "name": "activateAndCall",
376
- "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }]
377
- },
378
- {
379
- "inputs": [
380
- {
381
- "internalType": "uint32",
382
- "name": "unstakeDelaySec",
383
- "type": "uint32"
384
- }
385
- ],
386
- "stateMutability": "payable",
387
- "type": "function",
388
- "name": "addStake"
389
- },
390
- {
391
- "inputs": [],
392
- "stateMutability": "payable",
393
- "type": "function",
394
- "name": "deposit"
395
- },
396
- {
397
- "inputs": [],
398
- "stateMutability": "view",
399
- "type": "function",
400
- "name": "entryPoint",
401
- "outputs": [
402
- {
403
- "internalType": "contract IEntryPoint",
404
- "name": "",
405
- "type": "address"
406
- }
407
- ]
408
- },
409
- {
410
- "inputs": [],
411
- "stateMutability": "view",
412
- "type": "function",
413
- "name": "getDeposit",
414
- "outputs": [
415
- { "internalType": "uint256", "name": "", "type": "uint256" }
416
- ]
417
- },
418
- {
419
- "inputs": [],
420
- "stateMutability": "view",
421
- "type": "function",
422
- "name": "getLastOpMode",
423
- "outputs": [
424
- {
425
- "internalType": "enum IPaymaster.PostOpMode",
426
- "name": "",
427
- "type": "uint8"
428
- }
429
- ]
430
- },
431
- {
432
- "inputs": [],
433
- "stateMutability": "view",
434
- "type": "function",
435
- "name": "owner",
436
- "outputs": [
437
- { "internalType": "address", "name": "", "type": "address" }
438
- ]
439
- },
440
- {
441
- "inputs": [
442
- {
443
- "internalType": "enum IPaymaster.PostOpMode",
444
- "name": "mode",
445
- "type": "uint8"
446
- },
447
- { "internalType": "bytes", "name": "context", "type": "bytes" },
448
- {
449
- "internalType": "uint256",
450
- "name": "actualGasCost",
451
- "type": "uint256"
452
- }
453
- ],
454
- "stateMutability": "nonpayable",
455
- "type": "function",
456
- "name": "postOp"
457
- },
458
- {
459
- "inputs": [],
460
- "stateMutability": "nonpayable",
461
- "type": "function",
462
- "name": "renounceOwnership"
463
- },
464
- {
465
- "inputs": [
466
- {
467
- "internalType": "address[]",
468
- "name": "operators",
469
- "type": "address[]"
470
- },
471
- { "internalType": "bool", "name": "isAllowed", "type": "bool" }
472
- ],
473
- "stateMutability": "nonpayable",
474
- "type": "function",
475
- "name": "setOperators"
476
- },
477
- {
478
- "inputs": [
479
- { "internalType": "address", "name": "newOwner", "type": "address" }
480
- ],
481
- "stateMutability": "nonpayable",
482
- "type": "function",
483
- "name": "transferOwnership"
484
- },
485
- {
486
- "inputs": [],
487
- "stateMutability": "nonpayable",
488
- "type": "function",
489
- "name": "unlockStake"
490
- },
491
- {
492
- "inputs": [
493
- {
494
- "internalType": "struct UserOperation",
495
- "name": "userOp",
496
- "type": "tuple",
497
- "components": [
498
- {
499
- "internalType": "address",
500
- "name": "sender",
501
- "type": "address"
502
- },
503
- {
504
- "internalType": "uint256",
505
- "name": "nonce",
506
- "type": "uint256"
507
- },
508
- {
509
- "internalType": "bytes",
510
- "name": "initCode",
511
- "type": "bytes"
512
- },
513
- {
514
- "internalType": "bytes",
515
- "name": "callData",
516
- "type": "bytes"
517
- },
518
- {
519
- "internalType": "uint256",
520
- "name": "callGasLimit",
521
- "type": "uint256"
522
- },
523
- {
524
- "internalType": "uint256",
525
- "name": "verificationGasLimit",
526
- "type": "uint256"
527
- },
528
- {
529
- "internalType": "uint256",
530
- "name": "preVerificationGas",
531
- "type": "uint256"
532
- },
533
- {
534
- "internalType": "uint256",
535
- "name": "maxFeePerGas",
536
- "type": "uint256"
537
- },
538
- {
539
- "internalType": "uint256",
540
- "name": "maxPriorityFeePerGas",
541
- "type": "uint256"
542
- },
543
- {
544
- "internalType": "bytes",
545
- "name": "paymasterAndData",
546
- "type": "bytes"
547
- },
548
- {
549
- "internalType": "bytes",
550
- "name": "signature",
551
- "type": "bytes"
552
- }
553
- ]
554
- },
555
- {
556
- "internalType": "bytes32",
557
- "name": "userOpHash",
558
- "type": "bytes32"
559
- },
560
- { "internalType": "uint256", "name": "maxCost", "type": "uint256" }
561
- ],
562
- "stateMutability": "nonpayable",
563
- "type": "function",
564
- "name": "validatePaymasterUserOp",
565
- "outputs": [
566
- { "internalType": "bytes", "name": "context", "type": "bytes" },
567
- {
568
- "internalType": "uint256",
569
- "name": "validationData",
570
- "type": "uint256"
571
- }
572
- ]
573
- },
574
- {
575
- "inputs": [
576
- {
577
- "internalType": "address payable",
578
- "name": "withdrawAddress",
579
- "type": "address"
580
- }
581
- ],
582
- "stateMutability": "nonpayable",
583
- "type": "function",
584
- "name": "withdrawStake"
585
- },
586
- {
587
- "inputs": [
588
- {
589
- "internalType": "address payable",
590
- "name": "withdrawAddress",
591
- "type": "address"
592
- },
593
- { "internalType": "uint256", "name": "amount", "type": "uint256" }
594
- ],
595
- "stateMutability": "nonpayable",
596
- "type": "function",
597
- "name": "withdrawTo"
598
- }
599
- ],
600
- "devdoc": {
601
- "kind": "dev",
602
- "methods": {
603
- "addStake(uint32)": {
604
- "params": {
605
- "unstakeDelaySec": "- the unstake delay for this paymaster. Can only be increased."
606
- }
607
- },
608
- "owner()": { "details": "Returns the address of the current owner." },
609
- "postOp(uint8,bytes,uint256)": {
610
- "params": {
611
- "actualGasCost": "- actual gas used so far (without this postOp call).",
612
- "context": "- the context value returned by validatePaymasterUserOp",
613
- "mode": "enum with the following options: opSucceeded - user operation succeeded. opReverted - user op reverted. still has to pay for gas. postOpReverted - user op succeeded, but caused postOp (in mode=opSucceeded) to revert. Now this is the 2nd call, after user's op was deliberately reverted."
614
- }
615
- },
616
- "renounceOwnership()": {
617
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
618
- },
619
- "transferOwnership(address)": {
620
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
621
- },
622
- "validatePaymasterUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": {
623
- "params": {
624
- "maxCost": "the maximum cost of this transaction (based on maximum gas and gas price from userOp)",
625
- "userOp": "the user operation",
626
- "userOpHash": "hash of the user's request data."
627
- },
628
- "returns": {
629
- "context": "value to send to a postOp zero length to signify postOp is not required.",
630
- "validationData": "signature and time-range of this operation, encoded the same as the return value of validateUserOperation <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an \"authorizer\" contract. <6-byte> validUntil - last timestamp this operation is valid. 0 for \"indefinite\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly."
631
- }
632
- },
633
- "withdrawStake(address)": {
634
- "params": {
635
- "withdrawAddress": "the address to send withdrawn value."
636
- }
637
- },
638
- "withdrawTo(address,uint256)": {
639
- "params": {
640
- "amount": "to withdraw",
641
- "withdrawAddress": "target to send to"
642
- }
643
- }
644
- },
645
- "version": 1
646
- },
647
- "userdoc": {
648
- "kind": "user",
649
- "methods": {
650
- "addStake(uint32)": {
651
- "notice": "add stake for this paymaster. This method can also carry eth value to add to the current stake."
652
- },
653
- "deposit()": {
654
- "notice": "add a deposit for this paymaster, used for paying for transaction fees"
655
- },
656
- "getDeposit()": {
657
- "notice": "return current paymaster's deposit on the entryPoint."
658
- },
659
- "postOp(uint8,bytes,uint256)": {
660
- "notice": "post-operation handler. Must verify sender is the entryPoint"
661
- },
662
- "unlockStake()": {
663
- "notice": "unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again"
664
- },
665
- "validatePaymasterUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": {
666
- "notice": "payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted) The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns."
667
- },
668
- "withdrawStake(address)": {
669
- "notice": "withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)"
670
- },
671
- "withdrawTo(address,uint256)": {
672
- "notice": "withdraw value from the deposit"
673
- }
674
- },
675
- "version": 1
676
- }
677
- },
678
- "settings": {
679
- "remappings": [
680
- "@account-abstraction/contracts/=lib/account-abstraction/contracts/",
681
- "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
682
- "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
683
- "account-abstraction/=lib/account-abstraction/contracts/",
684
- "ds-test/=lib/forge-std/lib/ds-test/src/",
685
- "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
686
- "forge-std/=lib/forge-std/src/",
687
- "openzeppelin-contracts/=lib/openzeppelin-contracts/",
688
- "openzeppelin/=lib/openzeppelin-contracts/contracts/"
689
- ],
690
- "optimizer": { "enabled": true, "runs": 200 },
691
- "metadata": { "bytecodeHash": "ipfs" },
692
- "compilationTarget": {
693
- "src/paymaster/CheckoutPaymaster.sol": "CheckoutPaymaster"
694
- },
695
- "libraries": {}
696
- },
697
- "sources": {
698
- "lib/account-abstraction/contracts/core/BasePaymaster.sol": {
699
- "keccak256": "0x27f658d545b5f26c2e09a7ac4fba72f9975433839d10225a520e557540b84443",
700
- "urls": [
701
- "bzz-raw://426f0c6565ae612d34ae184fb1582e6fc360abf79450975c1c2dd439184094a0",
702
- "dweb:/ipfs/QmZMeMosC1P6Z5BQyT6iGFQrY6ui5ART65ycVWmXFnDpoq"
703
- ],
704
- "license": "GPL-3.0"
705
- },
706
- "lib/account-abstraction/contracts/core/Helpers.sol": {
707
- "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a",
708
- "urls": [
709
- "bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746",
710
- "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"
711
- ],
712
- "license": "GPL-3.0"
713
- },
714
- "lib/account-abstraction/contracts/interfaces/IAggregator.sol": {
715
- "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a",
716
- "urls": [
717
- "bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b",
718
- "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"
719
- ],
720
- "license": "GPL-3.0"
721
- },
722
- "lib/account-abstraction/contracts/interfaces/IEntryPoint.sol": {
723
- "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8",
724
- "urls": [
725
- "bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf",
726
- "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"
727
- ],
728
- "license": "GPL-3.0"
729
- },
730
- "lib/account-abstraction/contracts/interfaces/INonceManager.sol": {
731
- "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12",
732
- "urls": [
733
- "bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2",
734
- "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"
735
- ],
736
- "license": "GPL-3.0"
737
- },
738
- "lib/account-abstraction/contracts/interfaces/IPaymaster.sol": {
739
- "keccak256": "0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456",
740
- "urls": [
741
- "bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8",
742
- "dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"
743
- ],
744
- "license": "GPL-3.0"
745
- },
746
- "lib/account-abstraction/contracts/interfaces/IStakeManager.sol": {
747
- "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f",
748
- "urls": [
749
- "bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3",
750
- "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"
751
- ],
752
- "license": "GPL-3.0-only"
753
- },
754
- "lib/account-abstraction/contracts/interfaces/UserOperation.sol": {
755
- "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c",
756
- "urls": [
757
- "bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c",
758
- "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"
759
- ],
760
- "license": "GPL-3.0"
761
- },
762
- "lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
763
- "keccak256": "0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218",
764
- "urls": [
765
- "bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32",
766
- "dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"
767
- ],
768
- "license": "MIT"
769
- },
770
- "lib/openzeppelin-contracts/contracts/utils/Context.sol": {
771
- "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
772
- "urls": [
773
- "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
774
- "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
775
- ],
776
- "license": "MIT"
777
- },
778
- "src/interfaces/InspectablePaymasterInterface.sol": {
779
- "keccak256": "0xfa01cf6d6c5c7585be4ffba481461417568e83e4326e4d4f3f978f448c494c05",
780
- "urls": [
781
- "bzz-raw://359879084737d058f0098e12d25170e8181bf597231cb440302a945d6483e638",
782
- "dweb:/ipfs/QmWjJtxkBGXk8MmrVQCqp2gjyyibTmMc6b6GwQLcrcGyNp"
783
- ],
784
- "license": "UNLICENSED"
785
- },
786
- "src/paymaster/CheckoutPaymaster.sol": {
787
- "keccak256": "0x750ce14a013dca17e026f47f3e1f141c7941983a9e38d66d79ad32f7dd4f64d3",
788
- "urls": [
789
- "bzz-raw://e0a9a642e69bbba805719b3c12144f2e32d3e2b70d24392ae7b09dd72a9510c6",
790
- "dweb:/ipfs/Qma8sDR2eC1pjAjkizjNhBnBbMvZV1x6pv82Z4xjNHvnaW"
791
- ],
792
- "license": "UNLICENSED"
793
- },
794
- "src/paymaster/CheckoutPaymasterEventsAndErrors.sol": {
795
- "keccak256": "0xff791f10ae484b55407bdfa6f82516187388264e8e84bccd7571486c6ee08c37",
796
- "urls": [
797
- "bzz-raw://0df9a5fbbe1aa679422daa50a9f25a1fdd84df2a939903d9dd3f90d3a88f99e2",
798
- "dweb:/ipfs/QmPFaWWrb49R8WZizNKC7LN9YhWuhF7wey6cZKQg2WkMnr"
799
- ],
800
- "license": "UNLICENSED"
801
- }
802
- },
803
- "version": 1
804
- },
805
- "ast": {
806
- "absolutePath": "src/paymaster/CheckoutPaymaster.sol",
807
- "id": 54009,
808
- "exportedSymbols": {
809
- "ActiveState": [53806],
810
- "BasePaymaster": [361],
811
- "CheckoutPaymaster": [54008],
812
- "CheckoutPaymasterEventsAndErrors": [54021],
813
- "IEntryPoint": [857],
814
- "InspectablePaymasterInterface": [53775],
815
- "UserOperation": [1045]
816
- },
817
- "nodeType": "SourceUnit",
818
- "src": "39:3583:74",
819
- "nodes": [
820
- {
821
- "id": 53792,
822
- "nodeType": "PragmaDirective",
823
- "src": "39:24:74",
824
- "nodes": [],
825
- "literals": ["solidity", "^", "0.8", ".13"]
826
- },
827
- {
828
- "id": 53794,
829
- "nodeType": "ImportDirective",
830
- "src": "65:90:74",
831
- "nodes": [],
832
- "absolutePath": "lib/account-abstraction/contracts/core/BasePaymaster.sol",
833
- "file": "@account-abstraction/contracts/core/BasePaymaster.sol",
834
- "nameLocation": "-1:-1:-1",
835
- "scope": 54009,
836
- "sourceUnit": 362,
837
- "symbolAliases": [
838
- {
839
- "foreign": {
840
- "id": 53793,
841
- "name": "BasePaymaster",
842
- "nodeType": "Identifier",
843
- "overloadedDeclarations": [],
844
- "referencedDeclaration": 361,
845
- "src": "78:13:74",
846
- "typeDescriptions": {}
847
- },
848
- "nameLocation": "-1:-1:-1"
849
- }
850
- ],
851
- "unitAlias": ""
852
- },
853
- {
854
- "id": 53796,
855
- "nodeType": "ImportDirective",
856
- "src": "156:92:74",
857
- "nodes": [],
858
- "absolutePath": "lib/account-abstraction/contracts/interfaces/IEntryPoint.sol",
859
- "file": "@account-abstraction/contracts/interfaces/IEntryPoint.sol",
860
- "nameLocation": "-1:-1:-1",
861
- "scope": 54009,
862
- "sourceUnit": 858,
863
- "symbolAliases": [
864
- {
865
- "foreign": {
866
- "id": 53795,
867
- "name": "IEntryPoint",
868
- "nodeType": "Identifier",
869
- "overloadedDeclarations": [],
870
- "referencedDeclaration": 857,
871
- "src": "169:11:74",
872
- "typeDescriptions": {}
873
- },
874
- "nameLocation": "-1:-1:-1"
875
- }
876
- ],
877
- "unitAlias": ""
878
- },
879
- {
880
- "id": 53798,
881
- "nodeType": "ImportDirective",
882
- "src": "249:96:74",
883
- "nodes": [],
884
- "absolutePath": "lib/account-abstraction/contracts/interfaces/UserOperation.sol",
885
- "file": "@account-abstraction/contracts/interfaces/UserOperation.sol",
886
- "nameLocation": "-1:-1:-1",
887
- "scope": 54009,
888
- "sourceUnit": 1216,
889
- "symbolAliases": [
890
- {
891
- "foreign": {
892
- "id": 53797,
893
- "name": "UserOperation",
894
- "nodeType": "Identifier",
895
- "overloadedDeclarations": [],
896
- "referencedDeclaration": 1045,
897
- "src": "262:13:74",
898
- "typeDescriptions": {}
899
- },
900
- "nameLocation": "-1:-1:-1"
901
- }
902
- ],
903
- "unitAlias": ""
904
- },
905
- {
906
- "id": 53800,
907
- "nodeType": "ImportDirective",
908
- "src": "347:100:74",
909
- "nodes": [],
910
- "absolutePath": "src/interfaces/InspectablePaymasterInterface.sol",
911
- "file": "../interfaces/InspectablePaymasterInterface.sol",
912
- "nameLocation": "-1:-1:-1",
913
- "scope": 54009,
914
- "sourceUnit": 53776,
915
- "symbolAliases": [
916
- {
917
- "foreign": {
918
- "id": 53799,
919
- "name": "InspectablePaymasterInterface",
920
- "nodeType": "Identifier",
921
- "overloadedDeclarations": [],
922
- "referencedDeclaration": 53775,
923
- "src": "360:29:74",
924
- "typeDescriptions": {}
925
- },
926
- "nameLocation": "-1:-1:-1"
927
- }
928
- ],
929
- "unitAlias": ""
930
- },
931
- {
932
- "id": 53802,
933
- "nodeType": "ImportDirective",
934
- "src": "448:94:74",
935
- "nodes": [],
936
- "absolutePath": "src/paymaster/CheckoutPaymasterEventsAndErrors.sol",
937
- "file": "./CheckoutPaymasterEventsAndErrors.sol",
938
- "nameLocation": "-1:-1:-1",
939
- "scope": 54009,
940
- "sourceUnit": 54022,
941
- "symbolAliases": [
942
- {
943
- "foreign": {
944
- "id": 53801,
945
- "name": "CheckoutPaymasterEventsAndErrors",
946
- "nodeType": "Identifier",
947
- "overloadedDeclarations": [],
948
- "referencedDeclaration": 54021,
949
- "src": "461:32:74",
950
- "typeDescriptions": {}
951
- },
952
- "nameLocation": "-1:-1:-1"
953
- }
954
- ],
955
- "unitAlias": ""
956
- },
957
- {
958
- "id": 53806,
959
- "nodeType": "EnumDefinition",
960
- "src": "544:77:74",
961
- "nodes": [],
962
- "canonicalName": "ActiveState",
963
- "members": [
964
- {
965
- "id": 53803,
966
- "name": "UNSPECIFIED",
967
- "nameLocation": "567:11:74",
968
- "nodeType": "EnumValue",
969
- "src": "567:11:74"
970
- },
971
- {
972
- "id": 53804,
973
- "name": "INACTIVE",
974
- "nameLocation": "589:8:74",
975
- "nodeType": "EnumValue",
976
- "src": "589:8:74"
977
- },
978
- {
979
- "id": 53805,
980
- "name": "ACTIVE",
981
- "nameLocation": "608:6:74",
982
- "nodeType": "EnumValue",
983
- "src": "608:6:74"
984
- }
985
- ],
986
- "name": "ActiveState",
987
- "nameLocation": "549:11:74"
988
- },
989
- {
990
- "id": 54008,
991
- "nodeType": "ContractDefinition",
992
- "src": "678:2943:74",
993
- "nodes": [
994
- {
995
- "id": 53816,
996
- "nodeType": "VariableDeclaration",
997
- "src": "805:35:74",
998
- "nodes": [],
999
- "constant": true,
1000
- "functionSelector": "ffa1ad74",
1001
- "mutability": "constant",
1002
- "name": "VERSION",
1003
- "nameLocation": "829:7:74",
1004
- "scope": 54008,
1005
- "stateVariable": true,
1006
- "storageLocation": "default",
1007
- "typeDescriptions": {
1008
- "typeIdentifier": "t_uint256",
1009
- "typeString": "uint256"
1010
- },
1011
- "typeName": {
1012
- "id": 53814,
1013
- "name": "uint256",
1014
- "nodeType": "ElementaryTypeName",
1015
- "src": "805:7:74",
1016
- "typeDescriptions": {
1017
- "typeIdentifier": "t_uint256",
1018
- "typeString": "uint256"
1019
- }
1020
- },
1021
- "value": {
1022
- "hexValue": "31",
1023
- "id": 53815,
1024
- "isConstant": false,
1025
- "isLValue": false,
1026
- "isPure": true,
1027
- "kind": "number",
1028
- "lValueRequested": false,
1029
- "nodeType": "Literal",
1030
- "src": "839:1:74",
1031
- "typeDescriptions": {
1032
- "typeIdentifier": "t_rational_1_by_1",
1033
- "typeString": "int_const 1"
1034
- },
1035
- "value": "1"
1036
- },
1037
- "visibility": "public"
1038
- },
1039
- {
1040
- "id": 53819,
1041
- "nodeType": "VariableDeclaration",
1042
- "src": "846:35:74",
1043
- "nodes": [],
1044
- "constant": false,
1045
- "mutability": "mutable",
1046
- "name": "_ACTIVE_STATE_",
1047
- "nameLocation": "867:14:74",
1048
- "scope": 54008,
1049
- "stateVariable": true,
1050
- "storageLocation": "default",
1051
- "typeDescriptions": {
1052
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1053
- "typeString": "enum ActiveState"
1054
- },
1055
- "typeName": {
1056
- "id": 53818,
1057
- "nodeType": "UserDefinedTypeName",
1058
- "pathNode": {
1059
- "id": 53817,
1060
- "name": "ActiveState",
1061
- "nameLocations": ["846:11:74"],
1062
- "nodeType": "IdentifierPath",
1063
- "referencedDeclaration": 53806,
1064
- "src": "846:11:74"
1065
- },
1066
- "referencedDeclaration": 53806,
1067
- "src": "846:11:74",
1068
- "typeDescriptions": {
1069
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1070
- "typeString": "enum ActiveState"
1071
- }
1072
- },
1073
- "visibility": "internal"
1074
- },
1075
- {
1076
- "id": 53822,
1077
- "nodeType": "VariableDeclaration",
1078
- "src": "887:34:74",
1079
- "nodes": [],
1080
- "constant": false,
1081
- "mutability": "mutable",
1082
- "name": "_LAST_OP_MODE_",
1083
- "nameLocation": "907:14:74",
1084
- "scope": 54008,
1085
- "stateVariable": true,
1086
- "storageLocation": "default",
1087
- "typeDescriptions": {
1088
- "typeIdentifier": "t_enum$_PostOpMode_$884",
1089
- "typeString": "enum IPaymaster.PostOpMode"
1090
- },
1091
- "typeName": {
1092
- "id": 53821,
1093
- "nodeType": "UserDefinedTypeName",
1094
- "pathNode": {
1095
- "id": 53820,
1096
- "name": "PostOpMode",
1097
- "nameLocations": ["887:10:74"],
1098
- "nodeType": "IdentifierPath",
1099
- "referencedDeclaration": 884,
1100
- "src": "887:10:74"
1101
- },
1102
- "referencedDeclaration": 884,
1103
- "src": "887:10:74",
1104
- "typeDescriptions": {
1105
- "typeIdentifier": "t_enum$_PostOpMode_$884",
1106
- "typeString": "enum IPaymaster.PostOpMode"
1107
- }
1108
- },
1109
- "visibility": "internal"
1110
- },
1111
- {
1112
- "id": 53826,
1113
- "nodeType": "VariableDeclaration",
1114
- "src": "1005:45:74",
1115
- "nodes": [],
1116
- "constant": false,
1117
- "mutability": "mutable",
1118
- "name": "_OPERATORS_",
1119
- "nameLocation": "1039:11:74",
1120
- "scope": 54008,
1121
- "stateVariable": true,
1122
- "storageLocation": "default",
1123
- "typeDescriptions": {
1124
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
1125
- "typeString": "mapping(address => bool)"
1126
- },
1127
- "typeName": {
1128
- "id": 53825,
1129
- "keyName": "",
1130
- "keyNameLocation": "-1:-1:-1",
1131
- "keyType": {
1132
- "id": 53823,
1133
- "name": "address",
1134
- "nodeType": "ElementaryTypeName",
1135
- "src": "1013:7:74",
1136
- "typeDescriptions": {
1137
- "typeIdentifier": "t_address",
1138
- "typeString": "address"
1139
- }
1140
- },
1141
- "nodeType": "Mapping",
1142
- "src": "1005:24:74",
1143
- "typeDescriptions": {
1144
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
1145
- "typeString": "mapping(address => bool)"
1146
- },
1147
- "valueName": "",
1148
- "valueNameLocation": "-1:-1:-1",
1149
- "valueType": {
1150
- "id": 53824,
1151
- "name": "bool",
1152
- "nodeType": "ElementaryTypeName",
1153
- "src": "1024:4:74",
1154
- "typeDescriptions": {
1155
- "typeIdentifier": "t_bool",
1156
- "typeString": "bool"
1157
- }
1158
- }
1159
- },
1160
- "visibility": "internal"
1161
- },
1162
- {
1163
- "id": 53852,
1164
- "nodeType": "ModifierDefinition",
1165
- "src": "1057:228:74",
1166
- "nodes": [],
1167
- "body": {
1168
- "id": 53851,
1169
- "nodeType": "Block",
1170
- "src": "1077:208:74",
1171
- "nodes": [],
1172
- "statements": [
1173
- {
1174
- "condition": {
1175
- "id": 53832,
1176
- "isConstant": false,
1177
- "isLValue": false,
1178
- "isPure": false,
1179
- "lValueRequested": false,
1180
- "nodeType": "UnaryOperation",
1181
- "operator": "!",
1182
- "prefix": true,
1183
- "src": "1091:24:74",
1184
- "subExpression": {
1185
- "baseExpression": {
1186
- "id": 53828,
1187
- "name": "_OPERATORS_",
1188
- "nodeType": "Identifier",
1189
- "overloadedDeclarations": [],
1190
- "referencedDeclaration": 53826,
1191
- "src": "1092:11:74",
1192
- "typeDescriptions": {
1193
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
1194
- "typeString": "mapping(address => bool)"
1195
- }
1196
- },
1197
- "id": 53831,
1198
- "indexExpression": {
1199
- "expression": {
1200
- "id": 53829,
1201
- "name": "msg",
1202
- "nodeType": "Identifier",
1203
- "overloadedDeclarations": [],
1204
- "referencedDeclaration": -15,
1205
- "src": "1104:3:74",
1206
- "typeDescriptions": {
1207
- "typeIdentifier": "t_magic_message",
1208
- "typeString": "msg"
1209
- }
1210
- },
1211
- "id": 53830,
1212
- "isConstant": false,
1213
- "isLValue": false,
1214
- "isPure": false,
1215
- "lValueRequested": false,
1216
- "memberLocation": "1108:6:74",
1217
- "memberName": "sender",
1218
- "nodeType": "MemberAccess",
1219
- "src": "1104:10:74",
1220
- "typeDescriptions": {
1221
- "typeIdentifier": "t_address",
1222
- "typeString": "address"
1223
- }
1224
- },
1225
- "isConstant": false,
1226
- "isLValue": true,
1227
- "isPure": false,
1228
- "lValueRequested": false,
1229
- "nodeType": "IndexAccess",
1230
- "src": "1092:23:74",
1231
- "typeDescriptions": {
1232
- "typeIdentifier": "t_bool",
1233
- "typeString": "bool"
1234
- }
1235
- },
1236
- "typeDescriptions": {
1237
- "typeIdentifier": "t_bool",
1238
- "typeString": "bool"
1239
- }
1240
- },
1241
- "id": 53839,
1242
- "nodeType": "IfStatement",
1243
- "src": "1087:89:74",
1244
- "trueBody": {
1245
- "id": 53838,
1246
- "nodeType": "Block",
1247
- "src": "1117:59:74",
1248
- "statements": [
1249
- {
1250
- "errorCall": {
1251
- "arguments": [
1252
- {
1253
- "expression": {
1254
- "id": 53834,
1255
- "name": "msg",
1256
- "nodeType": "Identifier",
1257
- "overloadedDeclarations": [],
1258
- "referencedDeclaration": -15,
1259
- "src": "1154:3:74",
1260
- "typeDescriptions": {
1261
- "typeIdentifier": "t_magic_message",
1262
- "typeString": "msg"
1263
- }
1264
- },
1265
- "id": 53835,
1266
- "isConstant": false,
1267
- "isLValue": false,
1268
- "isPure": false,
1269
- "lValueRequested": false,
1270
- "memberLocation": "1158:6:74",
1271
- "memberName": "sender",
1272
- "nodeType": "MemberAccess",
1273
- "src": "1154:10:74",
1274
- "typeDescriptions": {
1275
- "typeIdentifier": "t_address",
1276
- "typeString": "address"
1277
- }
1278
- }
1279
- ],
1280
- "expression": {
1281
- "argumentTypes": [
1282
- {
1283
- "typeIdentifier": "t_address",
1284
- "typeString": "address"
1285
- }
1286
- ],
1287
- "id": 53833,
1288
- "name": "InvalidOperator",
1289
- "nodeType": "Identifier",
1290
- "overloadedDeclarations": [],
1291
- "referencedDeclaration": 54016,
1292
- "src": "1138:15:74",
1293
- "typeDescriptions": {
1294
- "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
1295
- "typeString": "function (address) pure"
1296
- }
1297
- },
1298
- "id": 53836,
1299
- "isConstant": false,
1300
- "isLValue": false,
1301
- "isPure": false,
1302
- "kind": "functionCall",
1303
- "lValueRequested": false,
1304
- "nameLocations": [],
1305
- "names": [],
1306
- "nodeType": "FunctionCall",
1307
- "src": "1138:27:74",
1308
- "tryCall": false,
1309
- "typeDescriptions": {
1310
- "typeIdentifier": "t_tuple$__$",
1311
- "typeString": "tuple()"
1312
- }
1313
- },
1314
- "id": 53837,
1315
- "nodeType": "RevertStatement",
1316
- "src": "1131:34:74"
1317
- }
1318
- ]
1319
- }
1320
- },
1321
- {
1322
- "expression": {
1323
- "id": 53843,
1324
- "isConstant": false,
1325
- "isLValue": false,
1326
- "isPure": false,
1327
- "lValueRequested": false,
1328
- "leftHandSide": {
1329
- "id": 53840,
1330
- "name": "_ACTIVE_STATE_",
1331
- "nodeType": "Identifier",
1332
- "overloadedDeclarations": [],
1333
- "referencedDeclaration": 53819,
1334
- "src": "1185:14:74",
1335
- "typeDescriptions": {
1336
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1337
- "typeString": "enum ActiveState"
1338
- }
1339
- },
1340
- "nodeType": "Assignment",
1341
- "operator": "=",
1342
- "rightHandSide": {
1343
- "expression": {
1344
- "id": 53841,
1345
- "name": "ActiveState",
1346
- "nodeType": "Identifier",
1347
- "overloadedDeclarations": [],
1348
- "referencedDeclaration": 53806,
1349
- "src": "1202:11:74",
1350
- "typeDescriptions": {
1351
- "typeIdentifier": "t_type$_t_enum$_ActiveState_$53806_$",
1352
- "typeString": "type(enum ActiveState)"
1353
- }
1354
- },
1355
- "id": 53842,
1356
- "isConstant": false,
1357
- "isLValue": false,
1358
- "isPure": true,
1359
- "lValueRequested": false,
1360
- "memberLocation": "1214:6:74",
1361
- "memberName": "ACTIVE",
1362
- "nodeType": "MemberAccess",
1363
- "referencedDeclaration": 53805,
1364
- "src": "1202:18:74",
1365
- "typeDescriptions": {
1366
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1367
- "typeString": "enum ActiveState"
1368
- }
1369
- },
1370
- "src": "1185:35:74",
1371
- "typeDescriptions": {
1372
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1373
- "typeString": "enum ActiveState"
1374
- }
1375
- },
1376
- "id": 53844,
1377
- "nodeType": "ExpressionStatement",
1378
- "src": "1185:35:74"
1379
- },
1380
- {
1381
- "id": 53845,
1382
- "nodeType": "PlaceholderStatement",
1383
- "src": "1230:1:74"
1384
- },
1385
- {
1386
- "expression": {
1387
- "id": 53849,
1388
- "isConstant": false,
1389
- "isLValue": false,
1390
- "isPure": false,
1391
- "lValueRequested": false,
1392
- "leftHandSide": {
1393
- "id": 53846,
1394
- "name": "_ACTIVE_STATE_",
1395
- "nodeType": "Identifier",
1396
- "overloadedDeclarations": [],
1397
- "referencedDeclaration": 53819,
1398
- "src": "1241:14:74",
1399
- "typeDescriptions": {
1400
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1401
- "typeString": "enum ActiveState"
1402
- }
1403
- },
1404
- "nodeType": "Assignment",
1405
- "operator": "=",
1406
- "rightHandSide": {
1407
- "expression": {
1408
- "id": 53847,
1409
- "name": "ActiveState",
1410
- "nodeType": "Identifier",
1411
- "overloadedDeclarations": [],
1412
- "referencedDeclaration": 53806,
1413
- "src": "1258:11:74",
1414
- "typeDescriptions": {
1415
- "typeIdentifier": "t_type$_t_enum$_ActiveState_$53806_$",
1416
- "typeString": "type(enum ActiveState)"
1417
- }
1418
- },
1419
- "id": 53848,
1420
- "isConstant": false,
1421
- "isLValue": false,
1422
- "isPure": true,
1423
- "lValueRequested": false,
1424
- "memberLocation": "1270:8:74",
1425
- "memberName": "INACTIVE",
1426
- "nodeType": "MemberAccess",
1427
- "referencedDeclaration": 53804,
1428
- "src": "1258:20:74",
1429
- "typeDescriptions": {
1430
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1431
- "typeString": "enum ActiveState"
1432
- }
1433
- },
1434
- "src": "1241:37:74",
1435
- "typeDescriptions": {
1436
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1437
- "typeString": "enum ActiveState"
1438
- }
1439
- },
1440
- "id": 53850,
1441
- "nodeType": "ExpressionStatement",
1442
- "src": "1241:37:74"
1443
- }
1444
- ]
1445
- },
1446
- "name": "activate",
1447
- "nameLocation": "1066:8:74",
1448
- "parameters": {
1449
- "id": 53827,
1450
- "nodeType": "ParameterList",
1451
- "parameters": [],
1452
- "src": "1074:2:74"
1453
- },
1454
- "virtual": false,
1455
- "visibility": "internal"
1456
- },
1457
- {
1458
- "id": 53865,
1459
- "nodeType": "ModifierDefinition",
1460
- "src": "1291:131:74",
1461
- "nodes": [],
1462
- "body": {
1463
- "id": 53864,
1464
- "nodeType": "Block",
1465
- "src": "1311:111:74",
1466
- "nodes": [],
1467
- "statements": [
1468
- {
1469
- "condition": {
1470
- "commonType": {
1471
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1472
- "typeString": "enum ActiveState"
1473
- },
1474
- "id": 53857,
1475
- "isConstant": false,
1476
- "isLValue": false,
1477
- "isPure": false,
1478
- "lValueRequested": false,
1479
- "leftExpression": {
1480
- "id": 53854,
1481
- "name": "_ACTIVE_STATE_",
1482
- "nodeType": "Identifier",
1483
- "overloadedDeclarations": [],
1484
- "referencedDeclaration": 53819,
1485
- "src": "1325:14:74",
1486
- "typeDescriptions": {
1487
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1488
- "typeString": "enum ActiveState"
1489
- }
1490
- },
1491
- "nodeType": "BinaryOperation",
1492
- "operator": "!=",
1493
- "rightExpression": {
1494
- "expression": {
1495
- "id": 53855,
1496
- "name": "ActiveState",
1497
- "nodeType": "Identifier",
1498
- "overloadedDeclarations": [],
1499
- "referencedDeclaration": 53806,
1500
- "src": "1343:11:74",
1501
- "typeDescriptions": {
1502
- "typeIdentifier": "t_type$_t_enum$_ActiveState_$53806_$",
1503
- "typeString": "type(enum ActiveState)"
1504
- }
1505
- },
1506
- "id": 53856,
1507
- "isConstant": false,
1508
- "isLValue": false,
1509
- "isPure": true,
1510
- "lValueRequested": false,
1511
- "memberLocation": "1355:6:74",
1512
- "memberName": "ACTIVE",
1513
- "nodeType": "MemberAccess",
1514
- "referencedDeclaration": 53805,
1515
- "src": "1343:18:74",
1516
- "typeDescriptions": {
1517
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1518
- "typeString": "enum ActiveState"
1519
- }
1520
- },
1521
- "src": "1325:36:74",
1522
- "typeDescriptions": {
1523
- "typeIdentifier": "t_bool",
1524
- "typeString": "bool"
1525
- }
1526
- },
1527
- "id": 53862,
1528
- "nodeType": "IfStatement",
1529
- "src": "1321:84:74",
1530
- "trueBody": {
1531
- "id": 53861,
1532
- "nodeType": "Block",
1533
- "src": "1363:42:74",
1534
- "statements": [
1535
- {
1536
- "errorCall": {
1537
- "arguments": [],
1538
- "expression": {
1539
- "argumentTypes": [],
1540
- "id": 53858,
1541
- "name": "Inactive",
1542
- "nodeType": "Identifier",
1543
- "overloadedDeclarations": [],
1544
- "referencedDeclaration": 54012,
1545
- "src": "1384:8:74",
1546
- "typeDescriptions": {
1547
- "typeIdentifier": "t_function_error_pure$__$returns$__$",
1548
- "typeString": "function () pure"
1549
- }
1550
- },
1551
- "id": 53859,
1552
- "isConstant": false,
1553
- "isLValue": false,
1554
- "isPure": false,
1555
- "kind": "functionCall",
1556
- "lValueRequested": false,
1557
- "nameLocations": [],
1558
- "names": [],
1559
- "nodeType": "FunctionCall",
1560
- "src": "1384:10:74",
1561
- "tryCall": false,
1562
- "typeDescriptions": {
1563
- "typeIdentifier": "t_tuple$__$",
1564
- "typeString": "tuple()"
1565
- }
1566
- },
1567
- "id": 53860,
1568
- "nodeType": "RevertStatement",
1569
- "src": "1377:17:74"
1570
- }
1571
- ]
1572
- }
1573
- },
1574
- {
1575
- "id": 53863,
1576
- "nodeType": "PlaceholderStatement",
1577
- "src": "1414:1:74"
1578
- }
1579
- ]
1580
- },
1581
- "name": "isActive",
1582
- "nameLocation": "1300:8:74",
1583
- "parameters": {
1584
- "id": 53853,
1585
- "nodeType": "ParameterList",
1586
- "parameters": [],
1587
- "src": "1308:2:74"
1588
- },
1589
- "virtual": false,
1590
- "visibility": "internal"
1591
- },
1592
- {
1593
- "id": 53880,
1594
- "nodeType": "FunctionDefinition",
1595
- "src": "1428:116:74",
1596
- "nodes": [],
1597
- "body": {
1598
- "id": 53879,
1599
- "nodeType": "Block",
1600
- "src": "1490:54:74",
1601
- "nodes": [],
1602
- "statements": [
1603
- {
1604
- "expression": {
1605
- "id": 53877,
1606
- "isConstant": false,
1607
- "isLValue": false,
1608
- "isPure": false,
1609
- "lValueRequested": false,
1610
- "leftHandSide": {
1611
- "id": 53874,
1612
- "name": "_ACTIVE_STATE_",
1613
- "nodeType": "Identifier",
1614
- "overloadedDeclarations": [],
1615
- "referencedDeclaration": 53819,
1616
- "src": "1500:14:74",
1617
- "typeDescriptions": {
1618
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1619
- "typeString": "enum ActiveState"
1620
- }
1621
- },
1622
- "nodeType": "Assignment",
1623
- "operator": "=",
1624
- "rightHandSide": {
1625
- "expression": {
1626
- "id": 53875,
1627
- "name": "ActiveState",
1628
- "nodeType": "Identifier",
1629
- "overloadedDeclarations": [],
1630
- "referencedDeclaration": 53806,
1631
- "src": "1517:11:74",
1632
- "typeDescriptions": {
1633
- "typeIdentifier": "t_type$_t_enum$_ActiveState_$53806_$",
1634
- "typeString": "type(enum ActiveState)"
1635
- }
1636
- },
1637
- "id": 53876,
1638
- "isConstant": false,
1639
- "isLValue": false,
1640
- "isPure": true,
1641
- "lValueRequested": false,
1642
- "memberLocation": "1529:8:74",
1643
- "memberName": "INACTIVE",
1644
- "nodeType": "MemberAccess",
1645
- "referencedDeclaration": 53804,
1646
- "src": "1517:20:74",
1647
- "typeDescriptions": {
1648
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1649
- "typeString": "enum ActiveState"
1650
- }
1651
- },
1652
- "src": "1500:37:74",
1653
- "typeDescriptions": {
1654
- "typeIdentifier": "t_enum$_ActiveState_$53806",
1655
- "typeString": "enum ActiveState"
1656
- }
1657
- },
1658
- "id": 53878,
1659
- "nodeType": "ExpressionStatement",
1660
- "src": "1500:37:74"
1661
- }
1662
- ]
1663
- },
1664
- "implemented": true,
1665
- "kind": "constructor",
1666
- "modifiers": [
1667
- {
1668
- "arguments": [
1669
- {
1670
- "id": 53871,
1671
- "name": "entryPoint",
1672
- "nodeType": "Identifier",
1673
- "overloadedDeclarations": [],
1674
- "referencedDeclaration": 53868,
1675
- "src": "1478:10:74",
1676
- "typeDescriptions": {
1677
- "typeIdentifier": "t_contract$_IEntryPoint_$857",
1678
- "typeString": "contract IEntryPoint"
1679
- }
1680
- }
1681
- ],
1682
- "id": 53872,
1683
- "kind": "baseConstructorSpecifier",
1684
- "modifierName": {
1685
- "id": 53870,
1686
- "name": "BasePaymaster",
1687
- "nameLocations": ["1464:13:74"],
1688
- "nodeType": "IdentifierPath",
1689
- "referencedDeclaration": 361,
1690
- "src": "1464:13:74"
1691
- },
1692
- "nodeType": "ModifierInvocation",
1693
- "src": "1464:25:74"
1694
- }
1695
- ],
1696
- "name": "",
1697
- "nameLocation": "-1:-1:-1",
1698
- "parameters": {
1699
- "id": 53869,
1700
- "nodeType": "ParameterList",
1701
- "parameters": [
1702
- {
1703
- "constant": false,
1704
- "id": 53868,
1705
- "mutability": "mutable",
1706
- "name": "entryPoint",
1707
- "nameLocation": "1452:10:74",
1708
- "nodeType": "VariableDeclaration",
1709
- "scope": 53880,
1710
- "src": "1440:22:74",
1711
- "stateVariable": false,
1712
- "storageLocation": "default",
1713
- "typeDescriptions": {
1714
- "typeIdentifier": "t_contract$_IEntryPoint_$857",
1715
- "typeString": "contract IEntryPoint"
1716
- },
1717
- "typeName": {
1718
- "id": 53867,
1719
- "nodeType": "UserDefinedTypeName",
1720
- "pathNode": {
1721
- "id": 53866,
1722
- "name": "IEntryPoint",
1723
- "nameLocations": ["1440:11:74"],
1724
- "nodeType": "IdentifierPath",
1725
- "referencedDeclaration": 857,
1726
- "src": "1440:11:74"
1727
- },
1728
- "referencedDeclaration": 857,
1729
- "src": "1440:11:74",
1730
- "typeDescriptions": {
1731
- "typeIdentifier": "t_contract$_IEntryPoint_$857",
1732
- "typeString": "contract IEntryPoint"
1733
- }
1734
- },
1735
- "visibility": "internal"
1736
- }
1737
- ],
1738
- "src": "1439:24:74"
1739
- },
1740
- "returnParameters": {
1741
- "id": 53873,
1742
- "nodeType": "ParameterList",
1743
- "parameters": [],
1744
- "src": "1490:0:74"
1745
- },
1746
- "scope": 54008,
1747
- "stateMutability": "nonpayable",
1748
- "virtual": false,
1749
- "visibility": "public"
1750
- },
1751
- {
1752
- "id": 53915,
1753
- "nodeType": "FunctionDefinition",
1754
- "src": "1550:253:74",
1755
- "nodes": [],
1756
- "body": {
1757
- "id": 53914,
1758
- "nodeType": "Block",
1759
- "src": "1659:144:74",
1760
- "nodes": [],
1761
- "statements": [
1762
- {
1763
- "assignments": [53891],
1764
- "declarations": [
1765
- {
1766
- "constant": false,
1767
- "id": 53891,
1768
- "mutability": "mutable",
1769
- "name": "n",
1770
- "nameLocation": "1677:1:74",
1771
- "nodeType": "VariableDeclaration",
1772
- "scope": 53914,
1773
- "src": "1669:9:74",
1774
- "stateVariable": false,
1775
- "storageLocation": "default",
1776
- "typeDescriptions": {
1777
- "typeIdentifier": "t_uint256",
1778
- "typeString": "uint256"
1779
- },
1780
- "typeName": {
1781
- "id": 53890,
1782
- "name": "uint256",
1783
- "nodeType": "ElementaryTypeName",
1784
- "src": "1669:7:74",
1785
- "typeDescriptions": {
1786
- "typeIdentifier": "t_uint256",
1787
- "typeString": "uint256"
1788
- }
1789
- },
1790
- "visibility": "internal"
1791
- }
1792
- ],
1793
- "id": 53894,
1794
- "initialValue": {
1795
- "expression": {
1796
- "id": 53892,
1797
- "name": "operators",
1798
- "nodeType": "Identifier",
1799
- "overloadedDeclarations": [],
1800
- "referencedDeclaration": 53883,
1801
- "src": "1681:9:74",
1802
- "typeDescriptions": {
1803
- "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
1804
- "typeString": "address[] calldata"
1805
- }
1806
- },
1807
- "id": 53893,
1808
- "isConstant": false,
1809
- "isLValue": false,
1810
- "isPure": false,
1811
- "lValueRequested": false,
1812
- "memberLocation": "1691:6:74",
1813
- "memberName": "length",
1814
- "nodeType": "MemberAccess",
1815
- "src": "1681:16:74",
1816
- "typeDescriptions": {
1817
- "typeIdentifier": "t_uint256",
1818
- "typeString": "uint256"
1819
- }
1820
- },
1821
- "nodeType": "VariableDeclarationStatement",
1822
- "src": "1669:28:74"
1823
- },
1824
- {
1825
- "body": {
1826
- "id": 53912,
1827
- "nodeType": "Block",
1828
- "src": "1735:62:74",
1829
- "statements": [
1830
- {
1831
- "expression": {
1832
- "id": 53910,
1833
- "isConstant": false,
1834
- "isLValue": false,
1835
- "isPure": false,
1836
- "lValueRequested": false,
1837
- "leftHandSide": {
1838
- "baseExpression": {
1839
- "id": 53904,
1840
- "name": "_OPERATORS_",
1841
- "nodeType": "Identifier",
1842
- "overloadedDeclarations": [],
1843
- "referencedDeclaration": 53826,
1844
- "src": "1749:11:74",
1845
- "typeDescriptions": {
1846
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
1847
- "typeString": "mapping(address => bool)"
1848
- }
1849
- },
1850
- "id": 53908,
1851
- "indexExpression": {
1852
- "baseExpression": {
1853
- "id": 53905,
1854
- "name": "operators",
1855
- "nodeType": "Identifier",
1856
- "overloadedDeclarations": [],
1857
- "referencedDeclaration": 53883,
1858
- "src": "1761:9:74",
1859
- "typeDescriptions": {
1860
- "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
1861
- "typeString": "address[] calldata"
1862
- }
1863
- },
1864
- "id": 53907,
1865
- "indexExpression": {
1866
- "id": 53906,
1867
- "name": "i",
1868
- "nodeType": "Identifier",
1869
- "overloadedDeclarations": [],
1870
- "referencedDeclaration": 53896,
1871
- "src": "1771:1:74",
1872
- "typeDescriptions": {
1873
- "typeIdentifier": "t_uint256",
1874
- "typeString": "uint256"
1875
- }
1876
- },
1877
- "isConstant": false,
1878
- "isLValue": false,
1879
- "isPure": false,
1880
- "lValueRequested": false,
1881
- "nodeType": "IndexAccess",
1882
- "src": "1761:12:74",
1883
- "typeDescriptions": {
1884
- "typeIdentifier": "t_address",
1885
- "typeString": "address"
1886
- }
1887
- },
1888
- "isConstant": false,
1889
- "isLValue": true,
1890
- "isPure": false,
1891
- "lValueRequested": true,
1892
- "nodeType": "IndexAccess",
1893
- "src": "1749:25:74",
1894
- "typeDescriptions": {
1895
- "typeIdentifier": "t_bool",
1896
- "typeString": "bool"
1897
- }
1898
- },
1899
- "nodeType": "Assignment",
1900
- "operator": "=",
1901
- "rightHandSide": {
1902
- "id": 53909,
1903
- "name": "isAllowed",
1904
- "nodeType": "Identifier",
1905
- "overloadedDeclarations": [],
1906
- "referencedDeclaration": 53885,
1907
- "src": "1777:9:74",
1908
- "typeDescriptions": {
1909
- "typeIdentifier": "t_bool",
1910
- "typeString": "bool"
1911
- }
1912
- },
1913
- "src": "1749:37:74",
1914
- "typeDescriptions": {
1915
- "typeIdentifier": "t_bool",
1916
- "typeString": "bool"
1917
- }
1918
- },
1919
- "id": 53911,
1920
- "nodeType": "ExpressionStatement",
1921
- "src": "1749:37:74"
1922
- }
1923
- ]
1924
- },
1925
- "condition": {
1926
- "commonType": {
1927
- "typeIdentifier": "t_uint256",
1928
- "typeString": "uint256"
1929
- },
1930
- "id": 53900,
1931
- "isConstant": false,
1932
- "isLValue": false,
1933
- "isPure": false,
1934
- "lValueRequested": false,
1935
- "leftExpression": {
1936
- "id": 53898,
1937
- "name": "i",
1938
- "nodeType": "Identifier",
1939
- "overloadedDeclarations": [],
1940
- "referencedDeclaration": 53896,
1941
- "src": "1723:1:74",
1942
- "typeDescriptions": {
1943
- "typeIdentifier": "t_uint256",
1944
- "typeString": "uint256"
1945
- }
1946
- },
1947
- "nodeType": "BinaryOperation",
1948
- "operator": "<",
1949
- "rightExpression": {
1950
- "id": 53899,
1951
- "name": "n",
1952
- "nodeType": "Identifier",
1953
- "overloadedDeclarations": [],
1954
- "referencedDeclaration": 53891,
1955
- "src": "1727:1:74",
1956
- "typeDescriptions": {
1957
- "typeIdentifier": "t_uint256",
1958
- "typeString": "uint256"
1959
- }
1960
- },
1961
- "src": "1723:5:74",
1962
- "typeDescriptions": {
1963
- "typeIdentifier": "t_bool",
1964
- "typeString": "bool"
1965
- }
1966
- },
1967
- "id": 53913,
1968
- "initializationExpression": {
1969
- "assignments": [53896],
1970
- "declarations": [
1971
- {
1972
- "constant": false,
1973
- "id": 53896,
1974
- "mutability": "mutable",
1975
- "name": "i",
1976
- "nameLocation": "1720:1:74",
1977
- "nodeType": "VariableDeclaration",
1978
- "scope": 53913,
1979
- "src": "1712:9:74",
1980
- "stateVariable": false,
1981
- "storageLocation": "default",
1982
- "typeDescriptions": {
1983
- "typeIdentifier": "t_uint256",
1984
- "typeString": "uint256"
1985
- },
1986
- "typeName": {
1987
- "id": 53895,
1988
- "name": "uint256",
1989
- "nodeType": "ElementaryTypeName",
1990
- "src": "1712:7:74",
1991
- "typeDescriptions": {
1992
- "typeIdentifier": "t_uint256",
1993
- "typeString": "uint256"
1994
- }
1995
- },
1996
- "visibility": "internal"
1997
- }
1998
- ],
1999
- "id": 53897,
2000
- "nodeType": "VariableDeclarationStatement",
2001
- "src": "1712:9:74"
2002
- },
2003
- "loopExpression": {
2004
- "expression": {
2005
- "id": 53902,
2006
- "isConstant": false,
2007
- "isLValue": false,
2008
- "isPure": false,
2009
- "lValueRequested": false,
2010
- "nodeType": "UnaryOperation",
2011
- "operator": "++",
2012
- "prefix": true,
2013
- "src": "1730:3:74",
2014
- "subExpression": {
2015
- "id": 53901,
2016
- "name": "i",
2017
- "nodeType": "Identifier",
2018
- "overloadedDeclarations": [],
2019
- "referencedDeclaration": 53896,
2020
- "src": "1732:1:74",
2021
- "typeDescriptions": {
2022
- "typeIdentifier": "t_uint256",
2023
- "typeString": "uint256"
2024
- }
2025
- },
2026
- "typeDescriptions": {
2027
- "typeIdentifier": "t_uint256",
2028
- "typeString": "uint256"
2029
- }
2030
- },
2031
- "id": 53903,
2032
- "nodeType": "ExpressionStatement",
2033
- "src": "1730:3:74"
2034
- },
2035
- "nodeType": "ForStatement",
2036
- "src": "1707:90:74"
2037
- }
2038
- ]
2039
- },
2040
- "functionSelector": "a3111bdb",
2041
- "implemented": true,
2042
- "kind": "function",
2043
- "modifiers": [
2044
- {
2045
- "id": 53888,
2046
- "kind": "modifierInvocation",
2047
- "modifierName": {
2048
- "id": 53887,
2049
- "name": "onlyOwner",
2050
- "nameLocations": ["1649:9:74"],
2051
- "nodeType": "IdentifierPath",
2052
- "referencedDeclaration": 45215,
2053
- "src": "1649:9:74"
2054
- },
2055
- "nodeType": "ModifierInvocation",
2056
- "src": "1649:9:74"
2057
- }
2058
- ],
2059
- "name": "setOperators",
2060
- "nameLocation": "1559:12:74",
2061
- "parameters": {
2062
- "id": 53886,
2063
- "nodeType": "ParameterList",
2064
- "parameters": [
2065
- {
2066
- "constant": false,
2067
- "id": 53883,
2068
- "mutability": "mutable",
2069
- "name": "operators",
2070
- "nameLocation": "1600:9:74",
2071
- "nodeType": "VariableDeclaration",
2072
- "scope": 53915,
2073
- "src": "1581:28:74",
2074
- "stateVariable": false,
2075
- "storageLocation": "calldata",
2076
- "typeDescriptions": {
2077
- "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
2078
- "typeString": "address[]"
2079
- },
2080
- "typeName": {
2081
- "baseType": {
2082
- "id": 53881,
2083
- "name": "address",
2084
- "nodeType": "ElementaryTypeName",
2085
- "src": "1581:7:74",
2086
- "stateMutability": "nonpayable",
2087
- "typeDescriptions": {
2088
- "typeIdentifier": "t_address",
2089
- "typeString": "address"
2090
- }
2091
- },
2092
- "id": 53882,
2093
- "nodeType": "ArrayTypeName",
2094
- "src": "1581:9:74",
2095
- "typeDescriptions": {
2096
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
2097
- "typeString": "address[]"
2098
- }
2099
- },
2100
- "visibility": "internal"
2101
- },
2102
- {
2103
- "constant": false,
2104
- "id": 53885,
2105
- "mutability": "mutable",
2106
- "name": "isAllowed",
2107
- "nameLocation": "1624:9:74",
2108
- "nodeType": "VariableDeclaration",
2109
- "scope": 53915,
2110
- "src": "1619:14:74",
2111
- "stateVariable": false,
2112
- "storageLocation": "default",
2113
- "typeDescriptions": {
2114
- "typeIdentifier": "t_bool",
2115
- "typeString": "bool"
2116
- },
2117
- "typeName": {
2118
- "id": 53884,
2119
- "name": "bool",
2120
- "nodeType": "ElementaryTypeName",
2121
- "src": "1619:4:74",
2122
- "typeDescriptions": {
2123
- "typeIdentifier": "t_bool",
2124
- "typeString": "bool"
2125
- }
2126
- },
2127
- "visibility": "internal"
2128
- }
2129
- ],
2130
- "src": "1571:68:74"
2131
- },
2132
- "returnParameters": {
2133
- "id": 53889,
2134
- "nodeType": "ParameterList",
2135
- "parameters": [],
2136
- "src": "1659:0:74"
2137
- },
2138
- "scope": 54008,
2139
- "stateMutability": "nonpayable",
2140
- "virtual": false,
2141
- "visibility": "external"
2142
- },
2143
- {
2144
- "id": 53949,
2145
- "nodeType": "FunctionDefinition",
2146
- "src": "1809:427:74",
2147
- "nodes": [],
2148
- "body": {
2149
- "id": 53948,
2150
- "nodeType": "Block",
2151
- "src": "1946:290:74",
2152
- "nodes": [],
2153
- "statements": [
2154
- {
2155
- "assignments": [53927, 53929],
2156
- "declarations": [
2157
- {
2158
- "constant": false,
2159
- "id": 53927,
2160
- "mutability": "mutable",
2161
- "name": "success",
2162
- "nameLocation": "1962:7:74",
2163
- "nodeType": "VariableDeclaration",
2164
- "scope": 53948,
2165
- "src": "1957:12:74",
2166
- "stateVariable": false,
2167
- "storageLocation": "default",
2168
- "typeDescriptions": {
2169
- "typeIdentifier": "t_bool",
2170
- "typeString": "bool"
2171
- },
2172
- "typeName": {
2173
- "id": 53926,
2174
- "name": "bool",
2175
- "nodeType": "ElementaryTypeName",
2176
- "src": "1957:4:74",
2177
- "typeDescriptions": {
2178
- "typeIdentifier": "t_bool",
2179
- "typeString": "bool"
2180
- }
2181
- },
2182
- "visibility": "internal"
2183
- },
2184
- {
2185
- "constant": false,
2186
- "id": 53929,
2187
- "mutability": "mutable",
2188
- "name": "returnData",
2189
- "nameLocation": "1984:10:74",
2190
- "nodeType": "VariableDeclaration",
2191
- "scope": 53948,
2192
- "src": "1971:23:74",
2193
- "stateVariable": false,
2194
- "storageLocation": "memory",
2195
- "typeDescriptions": {
2196
- "typeIdentifier": "t_bytes_memory_ptr",
2197
- "typeString": "bytes"
2198
- },
2199
- "typeName": {
2200
- "id": 53928,
2201
- "name": "bytes",
2202
- "nodeType": "ElementaryTypeName",
2203
- "src": "1971:5:74",
2204
- "typeDescriptions": {
2205
- "typeIdentifier": "t_bytes_storage_ptr",
2206
- "typeString": "bytes"
2207
- }
2208
- },
2209
- "visibility": "internal"
2210
- }
2211
- ],
2212
- "id": 53940,
2213
- "initialValue": {
2214
- "arguments": [
2215
- {
2216
- "id": 53938,
2217
- "name": "callData",
2218
- "nodeType": "Identifier",
2219
- "overloadedDeclarations": [],
2220
- "referencedDeclaration": 53919,
2221
- "src": "2059:8:74",
2222
- "typeDescriptions": {
2223
- "typeIdentifier": "t_bytes_calldata_ptr",
2224
- "typeString": "bytes calldata"
2225
- }
2226
- }
2227
- ],
2228
- "expression": {
2229
- "argumentTypes": [
2230
- {
2231
- "typeIdentifier": "t_bytes_calldata_ptr",
2232
- "typeString": "bytes calldata"
2233
- }
2234
- ],
2235
- "expression": {
2236
- "argumentTypes": [
2237
- {
2238
- "typeIdentifier": "t_bytes_calldata_ptr",
2239
- "typeString": "bytes calldata"
2240
- }
2241
- ],
2242
- "expression": {
2243
- "arguments": [
2244
- {
2245
- "id": 53932,
2246
- "name": "target",
2247
- "nodeType": "Identifier",
2248
- "overloadedDeclarations": [],
2249
- "referencedDeclaration": 53917,
2250
- "src": "2006:6:74",
2251
- "typeDescriptions": {
2252
- "typeIdentifier": "t_address",
2253
- "typeString": "address"
2254
- }
2255
- }
2256
- ],
2257
- "expression": {
2258
- "argumentTypes": [
2259
- {
2260
- "typeIdentifier": "t_address",
2261
- "typeString": "address"
2262
- }
2263
- ],
2264
- "id": 53931,
2265
- "isConstant": false,
2266
- "isLValue": false,
2267
- "isPure": true,
2268
- "lValueRequested": false,
2269
- "nodeType": "ElementaryTypeNameExpression",
2270
- "src": "1998:8:74",
2271
- "typeDescriptions": {
2272
- "typeIdentifier": "t_type$_t_address_payable_$",
2273
- "typeString": "type(address payable)"
2274
- },
2275
- "typeName": {
2276
- "id": 53930,
2277
- "name": "address",
2278
- "nodeType": "ElementaryTypeName",
2279
- "src": "1998:8:74",
2280
- "stateMutability": "payable",
2281
- "typeDescriptions": {}
2282
- }
2283
- },
2284
- "id": 53933,
2285
- "isConstant": false,
2286
- "isLValue": false,
2287
- "isPure": false,
2288
- "kind": "typeConversion",
2289
- "lValueRequested": false,
2290
- "nameLocations": [],
2291
- "names": [],
2292
- "nodeType": "FunctionCall",
2293
- "src": "1998:15:74",
2294
- "tryCall": false,
2295
- "typeDescriptions": {
2296
- "typeIdentifier": "t_address_payable",
2297
- "typeString": "address payable"
2298
- }
2299
- },
2300
- "id": 53934,
2301
- "isConstant": false,
2302
- "isLValue": false,
2303
- "isPure": false,
2304
- "lValueRequested": false,
2305
- "memberLocation": "2014:4:74",
2306
- "memberName": "call",
2307
- "nodeType": "MemberAccess",
2308
- "src": "1998:20:74",
2309
- "typeDescriptions": {
2310
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2311
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2312
- }
2313
- },
2314
- "id": 53937,
2315
- "isConstant": false,
2316
- "isLValue": false,
2317
- "isPure": false,
2318
- "lValueRequested": false,
2319
- "names": ["value"],
2320
- "nodeType": "FunctionCallOptions",
2321
- "options": [
2322
- {
2323
- "expression": {
2324
- "id": 53935,
2325
- "name": "msg",
2326
- "nodeType": "Identifier",
2327
- "overloadedDeclarations": [],
2328
- "referencedDeclaration": -15,
2329
- "src": "2039:3:74",
2330
- "typeDescriptions": {
2331
- "typeIdentifier": "t_magic_message",
2332
- "typeString": "msg"
2333
- }
2334
- },
2335
- "id": 53936,
2336
- "isConstant": false,
2337
- "isLValue": false,
2338
- "isPure": false,
2339
- "lValueRequested": false,
2340
- "memberLocation": "2043:5:74",
2341
- "memberName": "value",
2342
- "nodeType": "MemberAccess",
2343
- "src": "2039:9:74",
2344
- "typeDescriptions": {
2345
- "typeIdentifier": "t_uint256",
2346
- "typeString": "uint256"
2347
- }
2348
- }
2349
- ],
2350
- "src": "1998:60:74",
2351
- "typeDescriptions": {
2352
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
2353
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2354
- }
2355
- },
2356
- "id": 53939,
2357
- "isConstant": false,
2358
- "isLValue": false,
2359
- "isPure": false,
2360
- "kind": "functionCall",
2361
- "lValueRequested": false,
2362
- "nameLocations": [],
2363
- "names": [],
2364
- "nodeType": "FunctionCall",
2365
- "src": "1998:70:74",
2366
- "tryCall": false,
2367
- "typeDescriptions": {
2368
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2369
- "typeString": "tuple(bool,bytes memory)"
2370
- }
2371
- },
2372
- "nodeType": "VariableDeclarationStatement",
2373
- "src": "1956:112:74"
2374
- },
2375
- {
2376
- "condition": {
2377
- "id": 53942,
2378
- "isConstant": false,
2379
- "isLValue": false,
2380
- "isPure": false,
2381
- "lValueRequested": false,
2382
- "nodeType": "UnaryOperation",
2383
- "operator": "!",
2384
- "prefix": true,
2385
- "src": "2082:8:74",
2386
- "subExpression": {
2387
- "id": 53941,
2388
- "name": "success",
2389
- "nodeType": "Identifier",
2390
- "overloadedDeclarations": [],
2391
- "referencedDeclaration": 53927,
2392
- "src": "2083:7:74",
2393
- "typeDescriptions": {
2394
- "typeIdentifier": "t_bool",
2395
- "typeString": "bool"
2396
- }
2397
- },
2398
- "typeDescriptions": {
2399
- "typeIdentifier": "t_bool",
2400
- "typeString": "bool"
2401
- }
2402
- },
2403
- "id": 53945,
2404
- "nodeType": "IfStatement",
2405
- "src": "2078:125:74",
2406
- "trueBody": {
2407
- "id": 53944,
2408
- "nodeType": "Block",
2409
- "src": "2092:111:74",
2410
- "statements": [
2411
- {
2412
- "AST": {
2413
- "nodeType": "YulBlock",
2414
- "src": "2115:78:74",
2415
- "statements": [
2416
- {
2417
- "expression": {
2418
- "arguments": [
2419
- {
2420
- "arguments": [
2421
- {
2422
- "name": "returnData",
2423
- "nodeType": "YulIdentifier",
2424
- "src": "2144:10:74"
2425
- },
2426
- {
2427
- "kind": "number",
2428
- "nodeType": "YulLiteral",
2429
- "src": "2156:2:74",
2430
- "type": "",
2431
- "value": "32"
2432
- }
2433
- ],
2434
- "functionName": {
2435
- "name": "add",
2436
- "nodeType": "YulIdentifier",
2437
- "src": "2140:3:74"
2438
- },
2439
- "nodeType": "YulFunctionCall",
2440
- "src": "2140:19:74"
2441
- },
2442
- {
2443
- "arguments": [
2444
- {
2445
- "name": "returnData",
2446
- "nodeType": "YulIdentifier",
2447
- "src": "2167:10:74"
2448
- }
2449
- ],
2450
- "functionName": {
2451
- "name": "mload",
2452
- "nodeType": "YulIdentifier",
2453
- "src": "2161:5:74"
2454
- },
2455
- "nodeType": "YulFunctionCall",
2456
- "src": "2161:17:74"
2457
- }
2458
- ],
2459
- "functionName": {
2460
- "name": "revert",
2461
- "nodeType": "YulIdentifier",
2462
- "src": "2133:6:74"
2463
- },
2464
- "nodeType": "YulFunctionCall",
2465
- "src": "2133:46:74"
2466
- },
2467
- "nodeType": "YulExpressionStatement",
2468
- "src": "2133:46:74"
2469
- }
2470
- ]
2471
- },
2472
- "evmVersion": "paris",
2473
- "externalReferences": [
2474
- {
2475
- "declaration": 53929,
2476
- "isOffset": false,
2477
- "isSlot": false,
2478
- "src": "2144:10:74",
2479
- "valueSize": 1
2480
- },
2481
- {
2482
- "declaration": 53929,
2483
- "isOffset": false,
2484
- "isSlot": false,
2485
- "src": "2167:10:74",
2486
- "valueSize": 1
2487
- }
2488
- ],
2489
- "id": 53943,
2490
- "nodeType": "InlineAssembly",
2491
- "src": "2106:87:74"
2492
- }
2493
- ]
2494
- }
2495
- },
2496
- {
2497
- "expression": {
2498
- "id": 53946,
2499
- "name": "returnData",
2500
- "nodeType": "Identifier",
2501
- "overloadedDeclarations": [],
2502
- "referencedDeclaration": 53929,
2503
- "src": "2219:10:74",
2504
- "typeDescriptions": {
2505
- "typeIdentifier": "t_bytes_memory_ptr",
2506
- "typeString": "bytes memory"
2507
- }
2508
- },
2509
- "functionReturnParameters": 53925,
2510
- "id": 53947,
2511
- "nodeType": "Return",
2512
- "src": "2212:17:74"
2513
- }
2514
- ]
2515
- },
2516
- "functionSelector": "c458b07b",
2517
- "implemented": true,
2518
- "kind": "function",
2519
- "modifiers": [
2520
- {
2521
- "id": 53922,
2522
- "kind": "modifierInvocation",
2523
- "modifierName": {
2524
- "id": 53921,
2525
- "name": "activate",
2526
- "nameLocations": ["1914:8:74"],
2527
- "nodeType": "IdentifierPath",
2528
- "referencedDeclaration": 53852,
2529
- "src": "1914:8:74"
2530
- },
2531
- "nodeType": "ModifierInvocation",
2532
- "src": "1914:8:74"
2533
- }
2534
- ],
2535
- "name": "activateAndCall",
2536
- "nameLocation": "1818:15:74",
2537
- "parameters": {
2538
- "id": 53920,
2539
- "nodeType": "ParameterList",
2540
- "parameters": [
2541
- {
2542
- "constant": false,
2543
- "id": 53917,
2544
- "mutability": "mutable",
2545
- "name": "target",
2546
- "nameLocation": "1851:6:74",
2547
- "nodeType": "VariableDeclaration",
2548
- "scope": 53949,
2549
- "src": "1843:14:74",
2550
- "stateVariable": false,
2551
- "storageLocation": "default",
2552
- "typeDescriptions": {
2553
- "typeIdentifier": "t_address",
2554
- "typeString": "address"
2555
- },
2556
- "typeName": {
2557
- "id": 53916,
2558
- "name": "address",
2559
- "nodeType": "ElementaryTypeName",
2560
- "src": "1843:7:74",
2561
- "stateMutability": "nonpayable",
2562
- "typeDescriptions": {
2563
- "typeIdentifier": "t_address",
2564
- "typeString": "address"
2565
- }
2566
- },
2567
- "visibility": "internal"
2568
- },
2569
- {
2570
- "constant": false,
2571
- "id": 53919,
2572
- "mutability": "mutable",
2573
- "name": "callData",
2574
- "nameLocation": "1882:8:74",
2575
- "nodeType": "VariableDeclaration",
2576
- "scope": 53949,
2577
- "src": "1867:23:74",
2578
- "stateVariable": false,
2579
- "storageLocation": "calldata",
2580
- "typeDescriptions": {
2581
- "typeIdentifier": "t_bytes_calldata_ptr",
2582
- "typeString": "bytes"
2583
- },
2584
- "typeName": {
2585
- "id": 53918,
2586
- "name": "bytes",
2587
- "nodeType": "ElementaryTypeName",
2588
- "src": "1867:5:74",
2589
- "typeDescriptions": {
2590
- "typeIdentifier": "t_bytes_storage_ptr",
2591
- "typeString": "bytes"
2592
- }
2593
- },
2594
- "visibility": "internal"
2595
- }
2596
- ],
2597
- "src": "1833:63:74"
2598
- },
2599
- "returnParameters": {
2600
- "id": 53925,
2601
- "nodeType": "ParameterList",
2602
- "parameters": [
2603
- {
2604
- "constant": false,
2605
- "id": 53924,
2606
- "mutability": "mutable",
2607
- "name": "",
2608
- "nameLocation": "-1:-1:-1",
2609
- "nodeType": "VariableDeclaration",
2610
- "scope": 53949,
2611
- "src": "1932:12:74",
2612
- "stateVariable": false,
2613
- "storageLocation": "memory",
2614
- "typeDescriptions": {
2615
- "typeIdentifier": "t_bytes_memory_ptr",
2616
- "typeString": "bytes"
2617
- },
2618
- "typeName": {
2619
- "id": 53923,
2620
- "name": "bytes",
2621
- "nodeType": "ElementaryTypeName",
2622
- "src": "1932:5:74",
2623
- "typeDescriptions": {
2624
- "typeIdentifier": "t_bytes_storage_ptr",
2625
- "typeString": "bytes"
2626
- }
2627
- },
2628
- "visibility": "internal"
2629
- }
2630
- ],
2631
- "src": "1931:14:74"
2632
- },
2633
- "scope": 54008,
2634
- "stateMutability": "payable",
2635
- "virtual": false,
2636
- "visibility": "external"
2637
- },
2638
- {
2639
- "id": 53958,
2640
- "nodeType": "FunctionDefinition",
2641
- "src": "2242:98:74",
2642
- "nodes": [],
2643
- "body": {
2644
- "id": 53957,
2645
- "nodeType": "Block",
2646
- "src": "2302:38:74",
2647
- "nodes": [],
2648
- "statements": [
2649
- {
2650
- "expression": {
2651
- "id": 53955,
2652
- "name": "_LAST_OP_MODE_",
2653
- "nodeType": "Identifier",
2654
- "overloadedDeclarations": [],
2655
- "referencedDeclaration": 53822,
2656
- "src": "2319:14:74",
2657
- "typeDescriptions": {
2658
- "typeIdentifier": "t_enum$_PostOpMode_$884",
2659
- "typeString": "enum IPaymaster.PostOpMode"
2660
- }
2661
- },
2662
- "functionReturnParameters": 53954,
2663
- "id": 53956,
2664
- "nodeType": "Return",
2665
- "src": "2312:21:74"
2666
- }
2667
- ]
2668
- },
2669
- "baseFunctions": [53774],
2670
- "functionSelector": "255ed947",
2671
- "implemented": true,
2672
- "kind": "function",
2673
- "modifiers": [],
2674
- "name": "getLastOpMode",
2675
- "nameLocation": "2251:13:74",
2676
- "parameters": {
2677
- "id": 53950,
2678
- "nodeType": "ParameterList",
2679
- "parameters": [],
2680
- "src": "2264:2:74"
2681
- },
2682
- "returnParameters": {
2683
- "id": 53954,
2684
- "nodeType": "ParameterList",
2685
- "parameters": [
2686
- {
2687
- "constant": false,
2688
- "id": 53953,
2689
- "mutability": "mutable",
2690
- "name": "",
2691
- "nameLocation": "-1:-1:-1",
2692
- "nodeType": "VariableDeclaration",
2693
- "scope": 53958,
2694
- "src": "2290:10:74",
2695
- "stateVariable": false,
2696
- "storageLocation": "default",
2697
- "typeDescriptions": {
2698
- "typeIdentifier": "t_enum$_PostOpMode_$884",
2699
- "typeString": "enum IPaymaster.PostOpMode"
2700
- },
2701
- "typeName": {
2702
- "id": 53952,
2703
- "nodeType": "UserDefinedTypeName",
2704
- "pathNode": {
2705
- "id": 53951,
2706
- "name": "PostOpMode",
2707
- "nameLocations": ["2290:10:74"],
2708
- "nodeType": "IdentifierPath",
2709
- "referencedDeclaration": 884,
2710
- "src": "2290:10:74"
2711
- },
2712
- "referencedDeclaration": 884,
2713
- "src": "2290:10:74",
2714
- "typeDescriptions": {
2715
- "typeIdentifier": "t_enum$_PostOpMode_$884",
2716
- "typeString": "enum IPaymaster.PostOpMode"
2717
- }
2718
- },
2719
- "visibility": "internal"
2720
- }
2721
- ],
2722
- "src": "2289:12:74"
2723
- },
2724
- "scope": 54008,
2725
- "stateMutability": "view",
2726
- "virtual": false,
2727
- "visibility": "external"
2728
- },
2729
- {
2730
- "id": 53988,
2731
- "nodeType": "FunctionDefinition",
2732
- "src": "2641:435:74",
2733
- "nodes": [],
2734
- "body": {
2735
- "id": 53987,
2736
- "nodeType": "Block",
2737
- "src": "2895:181:74",
2738
- "nodes": [],
2739
- "statements": [
2740
- {
2741
- "condition": {
2742
- "commonType": {
2743
- "typeIdentifier": "t_uint256",
2744
- "typeString": "uint256"
2745
- },
2746
- "id": 53978,
2747
- "isConstant": false,
2748
- "isLValue": false,
2749
- "isPure": false,
2750
- "lValueRequested": false,
2751
- "leftExpression": {
2752
- "expression": {
2753
- "expression": {
2754
- "id": 53974,
2755
- "name": "userOp",
2756
- "nodeType": "Identifier",
2757
- "overloadedDeclarations": [],
2758
- "referencedDeclaration": 53962,
2759
- "src": "2909:6:74",
2760
- "typeDescriptions": {
2761
- "typeIdentifier": "t_struct$_UserOperation_$1045_calldata_ptr",
2762
- "typeString": "struct UserOperation calldata"
2763
- }
2764
- },
2765
- "id": 53975,
2766
- "isConstant": false,
2767
- "isLValue": false,
2768
- "isPure": false,
2769
- "lValueRequested": false,
2770
- "memberLocation": "2916:16:74",
2771
- "memberName": "paymasterAndData",
2772
- "nodeType": "MemberAccess",
2773
- "referencedDeclaration": 1042,
2774
- "src": "2909:23:74",
2775
- "typeDescriptions": {
2776
- "typeIdentifier": "t_bytes_calldata_ptr",
2777
- "typeString": "bytes calldata"
2778
- }
2779
- },
2780
- "id": 53976,
2781
- "isConstant": false,
2782
- "isLValue": false,
2783
- "isPure": false,
2784
- "lValueRequested": false,
2785
- "memberLocation": "2933:6:74",
2786
- "memberName": "length",
2787
- "nodeType": "MemberAccess",
2788
- "src": "2909:30:74",
2789
- "typeDescriptions": {
2790
- "typeIdentifier": "t_uint256",
2791
- "typeString": "uint256"
2792
- }
2793
- },
2794
- "nodeType": "BinaryOperation",
2795
- "operator": "!=",
2796
- "rightExpression": {
2797
- "hexValue": "3230",
2798
- "id": 53977,
2799
- "isConstant": false,
2800
- "isLValue": false,
2801
- "isPure": true,
2802
- "kind": "number",
2803
- "lValueRequested": false,
2804
- "nodeType": "Literal",
2805
- "src": "2943:2:74",
2806
- "typeDescriptions": {
2807
- "typeIdentifier": "t_rational_20_by_1",
2808
- "typeString": "int_const 20"
2809
- },
2810
- "value": "20"
2811
- },
2812
- "src": "2909:36:74",
2813
- "typeDescriptions": {
2814
- "typeIdentifier": "t_bool",
2815
- "typeString": "bool"
2816
- }
2817
- },
2818
- "id": 53986,
2819
- "nodeType": "IfStatement",
2820
- "src": "2905:165:74",
2821
- "trueBody": {
2822
- "id": 53985,
2823
- "nodeType": "Block",
2824
- "src": "2947:123:74",
2825
- "statements": [
2826
- {
2827
- "errorCall": {
2828
- "arguments": [
2829
- {
2830
- "expression": {
2831
- "expression": {
2832
- "id": 53980,
2833
- "name": "userOp",
2834
- "nodeType": "Identifier",
2835
- "overloadedDeclarations": [],
2836
- "referencedDeclaration": 53962,
2837
- "src": "3015:6:74",
2838
- "typeDescriptions": {
2839
- "typeIdentifier": "t_struct$_UserOperation_$1045_calldata_ptr",
2840
- "typeString": "struct UserOperation calldata"
2841
- }
2842
- },
2843
- "id": 53981,
2844
- "isConstant": false,
2845
- "isLValue": false,
2846
- "isPure": false,
2847
- "lValueRequested": false,
2848
- "memberLocation": "3022:16:74",
2849
- "memberName": "paymasterAndData",
2850
- "nodeType": "MemberAccess",
2851
- "referencedDeclaration": 1042,
2852
- "src": "3015:23:74",
2853
- "typeDescriptions": {
2854
- "typeIdentifier": "t_bytes_calldata_ptr",
2855
- "typeString": "bytes calldata"
2856
- }
2857
- },
2858
- "id": 53982,
2859
- "isConstant": false,
2860
- "isLValue": false,
2861
- "isPure": false,
2862
- "lValueRequested": false,
2863
- "memberLocation": "3039:6:74",
2864
- "memberName": "length",
2865
- "nodeType": "MemberAccess",
2866
- "src": "3015:30:74",
2867
- "typeDescriptions": {
2868
- "typeIdentifier": "t_uint256",
2869
- "typeString": "uint256"
2870
- }
2871
- }
2872
- ],
2873
- "expression": {
2874
- "argumentTypes": [
2875
- {
2876
- "typeIdentifier": "t_uint256",
2877
- "typeString": "uint256"
2878
- }
2879
- ],
2880
- "id": 53979,
2881
- "name": "InvalidPaymasterAndDataLength",
2882
- "nodeType": "Identifier",
2883
- "overloadedDeclarations": [],
2884
- "referencedDeclaration": 54020,
2885
- "src": "2968:29:74",
2886
- "typeDescriptions": {
2887
- "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
2888
- "typeString": "function (uint256) pure"
2889
- }
2890
- },
2891
- "id": 53983,
2892
- "isConstant": false,
2893
- "isLValue": false,
2894
- "isPure": false,
2895
- "kind": "functionCall",
2896
- "lValueRequested": false,
2897
- "nameLocations": [],
2898
- "names": [],
2899
- "nodeType": "FunctionCall",
2900
- "src": "2968:91:74",
2901
- "tryCall": false,
2902
- "typeDescriptions": {
2903
- "typeIdentifier": "t_tuple$__$",
2904
- "typeString": "tuple()"
2905
- }
2906
- },
2907
- "id": 53984,
2908
- "nodeType": "RevertStatement",
2909
- "src": "2961:98:74"
2910
- }
2911
- ]
2912
- }
2913
- }
2914
- ]
2915
- },
2916
- "baseFunctions": [206],
2917
- "documentation": {
2918
- "id": 53959,
2919
- "nodeType": "StructuredDocumentation",
2920
- "src": "2346:290:74",
2921
- "text": " @notice Validate a user operation that is using this paymaster.\n @param userOp ERC-4337 UserOperation.\n @return context The context containing the sponsor, spender, gasPriceUserOp, and opHash.\n @return validationData The validation result."
2922
- },
2923
- "implemented": true,
2924
- "kind": "function",
2925
- "modifiers": [],
2926
- "name": "_validatePaymasterUserOp",
2927
- "nameLocation": "2650:24:74",
2928
- "overrides": {
2929
- "id": 53968,
2930
- "nodeType": "OverrideSpecifier",
2931
- "overrides": [],
2932
- "src": "2819:8:74"
2933
- },
2934
- "parameters": {
2935
- "id": 53967,
2936
- "nodeType": "ParameterList",
2937
- "parameters": [
2938
- {
2939
- "constant": false,
2940
- "id": 53962,
2941
- "mutability": "mutable",
2942
- "name": "userOp",
2943
- "nameLocation": "2707:6:74",
2944
- "nodeType": "VariableDeclaration",
2945
- "scope": 53988,
2946
- "src": "2684:29:74",
2947
- "stateVariable": false,
2948
- "storageLocation": "calldata",
2949
- "typeDescriptions": {
2950
- "typeIdentifier": "t_struct$_UserOperation_$1045_calldata_ptr",
2951
- "typeString": "struct UserOperation"
2952
- },
2953
- "typeName": {
2954
- "id": 53961,
2955
- "nodeType": "UserDefinedTypeName",
2956
- "pathNode": {
2957
- "id": 53960,
2958
- "name": "UserOperation",
2959
- "nameLocations": ["2684:13:74"],
2960
- "nodeType": "IdentifierPath",
2961
- "referencedDeclaration": 1045,
2962
- "src": "2684:13:74"
2963
- },
2964
- "referencedDeclaration": 1045,
2965
- "src": "2684:13:74",
2966
- "typeDescriptions": {
2967
- "typeIdentifier": "t_struct$_UserOperation_$1045_storage_ptr",
2968
- "typeString": "struct UserOperation"
2969
- }
2970
- },
2971
- "visibility": "internal"
2972
- },
2973
- {
2974
- "constant": false,
2975
- "id": 53964,
2976
- "mutability": "mutable",
2977
- "name": "",
2978
- "nameLocation": "-1:-1:-1",
2979
- "nodeType": "VariableDeclaration",
2980
- "scope": 53988,
2981
- "src": "2723:7:74",
2982
- "stateVariable": false,
2983
- "storageLocation": "default",
2984
- "typeDescriptions": {
2985
- "typeIdentifier": "t_bytes32",
2986
- "typeString": "bytes32"
2987
- },
2988
- "typeName": {
2989
- "id": 53963,
2990
- "name": "bytes32",
2991
- "nodeType": "ElementaryTypeName",
2992
- "src": "2723:7:74",
2993
- "typeDescriptions": {
2994
- "typeIdentifier": "t_bytes32",
2995
- "typeString": "bytes32"
2996
- }
2997
- },
2998
- "visibility": "internal"
2999
- },
3000
- {
3001
- "constant": false,
3002
- "id": 53966,
3003
- "mutability": "mutable",
3004
- "name": "",
3005
- "nameLocation": "-1:-1:-1",
3006
- "nodeType": "VariableDeclaration",
3007
- "scope": 53988,
3008
- "src": "2753:7:74",
3009
- "stateVariable": false,
3010
- "storageLocation": "default",
3011
- "typeDescriptions": {
3012
- "typeIdentifier": "t_uint256",
3013
- "typeString": "uint256"
3014
- },
3015
- "typeName": {
3016
- "id": 53965,
3017
- "name": "uint256",
3018
- "nodeType": "ElementaryTypeName",
3019
- "src": "2753:7:74",
3020
- "typeDescriptions": {
3021
- "typeIdentifier": "t_uint256",
3022
- "typeString": "uint256"
3023
- }
3024
- },
3025
- "visibility": "internal"
3026
- }
3027
- ],
3028
- "src": "2674:106:74"
3029
- },
3030
- "returnParameters": {
3031
- "id": 53973,
3032
- "nodeType": "ParameterList",
3033
- "parameters": [
3034
- {
3035
- "constant": false,
3036
- "id": 53970,
3037
- "mutability": "mutable",
3038
- "name": "context",
3039
- "nameLocation": "2858:7:74",
3040
- "nodeType": "VariableDeclaration",
3041
- "scope": 53988,
3042
- "src": "2845:20:74",
3043
- "stateVariable": false,
3044
- "storageLocation": "memory",
3045
- "typeDescriptions": {
3046
- "typeIdentifier": "t_bytes_memory_ptr",
3047
- "typeString": "bytes"
3048
- },
3049
- "typeName": {
3050
- "id": 53969,
3051
- "name": "bytes",
3052
- "nodeType": "ElementaryTypeName",
3053
- "src": "2845:5:74",
3054
- "typeDescriptions": {
3055
- "typeIdentifier": "t_bytes_storage_ptr",
3056
- "typeString": "bytes"
3057
- }
3058
- },
3059
- "visibility": "internal"
3060
- },
3061
- {
3062
- "constant": false,
3063
- "id": 53972,
3064
- "mutability": "mutable",
3065
- "name": "validationData",
3066
- "nameLocation": "2875:14:74",
3067
- "nodeType": "VariableDeclaration",
3068
- "scope": 53988,
3069
- "src": "2867:22:74",
3070
- "stateVariable": false,
3071
- "storageLocation": "default",
3072
- "typeDescriptions": {
3073
- "typeIdentifier": "t_uint256",
3074
- "typeString": "uint256"
3075
- },
3076
- "typeName": {
3077
- "id": 53971,
3078
- "name": "uint256",
3079
- "nodeType": "ElementaryTypeName",
3080
- "src": "2867:7:74",
3081
- "typeDescriptions": {
3082
- "typeIdentifier": "t_uint256",
3083
- "typeString": "uint256"
3084
- }
3085
- },
3086
- "visibility": "internal"
3087
- }
3088
- ],
3089
- "src": "2844:46:74"
3090
- },
3091
- "scope": 54008,
3092
- "stateMutability": "pure",
3093
- "virtual": false,
3094
- "visibility": "internal"
3095
- },
3096
- {
3097
- "id": 54007,
3098
- "nodeType": "FunctionDefinition",
3099
- "src": "3431:188:74",
3100
- "nodes": [],
3101
- "body": {
3102
- "id": 54006,
3103
- "nodeType": "Block",
3104
- "src": "3581:38:74",
3105
- "nodes": [],
3106
- "statements": [
3107
- {
3108
- "expression": {
3109
- "id": 54004,
3110
- "isConstant": false,
3111
- "isLValue": false,
3112
- "isPure": false,
3113
- "lValueRequested": false,
3114
- "leftHandSide": {
3115
- "id": 54002,
3116
- "name": "_LAST_OP_MODE_",
3117
- "nodeType": "Identifier",
3118
- "overloadedDeclarations": [],
3119
- "referencedDeclaration": 53822,
3120
- "src": "3591:14:74",
3121
- "typeDescriptions": {
3122
- "typeIdentifier": "t_enum$_PostOpMode_$884",
3123
- "typeString": "enum IPaymaster.PostOpMode"
3124
- }
3125
- },
3126
- "nodeType": "Assignment",
3127
- "operator": "=",
3128
- "rightHandSide": {
3129
- "id": 54003,
3130
- "name": "mode",
3131
- "nodeType": "Identifier",
3132
- "overloadedDeclarations": [],
3133
- "referencedDeclaration": 53992,
3134
- "src": "3608:4:74",
3135
- "typeDescriptions": {
3136
- "typeIdentifier": "t_enum$_PostOpMode_$884",
3137
- "typeString": "enum IPaymaster.PostOpMode"
3138
- }
3139
- },
3140
- "src": "3591:21:74",
3141
- "typeDescriptions": {
3142
- "typeIdentifier": "t_enum$_PostOpMode_$884",
3143
- "typeString": "enum IPaymaster.PostOpMode"
3144
- }
3145
- },
3146
- "id": 54005,
3147
- "nodeType": "ExpressionStatement",
3148
- "src": "3591:21:74"
3149
- }
3150
- ]
3151
- },
3152
- "baseFunctions": [249],
3153
- "documentation": {
3154
- "id": 53989,
3155
- "nodeType": "StructuredDocumentation",
3156
- "src": "3082:344:74",
3157
- "text": " @notice Post-operation handler.\n @dev Records the result of the user operation (e.g. success or revert).\n Also, reverts if the paymaster was not active, ensuring that only allowed\n operators can make use of this paymaster.\n @param mode The mode enum representing the operation result."
3158
- },
3159
- "implemented": true,
3160
- "kind": "function",
3161
- "modifiers": [
3162
- {
3163
- "id": 54000,
3164
- "kind": "modifierInvocation",
3165
- "modifierName": {
3166
- "id": 53999,
3167
- "name": "isActive",
3168
- "nameLocations": ["3572:8:74"],
3169
- "nodeType": "IdentifierPath",
3170
- "referencedDeclaration": 53865,
3171
- "src": "3572:8:74"
3172
- },
3173
- "nodeType": "ModifierInvocation",
3174
- "src": "3572:8:74"
3175
- }
3176
- ],
3177
- "name": "_postOp",
3178
- "nameLocation": "3440:7:74",
3179
- "overrides": {
3180
- "id": 53998,
3181
- "nodeType": "OverrideSpecifier",
3182
- "overrides": [],
3183
- "src": "3563:8:74"
3184
- },
3185
- "parameters": {
3186
- "id": 53997,
3187
- "nodeType": "ParameterList",
3188
- "parameters": [
3189
- {
3190
- "constant": false,
3191
- "id": 53992,
3192
- "mutability": "mutable",
3193
- "name": "mode",
3194
- "nameLocation": "3468:4:74",
3195
- "nodeType": "VariableDeclaration",
3196
- "scope": 54007,
3197
- "src": "3457:15:74",
3198
- "stateVariable": false,
3199
- "storageLocation": "default",
3200
- "typeDescriptions": {
3201
- "typeIdentifier": "t_enum$_PostOpMode_$884",
3202
- "typeString": "enum IPaymaster.PostOpMode"
3203
- },
3204
- "typeName": {
3205
- "id": 53991,
3206
- "nodeType": "UserDefinedTypeName",
3207
- "pathNode": {
3208
- "id": 53990,
3209
- "name": "PostOpMode",
3210
- "nameLocations": ["3457:10:74"],
3211
- "nodeType": "IdentifierPath",
3212
- "referencedDeclaration": 884,
3213
- "src": "3457:10:74"
3214
- },
3215
- "referencedDeclaration": 884,
3216
- "src": "3457:10:74",
3217
- "typeDescriptions": {
3218
- "typeIdentifier": "t_enum$_PostOpMode_$884",
3219
- "typeString": "enum IPaymaster.PostOpMode"
3220
- }
3221
- },
3222
- "visibility": "internal"
3223
- },
3224
- {
3225
- "constant": false,
3226
- "id": 53994,
3227
- "mutability": "mutable",
3228
- "name": "",
3229
- "nameLocation": "-1:-1:-1",
3230
- "nodeType": "VariableDeclaration",
3231
- "scope": 54007,
3232
- "src": "3482:14:74",
3233
- "stateVariable": false,
3234
- "storageLocation": "calldata",
3235
- "typeDescriptions": {
3236
- "typeIdentifier": "t_bytes_calldata_ptr",
3237
- "typeString": "bytes"
3238
- },
3239
- "typeName": {
3240
- "id": 53993,
3241
- "name": "bytes",
3242
- "nodeType": "ElementaryTypeName",
3243
- "src": "3482:5:74",
3244
- "typeDescriptions": {
3245
- "typeIdentifier": "t_bytes_storage_ptr",
3246
- "typeString": "bytes"
3247
- }
3248
- },
3249
- "visibility": "internal"
3250
- },
3251
- {
3252
- "constant": false,
3253
- "id": 53996,
3254
- "mutability": "mutable",
3255
- "name": "",
3256
- "nameLocation": "-1:-1:-1",
3257
- "nodeType": "VariableDeclaration",
3258
- "scope": 54007,
3259
- "src": "3520:7:74",
3260
- "stateVariable": false,
3261
- "storageLocation": "default",
3262
- "typeDescriptions": {
3263
- "typeIdentifier": "t_uint256",
3264
- "typeString": "uint256"
3265
- },
3266
- "typeName": {
3267
- "id": 53995,
3268
- "name": "uint256",
3269
- "nodeType": "ElementaryTypeName",
3270
- "src": "3520:7:74",
3271
- "typeDescriptions": {
3272
- "typeIdentifier": "t_uint256",
3273
- "typeString": "uint256"
3274
- }
3275
- },
3276
- "visibility": "internal"
3277
- }
3278
- ],
3279
- "src": "3447:106:74"
3280
- },
3281
- "returnParameters": {
3282
- "id": 54001,
3283
- "nodeType": "ParameterList",
3284
- "parameters": [],
3285
- "src": "3581:0:74"
3286
- },
3287
- "scope": 54008,
3288
- "stateMutability": "nonpayable",
3289
- "virtual": false,
3290
- "visibility": "internal"
3291
- }
3292
- ],
3293
- "abstract": false,
3294
- "baseContracts": [
3295
- {
3296
- "baseName": {
3297
- "id": 53808,
3298
- "name": "BasePaymaster",
3299
- "nameLocations": ["712:13:74"],
3300
- "nodeType": "IdentifierPath",
3301
- "referencedDeclaration": 361,
3302
- "src": "712:13:74"
3303
- },
3304
- "id": 53809,
3305
- "nodeType": "InheritanceSpecifier",
3306
- "src": "712:13:74"
3307
- },
3308
- {
3309
- "baseName": {
3310
- "id": 53810,
3311
- "name": "InspectablePaymasterInterface",
3312
- "nameLocations": ["731:29:74"],
3313
- "nodeType": "IdentifierPath",
3314
- "referencedDeclaration": 53775,
3315
- "src": "731:29:74"
3316
- },
3317
- "id": 53811,
3318
- "nodeType": "InheritanceSpecifier",
3319
- "src": "731:29:74"
3320
- },
3321
- {
3322
- "baseName": {
3323
- "id": 53812,
3324
- "name": "CheckoutPaymasterEventsAndErrors",
3325
- "nameLocations": ["766:32:74"],
3326
- "nodeType": "IdentifierPath",
3327
- "referencedDeclaration": 54021,
3328
- "src": "766:32:74"
3329
- },
3330
- "id": 53813,
3331
- "nodeType": "InheritanceSpecifier",
3332
- "src": "766:32:74"
3333
- }
3334
- ],
3335
- "canonicalName": "CheckoutPaymaster",
3336
- "contractDependencies": [],
3337
- "contractKind": "contract",
3338
- "documentation": {
3339
- "id": 53807,
3340
- "nodeType": "StructuredDocumentation",
3341
- "src": "623:54:74",
3342
- "text": " @title CheckoutPaymaster\n @author Fun.xyz"
3343
- },
3344
- "fullyImplemented": true,
3345
- "linearizedBaseContracts": [
3346
- 54008, 54021, 53775, 361, 45296, 47631, 911
3347
- ],
3348
- "name": "CheckoutPaymaster",
3349
- "nameLocation": "687:17:74",
3350
- "scope": 54009,
3351
- "usedErrors": [54012, 54016, 54020],
3352
- "usedEvents": [45197]
3353
- }
3354
- ],
3355
- "license": "UNLICENSED"
3356
- },
3357
- "id": 74
3358
- }