@elizaos/plugin-wallet 2.0.0-beta.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 (200) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/auto-enable.ts +76 -0
  4. package/dist/LpManagementService-BWrQ5-cO.mjs +353 -0
  5. package/dist/MockLpService-D_Apn4Fd.mjs +99 -0
  6. package/dist/aerodrome-CfnESC32.mjs +890 -0
  7. package/dist/chunk-hT5z_Zn9.mjs +35 -0
  8. package/dist/index.d.mts +34727 -0
  9. package/dist/index.mjs +21590 -0
  10. package/dist/lib/server-wallet-trade.d.mts +34 -0
  11. package/dist/lib/server-wallet-trade.mjs +306 -0
  12. package/dist/meteora-BPX39hZo.mjs +22640 -0
  13. package/dist/orca-Bybp1HXO.mjs +249 -0
  14. package/dist/pancakeswp-CkEXlXti.mjs +604 -0
  15. package/dist/plugin-ZO_MTyd0.mjs +529 -0
  16. package/dist/raydium-rfaM9yEf.mjs +539 -0
  17. package/dist/sdk/index.d.mts +32492 -0
  18. package/dist/sdk/index.mjs +6415 -0
  19. package/dist/types-D5252NZk.mjs +487 -0
  20. package/dist/uniswap-CReXgXVN.mjs +573 -0
  21. package/dist/wallet-action.d.mts +6 -0
  22. package/dist/wallet-action.mjs +820 -0
  23. package/package.json +152 -0
  24. package/src/actions/failure-codes.ts +79 -0
  25. package/src/actions/index.ts +1 -0
  26. package/src/analytics/birdeye/actions/wallet-search-address.ts +9 -0
  27. package/src/analytics/birdeye/birdeye-task.ts +175 -0
  28. package/src/analytics/birdeye/birdeye.ts +813 -0
  29. package/src/analytics/birdeye/constants.ts +74 -0
  30. package/src/analytics/birdeye/providers/agent-portfolio-provider.ts +18 -0
  31. package/src/analytics/birdeye/providers/market.ts +227 -0
  32. package/src/analytics/birdeye/providers/portfolio-factory.test.ts +138 -0
  33. package/src/analytics/birdeye/providers/portfolio-factory.ts +252 -0
  34. package/src/analytics/birdeye/providers/trending.ts +365 -0
  35. package/src/analytics/birdeye/providers/wallet.ts +14 -0
  36. package/src/analytics/birdeye/search-category.test.ts +207 -0
  37. package/src/analytics/birdeye/search-category.ts +506 -0
  38. package/src/analytics/birdeye/service.ts +992 -0
  39. package/src/analytics/birdeye/tasks/birdeye.ts +232 -0
  40. package/src/analytics/birdeye/types/api/common.ts +305 -0
  41. package/src/analytics/birdeye/types/api/defi.ts +220 -0
  42. package/src/analytics/birdeye/types/api/pair.ts +200 -0
  43. package/src/analytics/birdeye/types/api/search.ts +86 -0
  44. package/src/analytics/birdeye/types/api/token.ts +635 -0
  45. package/src/analytics/birdeye/types/api/trader.ts +76 -0
  46. package/src/analytics/birdeye/types/api/wallet.ts +181 -0
  47. package/src/analytics/birdeye/types/shared.ts +106 -0
  48. package/src/analytics/birdeye/utils.ts +700 -0
  49. package/src/analytics/dexscreener/errors.ts +28 -0
  50. package/src/analytics/dexscreener/index.ts +3 -0
  51. package/src/analytics/dexscreener/search-category.test.ts +49 -0
  52. package/src/analytics/dexscreener/search-category.ts +42 -0
  53. package/src/analytics/dexscreener/service.ts +595 -0
  54. package/src/analytics/dexscreener/types.ts +128 -0
  55. package/src/analytics/lpinfo/index.d.ts +7 -0
  56. package/src/analytics/lpinfo/index.ts +52 -0
  57. package/src/analytics/lpinfo/kamino/README.md +102 -0
  58. package/src/analytics/lpinfo/kamino/index.ts +24 -0
  59. package/src/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.ts +422 -0
  60. package/src/analytics/lpinfo/kamino/providers/kaminoPoolProvider.ts +365 -0
  61. package/src/analytics/lpinfo/kamino/providers/kaminoProvider.ts +496 -0
  62. package/src/analytics/lpinfo/kamino/services/kaminoLiquidityService.ts +1123 -0
  63. package/src/analytics/lpinfo/kamino/services/kaminoService.ts +758 -0
  64. package/src/analytics/lpinfo/steer/README.md +169 -0
  65. package/src/analytics/lpinfo/steer/index.ts +23 -0
  66. package/src/analytics/lpinfo/steer/providers/steerLiquidityProvider.ts +544 -0
  67. package/src/analytics/lpinfo/steer/services/steerLiquidityService.ts +1690 -0
  68. package/src/analytics/lpinfo/steer/steer-display-types.ts +99 -0
  69. package/src/analytics/news/index.ts +52 -0
  70. package/src/analytics/news/interfaces/types.ts +222 -0
  71. package/src/analytics/news/providers/defiNewsProvider.ts +734 -0
  72. package/src/analytics/news/services/newsDataService.ts +332 -0
  73. package/src/analytics/news/utils/formatters.ts +151 -0
  74. package/src/analytics/token-info/action.ts +240 -0
  75. package/src/analytics/token-info/index.ts +3 -0
  76. package/src/analytics/token-info/params.ts +215 -0
  77. package/src/analytics/token-info/providers.ts +681 -0
  78. package/src/analytics/token-info/service.ts +168 -0
  79. package/src/analytics/token-info/types.ts +74 -0
  80. package/src/audit/audit-log.ts +45 -0
  81. package/src/browser-shim/build-shim.ts +123 -0
  82. package/src/browser-shim/index.ts +5 -0
  83. package/src/browser-shim/shim.template.js +563 -0
  84. package/src/chains/evm/.github/workflows/npm-deploy.yml +112 -0
  85. package/src/chains/evm/LICENSE +21 -0
  86. package/src/chains/evm/README.md +106 -0
  87. package/src/chains/evm/actions/helpers.ts +147 -0
  88. package/src/chains/evm/actions/swap.ts +839 -0
  89. package/src/chains/evm/actions/transfer.ts +254 -0
  90. package/src/chains/evm/biome.json +61 -0
  91. package/src/chains/evm/bridge-router.ts +660 -0
  92. package/src/chains/evm/build.ts +89 -0
  93. package/src/chains/evm/chain-handler.ts +416 -0
  94. package/src/chains/evm/constants.ts +23 -0
  95. package/src/chains/evm/contracts/artifacts/OZGovernor.json +1707 -0
  96. package/src/chains/evm/contracts/artifacts/TimelockController.json +1007 -0
  97. package/src/chains/evm/contracts/artifacts/VoteToken.json +895 -0
  98. package/src/chains/evm/dex/aerodrome/index.ts +34 -0
  99. package/src/chains/evm/dex/aerodrome/services/AerodromeLpService.ts +558 -0
  100. package/src/chains/evm/dex/aerodrome/types.ts +318 -0
  101. package/src/chains/evm/dex/pancakeswp/index.ts +35 -0
  102. package/src/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.ts +743 -0
  103. package/src/chains/evm/dex/pancakeswp/types.ts +65 -0
  104. package/src/chains/evm/dex/uniswap/index.ts +35 -0
  105. package/src/chains/evm/dex/uniswap/services/UniswapV3LpService.ts +759 -0
  106. package/src/chains/evm/dex/uniswap/types.ts +390 -0
  107. package/src/chains/evm/generated/specs/spec-helpers.ts +73 -0
  108. package/src/chains/evm/generated/specs/specs.ts +151 -0
  109. package/src/chains/evm/gov-router.ts +250 -0
  110. package/src/chains/evm/index.browser.ts +16 -0
  111. package/src/chains/evm/index.ts +31 -0
  112. package/src/chains/evm/prompts.ts +193 -0
  113. package/src/chains/evm/providers/get-balance.ts +123 -0
  114. package/src/chains/evm/providers/wallet.ts +715 -0
  115. package/src/chains/evm/routes/sign.ts +333 -0
  116. package/src/chains/evm/rpc-providers.ts +410 -0
  117. package/src/chains/evm/service.ts +140 -0
  118. package/src/chains/evm/templates/index.ts +10 -0
  119. package/src/chains/evm/types/index.ts +432 -0
  120. package/src/chains/evm/vitest.config.ts +18 -0
  121. package/src/chains/registry.ts +668 -0
  122. package/src/chains/solana/README.md +367 -0
  123. package/src/chains/wallet-action.ts +533 -0
  124. package/src/chains/wallet-router.test.ts +296 -0
  125. package/src/contracts.ts +65 -0
  126. package/src/core-augmentation.ts +10 -0
  127. package/src/index.ts +71 -0
  128. package/src/lib/server-wallet-trade.ts +192 -0
  129. package/src/lib/wallet-export-guard.ts +330 -0
  130. package/src/lp/actions/liquidity.ts +827 -0
  131. package/src/lp/e2e/real-token-tests.ts +428 -0
  132. package/src/lp/e2e/scenarios.ts +470 -0
  133. package/src/lp/e2e/test-utils.ts +145 -0
  134. package/src/lp/lp-manager-entry.ts +303 -0
  135. package/src/lp/services/ConcentratedLiquidityService.ts +120 -0
  136. package/src/lp/services/DexInteractionService.ts +226 -0
  137. package/src/lp/services/LpManagementService.test.ts +148 -0
  138. package/src/lp/services/LpManagementService.ts +632 -0
  139. package/src/lp/services/UserLpProfileService.ts +163 -0
  140. package/src/lp/services/VaultService.ts +153 -0
  141. package/src/lp/services/YieldOptimizationService.ts +344 -0
  142. package/src/lp/services/__tests__/MockLpService.ts +146 -0
  143. package/src/lp/tasks/LpAutoRebalanceTask.ts +117 -0
  144. package/src/lp/tasks/__tests__/LpAutoRebalanceTask.test.ts +370 -0
  145. package/src/lp/types.ts +582 -0
  146. package/src/lp/utils/solanaClient.ts +143 -0
  147. package/src/plugin.ts +125 -0
  148. package/src/policy/policy.ts +19 -0
  149. package/src/providers/canonical-provider.ts +27 -0
  150. package/src/providers/unified-wallet-provider.ts +79 -0
  151. package/src/register-routes.ts +11 -0
  152. package/src/routes/plugin.ts +47 -0
  153. package/src/routes/wallet-market-overview-route.ts +869 -0
  154. package/src/sdk/abi.ts +258 -0
  155. package/src/sdk/bridge/abis.ts +126 -0
  156. package/src/sdk/bridge/client.ts +518 -0
  157. package/src/sdk/bridge/index.ts +56 -0
  158. package/src/sdk/bridge/solana.ts +604 -0
  159. package/src/sdk/bridge/types.ts +202 -0
  160. package/src/sdk/convenience.ts +347 -0
  161. package/src/sdk/escrow/MutualStakeEscrow.ts +480 -0
  162. package/src/sdk/escrow/types.ts +64 -0
  163. package/src/sdk/escrow/verifiers.ts +73 -0
  164. package/src/sdk/identity/erc8004.ts +692 -0
  165. package/src/sdk/identity/reputation.ts +449 -0
  166. package/src/sdk/identity/uaid.ts +497 -0
  167. package/src/sdk/identity/validation.ts +372 -0
  168. package/src/sdk/index.ts +763 -0
  169. package/src/sdk/policy/SpendingPolicy.ts +260 -0
  170. package/src/sdk/policy/UptoBillingPolicy.ts +320 -0
  171. package/src/sdk/router/PaymentRouter.ts +215 -0
  172. package/src/sdk/router/index.ts +8 -0
  173. package/src/sdk/swap/SwapModule.ts +310 -0
  174. package/src/sdk/swap/abi.ts +117 -0
  175. package/src/sdk/swap/index.ts +34 -0
  176. package/src/sdk/swap/types.ts +135 -0
  177. package/src/sdk/tokens/decimals.ts +140 -0
  178. package/src/sdk/tokens/registry.ts +911 -0
  179. package/src/sdk/tokens/solana.ts +419 -0
  180. package/src/sdk/tokens/transfers.ts +327 -0
  181. package/src/sdk/types.ts +158 -0
  182. package/src/sdk/wallet-core.ts +115 -0
  183. package/src/sdk/x402/budget.ts +168 -0
  184. package/src/sdk/x402/chains/abstract/index.ts +280 -0
  185. package/src/sdk/x402/client.ts +320 -0
  186. package/src/sdk/x402/index.ts +46 -0
  187. package/src/sdk/x402/middleware.ts +92 -0
  188. package/src/sdk/x402/multi-asset.ts +144 -0
  189. package/src/sdk/x402/types.ts +156 -0
  190. package/src/services/wallet-backend-service.ts +328 -0
  191. package/src/types/wallet-router.ts +227 -0
  192. package/src/utils/intent-trajectory.ts +106 -0
  193. package/src/wallet/backend.ts +62 -0
  194. package/src/wallet/errors.ts +49 -0
  195. package/src/wallet/index.ts +27 -0
  196. package/src/wallet/local-eoa-backend.ts +201 -0
  197. package/src/wallet/pending.ts +60 -0
  198. package/src/wallet/select-backend.ts +47 -0
  199. package/src/wallet/steward-backend.ts +161 -0
  200. package/src/wallet-action.ts +1 -0
@@ -0,0 +1,895 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "VoteToken",
4
+ "sourceName": "src/VoteToken.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "string",
10
+ "name": "_name",
11
+ "type": "string"
12
+ },
13
+ {
14
+ "internalType": "string",
15
+ "name": "_symbol",
16
+ "type": "string"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "CheckpointUnorderedInsertion",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "ECDSAInvalidSignature",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "length",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "ECDSAInvalidSignatureLength",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "bytes32",
47
+ "name": "s",
48
+ "type": "bytes32"
49
+ }
50
+ ],
51
+ "name": "ECDSAInvalidSignatureS",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "increasedSupply",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "cap",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "ERC20ExceededSafeSupply",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "spender",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "internalType": "uint256",
79
+ "name": "allowance",
80
+ "type": "uint256"
81
+ },
82
+ {
83
+ "internalType": "uint256",
84
+ "name": "needed",
85
+ "type": "uint256"
86
+ }
87
+ ],
88
+ "name": "ERC20InsufficientAllowance",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "address",
95
+ "name": "sender",
96
+ "type": "address"
97
+ },
98
+ {
99
+ "internalType": "uint256",
100
+ "name": "balance",
101
+ "type": "uint256"
102
+ },
103
+ {
104
+ "internalType": "uint256",
105
+ "name": "needed",
106
+ "type": "uint256"
107
+ }
108
+ ],
109
+ "name": "ERC20InsufficientBalance",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [
114
+ {
115
+ "internalType": "address",
116
+ "name": "approver",
117
+ "type": "address"
118
+ }
119
+ ],
120
+ "name": "ERC20InvalidApprover",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "address",
127
+ "name": "receiver",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "name": "ERC20InvalidReceiver",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "sender",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "ERC20InvalidSender",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "spender",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "ERC20InvalidSpender",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "deadline",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "name": "ERC2612ExpiredSignature",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [
169
+ {
170
+ "internalType": "address",
171
+ "name": "signer",
172
+ "type": "address"
173
+ },
174
+ {
175
+ "internalType": "address",
176
+ "name": "owner",
177
+ "type": "address"
178
+ }
179
+ ],
180
+ "name": "ERC2612InvalidSigner",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "inputs": [
185
+ {
186
+ "internalType": "uint256",
187
+ "name": "timepoint",
188
+ "type": "uint256"
189
+ },
190
+ {
191
+ "internalType": "uint48",
192
+ "name": "clock",
193
+ "type": "uint48"
194
+ }
195
+ ],
196
+ "name": "ERC5805FutureLookup",
197
+ "type": "error"
198
+ },
199
+ {
200
+ "inputs": [],
201
+ "name": "ERC6372InconsistentClock",
202
+ "type": "error"
203
+ },
204
+ {
205
+ "inputs": [
206
+ {
207
+ "internalType": "address",
208
+ "name": "account",
209
+ "type": "address"
210
+ },
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "currentNonce",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "InvalidAccountNonce",
218
+ "type": "error"
219
+ },
220
+ {
221
+ "inputs": [],
222
+ "name": "InvalidShortString",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "inputs": [
227
+ {
228
+ "internalType": "uint8",
229
+ "name": "bits",
230
+ "type": "uint8"
231
+ },
232
+ {
233
+ "internalType": "uint256",
234
+ "name": "value",
235
+ "type": "uint256"
236
+ }
237
+ ],
238
+ "name": "SafeCastOverflowedUintDowncast",
239
+ "type": "error"
240
+ },
241
+ {
242
+ "inputs": [
243
+ {
244
+ "internalType": "string",
245
+ "name": "str",
246
+ "type": "string"
247
+ }
248
+ ],
249
+ "name": "StringTooLong",
250
+ "type": "error"
251
+ },
252
+ {
253
+ "inputs": [
254
+ {
255
+ "internalType": "uint256",
256
+ "name": "expiry",
257
+ "type": "uint256"
258
+ }
259
+ ],
260
+ "name": "VotesExpiredSignature",
261
+ "type": "error"
262
+ },
263
+ {
264
+ "anonymous": false,
265
+ "inputs": [
266
+ {
267
+ "indexed": true,
268
+ "internalType": "address",
269
+ "name": "owner",
270
+ "type": "address"
271
+ },
272
+ {
273
+ "indexed": true,
274
+ "internalType": "address",
275
+ "name": "spender",
276
+ "type": "address"
277
+ },
278
+ {
279
+ "indexed": false,
280
+ "internalType": "uint256",
281
+ "name": "value",
282
+ "type": "uint256"
283
+ }
284
+ ],
285
+ "name": "Approval",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": true,
293
+ "internalType": "address",
294
+ "name": "delegator",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": true,
299
+ "internalType": "address",
300
+ "name": "fromDelegate",
301
+ "type": "address"
302
+ },
303
+ {
304
+ "indexed": true,
305
+ "internalType": "address",
306
+ "name": "toDelegate",
307
+ "type": "address"
308
+ }
309
+ ],
310
+ "name": "DelegateChanged",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "address",
319
+ "name": "delegate",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": false,
324
+ "internalType": "uint256",
325
+ "name": "previousVotes",
326
+ "type": "uint256"
327
+ },
328
+ {
329
+ "indexed": false,
330
+ "internalType": "uint256",
331
+ "name": "newVotes",
332
+ "type": "uint256"
333
+ }
334
+ ],
335
+ "name": "DelegateVotesChanged",
336
+ "type": "event"
337
+ },
338
+ {
339
+ "anonymous": false,
340
+ "inputs": [],
341
+ "name": "EIP712DomainChanged",
342
+ "type": "event"
343
+ },
344
+ {
345
+ "anonymous": false,
346
+ "inputs": [
347
+ {
348
+ "indexed": true,
349
+ "internalType": "address",
350
+ "name": "from",
351
+ "type": "address"
352
+ },
353
+ {
354
+ "indexed": true,
355
+ "internalType": "address",
356
+ "name": "to",
357
+ "type": "address"
358
+ },
359
+ {
360
+ "indexed": false,
361
+ "internalType": "uint256",
362
+ "name": "value",
363
+ "type": "uint256"
364
+ }
365
+ ],
366
+ "name": "Transfer",
367
+ "type": "event"
368
+ },
369
+ {
370
+ "inputs": [],
371
+ "name": "CLOCK_MODE",
372
+ "outputs": [
373
+ {
374
+ "internalType": "string",
375
+ "name": "",
376
+ "type": "string"
377
+ }
378
+ ],
379
+ "stateMutability": "pure",
380
+ "type": "function"
381
+ },
382
+ {
383
+ "inputs": [],
384
+ "name": "DOMAIN_SEPARATOR",
385
+ "outputs": [
386
+ {
387
+ "internalType": "bytes32",
388
+ "name": "",
389
+ "type": "bytes32"
390
+ }
391
+ ],
392
+ "stateMutability": "view",
393
+ "type": "function"
394
+ },
395
+ {
396
+ "inputs": [
397
+ {
398
+ "internalType": "address",
399
+ "name": "owner",
400
+ "type": "address"
401
+ },
402
+ {
403
+ "internalType": "address",
404
+ "name": "spender",
405
+ "type": "address"
406
+ }
407
+ ],
408
+ "name": "allowance",
409
+ "outputs": [
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "",
413
+ "type": "uint256"
414
+ }
415
+ ],
416
+ "stateMutability": "view",
417
+ "type": "function"
418
+ },
419
+ {
420
+ "inputs": [
421
+ {
422
+ "internalType": "address",
423
+ "name": "spender",
424
+ "type": "address"
425
+ },
426
+ {
427
+ "internalType": "uint256",
428
+ "name": "value",
429
+ "type": "uint256"
430
+ }
431
+ ],
432
+ "name": "approve",
433
+ "outputs": [
434
+ {
435
+ "internalType": "bool",
436
+ "name": "",
437
+ "type": "bool"
438
+ }
439
+ ],
440
+ "stateMutability": "nonpayable",
441
+ "type": "function"
442
+ },
443
+ {
444
+ "inputs": [
445
+ {
446
+ "internalType": "address",
447
+ "name": "account",
448
+ "type": "address"
449
+ }
450
+ ],
451
+ "name": "balanceOf",
452
+ "outputs": [
453
+ {
454
+ "internalType": "uint256",
455
+ "name": "",
456
+ "type": "uint256"
457
+ }
458
+ ],
459
+ "stateMutability": "view",
460
+ "type": "function"
461
+ },
462
+ {
463
+ "inputs": [
464
+ {
465
+ "internalType": "address",
466
+ "name": "account",
467
+ "type": "address"
468
+ },
469
+ {
470
+ "internalType": "uint32",
471
+ "name": "pos",
472
+ "type": "uint32"
473
+ }
474
+ ],
475
+ "name": "checkpoints",
476
+ "outputs": [
477
+ {
478
+ "components": [
479
+ {
480
+ "internalType": "uint48",
481
+ "name": "_key",
482
+ "type": "uint48"
483
+ },
484
+ {
485
+ "internalType": "uint208",
486
+ "name": "_value",
487
+ "type": "uint208"
488
+ }
489
+ ],
490
+ "internalType": "struct Checkpoints.Checkpoint208",
491
+ "name": "",
492
+ "type": "tuple"
493
+ }
494
+ ],
495
+ "stateMutability": "view",
496
+ "type": "function"
497
+ },
498
+ {
499
+ "inputs": [],
500
+ "name": "clock",
501
+ "outputs": [
502
+ {
503
+ "internalType": "uint48",
504
+ "name": "",
505
+ "type": "uint48"
506
+ }
507
+ ],
508
+ "stateMutability": "view",
509
+ "type": "function"
510
+ },
511
+ {
512
+ "inputs": [],
513
+ "name": "decimals",
514
+ "outputs": [
515
+ {
516
+ "internalType": "uint8",
517
+ "name": "",
518
+ "type": "uint8"
519
+ }
520
+ ],
521
+ "stateMutability": "view",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "inputs": [
526
+ {
527
+ "internalType": "address",
528
+ "name": "delegatee",
529
+ "type": "address"
530
+ }
531
+ ],
532
+ "name": "delegate",
533
+ "outputs": [],
534
+ "stateMutability": "nonpayable",
535
+ "type": "function"
536
+ },
537
+ {
538
+ "inputs": [
539
+ {
540
+ "internalType": "address",
541
+ "name": "delegatee",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "nonce",
547
+ "type": "uint256"
548
+ },
549
+ {
550
+ "internalType": "uint256",
551
+ "name": "expiry",
552
+ "type": "uint256"
553
+ },
554
+ {
555
+ "internalType": "uint8",
556
+ "name": "v",
557
+ "type": "uint8"
558
+ },
559
+ {
560
+ "internalType": "bytes32",
561
+ "name": "r",
562
+ "type": "bytes32"
563
+ },
564
+ {
565
+ "internalType": "bytes32",
566
+ "name": "s",
567
+ "type": "bytes32"
568
+ }
569
+ ],
570
+ "name": "delegateBySig",
571
+ "outputs": [],
572
+ "stateMutability": "nonpayable",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "account",
580
+ "type": "address"
581
+ }
582
+ ],
583
+ "name": "delegates",
584
+ "outputs": [
585
+ {
586
+ "internalType": "address",
587
+ "name": "",
588
+ "type": "address"
589
+ }
590
+ ],
591
+ "stateMutability": "view",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "eip712Domain",
597
+ "outputs": [
598
+ {
599
+ "internalType": "bytes1",
600
+ "name": "fields",
601
+ "type": "bytes1"
602
+ },
603
+ {
604
+ "internalType": "string",
605
+ "name": "name",
606
+ "type": "string"
607
+ },
608
+ {
609
+ "internalType": "string",
610
+ "name": "version",
611
+ "type": "string"
612
+ },
613
+ {
614
+ "internalType": "uint256",
615
+ "name": "chainId",
616
+ "type": "uint256"
617
+ },
618
+ {
619
+ "internalType": "address",
620
+ "name": "verifyingContract",
621
+ "type": "address"
622
+ },
623
+ {
624
+ "internalType": "bytes32",
625
+ "name": "salt",
626
+ "type": "bytes32"
627
+ },
628
+ {
629
+ "internalType": "uint256[]",
630
+ "name": "extensions",
631
+ "type": "uint256[]"
632
+ }
633
+ ],
634
+ "stateMutability": "view",
635
+ "type": "function"
636
+ },
637
+ {
638
+ "inputs": [
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "timepoint",
642
+ "type": "uint256"
643
+ }
644
+ ],
645
+ "name": "getPastTotalSupply",
646
+ "outputs": [
647
+ {
648
+ "internalType": "uint256",
649
+ "name": "",
650
+ "type": "uint256"
651
+ }
652
+ ],
653
+ "stateMutability": "view",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [
658
+ {
659
+ "internalType": "address",
660
+ "name": "account",
661
+ "type": "address"
662
+ },
663
+ {
664
+ "internalType": "uint256",
665
+ "name": "timepoint",
666
+ "type": "uint256"
667
+ }
668
+ ],
669
+ "name": "getPastVotes",
670
+ "outputs": [
671
+ {
672
+ "internalType": "uint256",
673
+ "name": "",
674
+ "type": "uint256"
675
+ }
676
+ ],
677
+ "stateMutability": "view",
678
+ "type": "function"
679
+ },
680
+ {
681
+ "inputs": [
682
+ {
683
+ "internalType": "address",
684
+ "name": "account",
685
+ "type": "address"
686
+ }
687
+ ],
688
+ "name": "getVotes",
689
+ "outputs": [
690
+ {
691
+ "internalType": "uint256",
692
+ "name": "",
693
+ "type": "uint256"
694
+ }
695
+ ],
696
+ "stateMutability": "view",
697
+ "type": "function"
698
+ },
699
+ {
700
+ "inputs": [
701
+ {
702
+ "internalType": "address",
703
+ "name": "to",
704
+ "type": "address"
705
+ },
706
+ {
707
+ "internalType": "uint256",
708
+ "name": "amount",
709
+ "type": "uint256"
710
+ }
711
+ ],
712
+ "name": "mint",
713
+ "outputs": [],
714
+ "stateMutability": "nonpayable",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [],
719
+ "name": "name",
720
+ "outputs": [
721
+ {
722
+ "internalType": "string",
723
+ "name": "",
724
+ "type": "string"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "address",
734
+ "name": "_owner",
735
+ "type": "address"
736
+ }
737
+ ],
738
+ "name": "nonces",
739
+ "outputs": [
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "",
743
+ "type": "uint256"
744
+ }
745
+ ],
746
+ "stateMutability": "view",
747
+ "type": "function"
748
+ },
749
+ {
750
+ "inputs": [
751
+ {
752
+ "internalType": "address",
753
+ "name": "account",
754
+ "type": "address"
755
+ }
756
+ ],
757
+ "name": "numCheckpoints",
758
+ "outputs": [
759
+ {
760
+ "internalType": "uint32",
761
+ "name": "",
762
+ "type": "uint32"
763
+ }
764
+ ],
765
+ "stateMutability": "view",
766
+ "type": "function"
767
+ },
768
+ {
769
+ "inputs": [
770
+ {
771
+ "internalType": "address",
772
+ "name": "owner",
773
+ "type": "address"
774
+ },
775
+ {
776
+ "internalType": "address",
777
+ "name": "spender",
778
+ "type": "address"
779
+ },
780
+ {
781
+ "internalType": "uint256",
782
+ "name": "value",
783
+ "type": "uint256"
784
+ },
785
+ {
786
+ "internalType": "uint256",
787
+ "name": "deadline",
788
+ "type": "uint256"
789
+ },
790
+ {
791
+ "internalType": "uint8",
792
+ "name": "v",
793
+ "type": "uint8"
794
+ },
795
+ {
796
+ "internalType": "bytes32",
797
+ "name": "r",
798
+ "type": "bytes32"
799
+ },
800
+ {
801
+ "internalType": "bytes32",
802
+ "name": "s",
803
+ "type": "bytes32"
804
+ }
805
+ ],
806
+ "name": "permit",
807
+ "outputs": [],
808
+ "stateMutability": "nonpayable",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [],
813
+ "name": "symbol",
814
+ "outputs": [
815
+ {
816
+ "internalType": "string",
817
+ "name": "",
818
+ "type": "string"
819
+ }
820
+ ],
821
+ "stateMutability": "view",
822
+ "type": "function"
823
+ },
824
+ {
825
+ "inputs": [],
826
+ "name": "totalSupply",
827
+ "outputs": [
828
+ {
829
+ "internalType": "uint256",
830
+ "name": "",
831
+ "type": "uint256"
832
+ }
833
+ ],
834
+ "stateMutability": "view",
835
+ "type": "function"
836
+ },
837
+ {
838
+ "inputs": [
839
+ {
840
+ "internalType": "address",
841
+ "name": "to",
842
+ "type": "address"
843
+ },
844
+ {
845
+ "internalType": "uint256",
846
+ "name": "value",
847
+ "type": "uint256"
848
+ }
849
+ ],
850
+ "name": "transfer",
851
+ "outputs": [
852
+ {
853
+ "internalType": "bool",
854
+ "name": "",
855
+ "type": "bool"
856
+ }
857
+ ],
858
+ "stateMutability": "nonpayable",
859
+ "type": "function"
860
+ },
861
+ {
862
+ "inputs": [
863
+ {
864
+ "internalType": "address",
865
+ "name": "from",
866
+ "type": "address"
867
+ },
868
+ {
869
+ "internalType": "address",
870
+ "name": "to",
871
+ "type": "address"
872
+ },
873
+ {
874
+ "internalType": "uint256",
875
+ "name": "value",
876
+ "type": "uint256"
877
+ }
878
+ ],
879
+ "name": "transferFrom",
880
+ "outputs": [
881
+ {
882
+ "internalType": "bool",
883
+ "name": "",
884
+ "type": "bool"
885
+ }
886
+ ],
887
+ "stateMutability": "nonpayable",
888
+ "type": "function"
889
+ }
890
+ ],
891
+ "bytecode": "0x6101606040523480156200001257600080fd5b50604051620022d3380380620022d3833981016040819052620000359162000286565b6040805180820190915260018152603160f81b602082015282908190818460036200006183826200037f565b5060046200007082826200037f565b50620000829150839050600562000134565b610120526200009381600662000134565b61014052815160208084019190912060e052815190820120610100524660a0526200012160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05250620004a5915050565b600060208351101562000154576200014c836200016d565b905062000167565b816200016184826200037f565b5060ff90505b92915050565b600080829050601f81511115620001a4578260405163305a27a960e01b81526004016200019b91906200044b565b60405180910390fd5b8051620001b18262000480565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620001ec578181015183820152602001620001d2565b50506000910152565b600082601f8301126200020757600080fd5b81516001600160401b0380821115620002245762000224620001b9565b604051601f8301601f19908116603f011681019082821181831017156200024f576200024f620001b9565b816040528381528660208588010111156200026957600080fd5b6200027c846020830160208901620001cf565b9695505050505050565b600080604083850312156200029a57600080fd5b82516001600160401b0380821115620002b257600080fd5b620002c086838701620001f5565b93506020850151915080821115620002d757600080fd5b50620002e685828601620001f5565b9150509250929050565b600181811c908216806200030557607f821691505b6020821081036200032657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200037a57600081815260208120601f850160051c81016020861015620003555750805b601f850160051c820191505b81811015620003765782815560010162000361565b5050505b505050565b81516001600160401b038111156200039b576200039b620001b9565b620003b381620003ac8454620002f0565b846200032c565b602080601f831160018114620003eb5760008415620003d25750858301515b600019600386901b1c1916600185901b17855562000376565b600085815260208120601f198616915b828110156200041c57888601518255948401946001909101908401620003fb565b50858210156200043b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082518060208401526200046c816040850160208701620001cf565b601f01601f19169190910160400192915050565b80516020808301519190811015620003265760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051611dd3620005006000396000610cda01526000610cad01526000610a8001526000610a58015260006109b3015260006109dd01526000610a070152611dd36000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c35780639ab24eb01161007c5780639ab24eb01461033c578063a9059cbb1461034f578063c3cda52014610362578063d505accf14610375578063dd62ed3e14610388578063f1127ed8146103c157600080fd5b806370a08231146102ab5780637ecebe00146102d457806384b0196e146102e75780638e539e8c1461030257806391ddadf41461031557806395d89b411461033457600080fd5b80633a46b1a8116101155780633a46b1a8146101da57806340c10f19146101ed5780634bf5d7e914610202578063587cde1e1461022c5780635c19a95c146102705780636fcfff451461028357600080fd5b806306fdde031461015d578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b0578063313ce567146101c35780633644e515146101d2575b600080fd5b610165610400565b60405161017291906119d7565b60405180910390f35b61018e610189366004611a06565b610492565b6040519015158152602001610172565b6002545b604051908152602001610172565b61018e6101be366004611a30565b6104ac565b60405160128152602001610172565b6101a26104d5565b6101a26101e8366004611a06565b6104df565b6102006101fb366004611a06565b610565565b005b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b6020820152610165565b61025861023a366004611a6c565b6001600160a01b039081166000908152600860205260409020541690565b6040516001600160a01b039091168152602001610172565b61020061027e366004611a6c565b610573565b610296610291366004611a6c565b61057e565b60405163ffffffff9091168152602001610172565b6101a26102b9366004611a6c565b6001600160a01b031660009081526020819052604090205490565b6101a26102e2366004611a6c565b610589565b6102ef610594565b6040516101729796959493929190611a87565b6101a2610310366004611b1d565b6105da565b61031d610644565b60405165ffffffffffff9091168152602001610172565b61016561064e565b6101a261034a366004611a6c565b61065d565b61018e61035d366004611a06565b61068d565b610200610370366004611b47565b61069b565b610200610383366004611b9f565b610758565b6101a2610396366004611c09565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6103d46103cf366004611c3c565b610892565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610172565b60606003805461040f90611c7c565b80601f016020809104026020016040519081016040528092919081815260200182805461043b90611c7c565b80156104885780601f1061045d57610100808354040283529160200191610488565b820191906000526020600020905b81548152906001019060200180831161046b57829003601f168201915b5050505050905090565b6000336104a08185856108b7565b60019150505b92915050565b6000336104ba8582856108c9565b6104c5858585610947565b506001949350505050565b905090565b60006104d06109a6565b6000806104ea610644565b90508065ffffffffffff16831061052a57604051637669fc0f60e11b81526004810184905265ffffffffffff821660248201526044015b60405180910390fd5b61055461053684610ad1565b6001600160a01b038616600090815260096020526040902090610b08565b6001600160d01b0316949350505050565b61056f8282610bbe565b5050565b3361056f8183610bf4565b60006104a682610c66565b60006104a682610c88565b6000606080600080600060606105a8610ca6565b6105b0610cd3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000806105e5610644565b90508065ffffffffffff16831061062057604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610521565b61063461062c84610ad1565b600a90610b08565b6001600160d01b03169392505050565b60006104d0610d00565b60606004805461040f90611c7c565b6001600160a01b038116600090815260096020526040812061067e90610d0b565b6001600160d01b031692915050565b6000336104a0818585610947565b834211156106bf57604051632341d78760e11b815260048101859052602401610521565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610739906107319060a00160405160208183030381529060405280519060200120610d44565b858585610d71565b90506107458187610d9f565b61074f8188610bf4565b50505050505050565b8342111561077c5760405163313c898160e11b815260048101859052602401610521565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107c98c6001600160a01b0316600090815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061082482610d44565b9050600061083482878787610d71565b9050896001600160a01b0316816001600160a01b03161461087b576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610521565b6108868a8a8a6108b7565b50505050505050505050565b60408051808201909152600080825260208201526108b08383610df2565b9392505050565b6108c48383836001610e28565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610941578181101561093257604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610521565b61094184848484036000610e28565b50505050565b6001600160a01b03831661097157604051634b637e8f60e11b815260006004820152602401610521565b6001600160a01b03821661099b5760405163ec442f0560e01b815260006004820152602401610521565b6108c4838383610efd565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156109ff57507f000000000000000000000000000000000000000000000000000000000000000046145b15610a2957507f000000000000000000000000000000000000000000000000000000000000000090565b6104d0604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600065ffffffffffff821115610b04576040516306dfcc6560e41b81526030600482015260248101839052604401610521565b5090565b815460009081816005811115610b67576000610b2384610f08565b610b2d9085611ccc565b60008881526020902090915081015465ffffffffffff9081169087161015610b5757809150610b65565b610b62816001611cdf565b92505b505b6000610b7587878585611061565b90508015610bb057610b9a87610b8c600184611ccc565b600091825260209091200190565b54600160301b90046001600160d01b0316610bb3565b60005b979650505050505050565b6001600160a01b038216610be85760405163ec442f0560e01b815260006004820152602401610521565b61056f60008383610efd565b6001600160a01b0382811660008181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46108c48183610c61866110c3565b6110e1565b6001600160a01b0381166000908152600960205260408120546104a69061124d565b6001600160a01b0381166000908152600760205260408120546104a6565b60606104d07f0000000000000000000000000000000000000000000000000000000000000000600561127e565b60606104d07f0000000000000000000000000000000000000000000000000000000000000000600661127e565b60006104d042610ad1565b80546000908015610d3b57610d2583610b8c600184611ccc565b54600160301b90046001600160d01b03166108b0565b60009392505050565b60006104a6610d516109a6565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d8388888888611329565b925092509250610d9382826113f8565b50909695505050505050565b6001600160a01b03821660009081526007602052604090208054600181019091558181146108c4576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610521565b60408051808201909152600080825260208201526001600160a01b03831660009081526009602052604090206108b090836114b1565b6001600160a01b038416610e525760405163e602df0560e01b815260006004820152602401610521565b6001600160a01b038316610e7c57604051634a1406b160e11b815260006004820152602401610521565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561094157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eef91815260200190565b60405180910390a350505050565b6108c4838383611521565b600060018211610f16575090565b816001600160801b8210610f2f5760809190911c9060401b5b680100000000000000008210610f4a5760409190911c9060201b5b6401000000008210610f615760209190911c9060101b5b620100008210610f765760109190911c9060081b5b6101008210610f8a5760089190911c9060041b5b60108210610f9d5760049190911c9060021b5b60048210610fa95760011b5b600302600190811c90818581610fc157610fc1611cf2565b048201901c90506001818581610fd957610fd9611cf2565b048201901c90506001818581610ff157610ff1611cf2565b048201901c9050600181858161100957611009611cf2565b048201901c9050600181858161102157611021611cf2565b048201901c9050600181858161103957611039611cf2565b048201901c905061105881858161105257611052611cf2565b04821190565b90039392505050565b60005b818310156110bb5760006110788484611588565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156110a7578092506110b5565b6110b2816001611cdf565b93505b50611064565b509392505050565b6001600160a01b0381166000908152602081905260408120546104a6565b816001600160a01b0316836001600160a01b0316141580156111035750600081115b156108c4576001600160a01b038316156111ab576001600160a01b03831660009081526009602052604081208190611146906115a3611141866115af565b6115e3565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516111a0929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156108c4576001600160a01b038216600090815260096020526040812081906111e49061161c611141866115af565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161123e929190918252602082015260400190565b60405180910390a25050505050565b600063ffffffff821115610b04576040516306dfcc6560e41b81526020600482015260248101839052604401610521565b606060ff83146112985761129183611628565b90506104a6565b8180546112a490611c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546112d090611c7c565b801561131d5780601f106112f25761010080835404028352916020019161131d565b820191906000526020600020905b81548152906001019060200180831161130057829003601f168201915b505050505090506104a6565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561136457506000915060039050826113ee565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156113b8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166113e4575060009250600191508290506113ee565b9250600091508190505b9450945094915050565b600082600381111561140c5761140c611d08565b03611415575050565b600182600381111561142957611429611d08565b036114475760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561145b5761145b611d08565b0361147c5760405163fce698f760e01b815260048101829052602401610521565b600382600381111561149057611490611d08565b0361056f576040516335e2f38360e21b815260048101829052602401610521565b6040805180820190915260008082526020820152826000018263ffffffff16815481106114e0576114e0611d1e565b60009182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b61152c838383611667565b6001600160a01b03831661157d57600061154560025490565b90506001600160d01b038082111561157a57604051630e58ae9360e11b81526004810183905260248101829052604401610521565b50505b6108c4838383611791565b60006115976002848418611d34565b6108b090848416611cdf565b60006108b08284611d56565b60006001600160d01b03821115610b04576040516306dfcc6560e41b815260d0600482015260248101839052604401610521565b60008061160f6115f1610644565b6116076115fd88610d0b565b868863ffffffff16565b879190611807565b915091505b935093915050565b60006108b08284611d7d565b6060600061163583611815565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6001600160a01b0383166116925780600260008282546116879190611cdf565b909155506117049050565b6001600160a01b038316600090815260208190526040902054818110156116e55760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610521565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166117205760028054829003905561173f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178491815260200190565b60405180910390a3505050565b6001600160a01b0383166117b3576117b0600a61161c611141846115af565b50505b6001600160a01b0382166117d5576117d2600a6115a3611141846115af565b50505b6001600160a01b038381166000908152600860205260408082205485841683529120546108c4929182169116836110e1565b60008061160f85858561183d565b600060ff8216601f8111156104a657604051632cd44ac360e21b815260040160405180910390fd5b82546000908190801561193657600061185b87610b8c600185611ccc565b805490915065ffffffffffff80821691600160301b90046001600160d01b031690881682111561189e57604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff16036118d757825465ffffffffffff16600160301b6001600160d01b03891602178355611928565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b945085935061161492505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611614565b6000815180845260005b818110156119b75760208185018101518683018201520161199b565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108b06020830184611991565b80356001600160a01b0381168114611a0157600080fd5b919050565b60008060408385031215611a1957600080fd5b611a22836119ea565b946020939093013593505050565b600080600060608486031215611a4557600080fd5b611a4e846119ea565b9250611a5c602085016119ea565b9150604084013590509250925092565b600060208284031215611a7e57600080fd5b6108b0826119ea565b60ff60f81b881681526000602060e081840152611aa760e084018a611991565b8381036040850152611ab9818a611991565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611b0b57835183529284019291840191600101611aef565b50909c9b505050505050505050505050565b600060208284031215611b2f57600080fd5b5035919050565b803560ff81168114611a0157600080fd5b60008060008060008060c08789031215611b6057600080fd5b611b69876119ea565b95506020870135945060408701359350611b8560608801611b36565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611bba57600080fd5b611bc3886119ea565b9650611bd1602089016119ea565b95506040880135945060608801359350611bed60808901611b36565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611c1c57600080fd5b611c25836119ea565b9150611c33602084016119ea565b90509250929050565b60008060408385031215611c4f57600080fd5b611c58836119ea565b9150602083013563ffffffff81168114611c7157600080fd5b809150509250929050565b600181811c90821680611c9057607f821691505b602082108103611cb057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104a6576104a6611cb6565b808201808211156104a6576104a6611cb6565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082611d5157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160d01b03828116828216039080821115611d7657611d76611cb6565b5092915050565b6001600160d01b03818116838216019080821115611d7657611d76611cb656fea2646970667358221220be48a11b19883e1ea89539c6e966dcfbd34eccf56ae5ef131f0256163850039964736f6c63430008140033",
892
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c35780639ab24eb01161007c5780639ab24eb01461033c578063a9059cbb1461034f578063c3cda52014610362578063d505accf14610375578063dd62ed3e14610388578063f1127ed8146103c157600080fd5b806370a08231146102ab5780637ecebe00146102d457806384b0196e146102e75780638e539e8c1461030257806391ddadf41461031557806395d89b411461033457600080fd5b80633a46b1a8116101155780633a46b1a8146101da57806340c10f19146101ed5780634bf5d7e914610202578063587cde1e1461022c5780635c19a95c146102705780636fcfff451461028357600080fd5b806306fdde031461015d578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b0578063313ce567146101c35780633644e515146101d2575b600080fd5b610165610400565b60405161017291906119d7565b60405180910390f35b61018e610189366004611a06565b610492565b6040519015158152602001610172565b6002545b604051908152602001610172565b61018e6101be366004611a30565b6104ac565b60405160128152602001610172565b6101a26104d5565b6101a26101e8366004611a06565b6104df565b6102006101fb366004611a06565b610565565b005b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b6020820152610165565b61025861023a366004611a6c565b6001600160a01b039081166000908152600860205260409020541690565b6040516001600160a01b039091168152602001610172565b61020061027e366004611a6c565b610573565b610296610291366004611a6c565b61057e565b60405163ffffffff9091168152602001610172565b6101a26102b9366004611a6c565b6001600160a01b031660009081526020819052604090205490565b6101a26102e2366004611a6c565b610589565b6102ef610594565b6040516101729796959493929190611a87565b6101a2610310366004611b1d565b6105da565b61031d610644565b60405165ffffffffffff9091168152602001610172565b61016561064e565b6101a261034a366004611a6c565b61065d565b61018e61035d366004611a06565b61068d565b610200610370366004611b47565b61069b565b610200610383366004611b9f565b610758565b6101a2610396366004611c09565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6103d46103cf366004611c3c565b610892565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610172565b60606003805461040f90611c7c565b80601f016020809104026020016040519081016040528092919081815260200182805461043b90611c7c565b80156104885780601f1061045d57610100808354040283529160200191610488565b820191906000526020600020905b81548152906001019060200180831161046b57829003601f168201915b5050505050905090565b6000336104a08185856108b7565b60019150505b92915050565b6000336104ba8582856108c9565b6104c5858585610947565b506001949350505050565b905090565b60006104d06109a6565b6000806104ea610644565b90508065ffffffffffff16831061052a57604051637669fc0f60e11b81526004810184905265ffffffffffff821660248201526044015b60405180910390fd5b61055461053684610ad1565b6001600160a01b038616600090815260096020526040902090610b08565b6001600160d01b0316949350505050565b61056f8282610bbe565b5050565b3361056f8183610bf4565b60006104a682610c66565b60006104a682610c88565b6000606080600080600060606105a8610ca6565b6105b0610cd3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000806105e5610644565b90508065ffffffffffff16831061062057604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610521565b61063461062c84610ad1565b600a90610b08565b6001600160d01b03169392505050565b60006104d0610d00565b60606004805461040f90611c7c565b6001600160a01b038116600090815260096020526040812061067e90610d0b565b6001600160d01b031692915050565b6000336104a0818585610947565b834211156106bf57604051632341d78760e11b815260048101859052602401610521565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610739906107319060a00160405160208183030381529060405280519060200120610d44565b858585610d71565b90506107458187610d9f565b61074f8188610bf4565b50505050505050565b8342111561077c5760405163313c898160e11b815260048101859052602401610521565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107c98c6001600160a01b0316600090815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061082482610d44565b9050600061083482878787610d71565b9050896001600160a01b0316816001600160a01b03161461087b576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610521565b6108868a8a8a6108b7565b50505050505050505050565b60408051808201909152600080825260208201526108b08383610df2565b9392505050565b6108c48383836001610e28565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610941578181101561093257604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610521565b61094184848484036000610e28565b50505050565b6001600160a01b03831661097157604051634b637e8f60e11b815260006004820152602401610521565b6001600160a01b03821661099b5760405163ec442f0560e01b815260006004820152602401610521565b6108c4838383610efd565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156109ff57507f000000000000000000000000000000000000000000000000000000000000000046145b15610a2957507f000000000000000000000000000000000000000000000000000000000000000090565b6104d0604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600065ffffffffffff821115610b04576040516306dfcc6560e41b81526030600482015260248101839052604401610521565b5090565b815460009081816005811115610b67576000610b2384610f08565b610b2d9085611ccc565b60008881526020902090915081015465ffffffffffff9081169087161015610b5757809150610b65565b610b62816001611cdf565b92505b505b6000610b7587878585611061565b90508015610bb057610b9a87610b8c600184611ccc565b600091825260209091200190565b54600160301b90046001600160d01b0316610bb3565b60005b979650505050505050565b6001600160a01b038216610be85760405163ec442f0560e01b815260006004820152602401610521565b61056f60008383610efd565b6001600160a01b0382811660008181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46108c48183610c61866110c3565b6110e1565b6001600160a01b0381166000908152600960205260408120546104a69061124d565b6001600160a01b0381166000908152600760205260408120546104a6565b60606104d07f0000000000000000000000000000000000000000000000000000000000000000600561127e565b60606104d07f0000000000000000000000000000000000000000000000000000000000000000600661127e565b60006104d042610ad1565b80546000908015610d3b57610d2583610b8c600184611ccc565b54600160301b90046001600160d01b03166108b0565b60009392505050565b60006104a6610d516109a6565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600080610d8388888888611329565b925092509250610d9382826113f8565b50909695505050505050565b6001600160a01b03821660009081526007602052604090208054600181019091558181146108c4576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610521565b60408051808201909152600080825260208201526001600160a01b03831660009081526009602052604090206108b090836114b1565b6001600160a01b038416610e525760405163e602df0560e01b815260006004820152602401610521565b6001600160a01b038316610e7c57604051634a1406b160e11b815260006004820152602401610521565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561094157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eef91815260200190565b60405180910390a350505050565b6108c4838383611521565b600060018211610f16575090565b816001600160801b8210610f2f5760809190911c9060401b5b680100000000000000008210610f4a5760409190911c9060201b5b6401000000008210610f615760209190911c9060101b5b620100008210610f765760109190911c9060081b5b6101008210610f8a5760089190911c9060041b5b60108210610f9d5760049190911c9060021b5b60048210610fa95760011b5b600302600190811c90818581610fc157610fc1611cf2565b048201901c90506001818581610fd957610fd9611cf2565b048201901c90506001818581610ff157610ff1611cf2565b048201901c9050600181858161100957611009611cf2565b048201901c9050600181858161102157611021611cf2565b048201901c9050600181858161103957611039611cf2565b048201901c905061105881858161105257611052611cf2565b04821190565b90039392505050565b60005b818310156110bb5760006110788484611588565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156110a7578092506110b5565b6110b2816001611cdf565b93505b50611064565b509392505050565b6001600160a01b0381166000908152602081905260408120546104a6565b816001600160a01b0316836001600160a01b0316141580156111035750600081115b156108c4576001600160a01b038316156111ab576001600160a01b03831660009081526009602052604081208190611146906115a3611141866115af565b6115e3565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516111a0929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156108c4576001600160a01b038216600090815260096020526040812081906111e49061161c611141866115af565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161123e929190918252602082015260400190565b60405180910390a25050505050565b600063ffffffff821115610b04576040516306dfcc6560e41b81526020600482015260248101839052604401610521565b606060ff83146112985761129183611628565b90506104a6565b8180546112a490611c7c565b80601f01602080910402602001604051908101604052809291908181526020018280546112d090611c7c565b801561131d5780601f106112f25761010080835404028352916020019161131d565b820191906000526020600020905b81548152906001019060200180831161130057829003601f168201915b505050505090506104a6565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561136457506000915060039050826113ee565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156113b8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166113e4575060009250600191508290506113ee565b9250600091508190505b9450945094915050565b600082600381111561140c5761140c611d08565b03611415575050565b600182600381111561142957611429611d08565b036114475760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561145b5761145b611d08565b0361147c5760405163fce698f760e01b815260048101829052602401610521565b600382600381111561149057611490611d08565b0361056f576040516335e2f38360e21b815260048101829052602401610521565b6040805180820190915260008082526020820152826000018263ffffffff16815481106114e0576114e0611d1e565b60009182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b61152c838383611667565b6001600160a01b03831661157d57600061154560025490565b90506001600160d01b038082111561157a57604051630e58ae9360e11b81526004810183905260248101829052604401610521565b50505b6108c4838383611791565b60006115976002848418611d34565b6108b090848416611cdf565b60006108b08284611d56565b60006001600160d01b03821115610b04576040516306dfcc6560e41b815260d0600482015260248101839052604401610521565b60008061160f6115f1610644565b6116076115fd88610d0b565b868863ffffffff16565b879190611807565b915091505b935093915050565b60006108b08284611d7d565b6060600061163583611815565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6001600160a01b0383166116925780600260008282546116879190611cdf565b909155506117049050565b6001600160a01b038316600090815260208190526040902054818110156116e55760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610521565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166117205760028054829003905561173f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178491815260200190565b60405180910390a3505050565b6001600160a01b0383166117b3576117b0600a61161c611141846115af565b50505b6001600160a01b0382166117d5576117d2600a6115a3611141846115af565b50505b6001600160a01b038381166000908152600860205260408082205485841683529120546108c4929182169116836110e1565b60008061160f85858561183d565b600060ff8216601f8111156104a657604051632cd44ac360e21b815260040160405180910390fd5b82546000908190801561193657600061185b87610b8c600185611ccc565b805490915065ffffffffffff80821691600160301b90046001600160d01b031690881682111561189e57604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff16036118d757825465ffffffffffff16600160301b6001600160d01b03891602178355611928565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b945085935061161492505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611614565b6000815180845260005b818110156119b75760208185018101518683018201520161199b565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108b06020830184611991565b80356001600160a01b0381168114611a0157600080fd5b919050565b60008060408385031215611a1957600080fd5b611a22836119ea565b946020939093013593505050565b600080600060608486031215611a4557600080fd5b611a4e846119ea565b9250611a5c602085016119ea565b9150604084013590509250925092565b600060208284031215611a7e57600080fd5b6108b0826119ea565b60ff60f81b881681526000602060e081840152611aa760e084018a611991565b8381036040850152611ab9818a611991565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611b0b57835183529284019291840191600101611aef565b50909c9b505050505050505050505050565b600060208284031215611b2f57600080fd5b5035919050565b803560ff81168114611a0157600080fd5b60008060008060008060c08789031215611b6057600080fd5b611b69876119ea565b95506020870135945060408701359350611b8560608801611b36565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611bba57600080fd5b611bc3886119ea565b9650611bd1602089016119ea565b95506040880135945060608801359350611bed60808901611b36565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611c1c57600080fd5b611c25836119ea565b9150611c33602084016119ea565b90509250929050565b60008060408385031215611c4f57600080fd5b611c58836119ea565b9150602083013563ffffffff81168114611c7157600080fd5b809150509250929050565b600181811c90821680611c9057607f821691505b602082108103611cb057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104a6576104a6611cb6565b808201808211156104a6576104a6611cb6565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082611d5157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160d01b03828116828216039080821115611d7657611d76611cb6565b5092915050565b6001600160d01b03818116838216019080821115611d7657611d76611cb656fea2646970667358221220be48a11b19883e1ea89539c6e966dcfbd34eccf56ae5ef131f0256163850039964736f6c63430008140033",
893
+ "linkReferences": {},
894
+ "deployedLinkReferences": {}
895
+ }