@wireio/stake 0.0.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 (48) hide show
  1. package/LICENSE.md +114 -0
  2. package/README.md +28 -0
  3. package/lib/stake.browser.js +6875 -0
  4. package/lib/stake.browser.js.map +1 -0
  5. package/lib/stake.d.ts +6759 -0
  6. package/lib/stake.js +7178 -0
  7. package/lib/stake.js.map +1 -0
  8. package/lib/stake.m.js +6875 -0
  9. package/lib/stake.m.js.map +1 -0
  10. package/package.json +102 -0
  11. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  12. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  13. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +330 -0
  15. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  16. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +449 -0
  17. package/src/assets/solana/idl/deposit.json +260 -0
  18. package/src/assets/solana/idl/distribution.json +736 -0
  19. package/src/assets/solana/idl/liq_sol_token.json +275 -0
  20. package/src/assets/solana/idl/stake_controller.json +1788 -0
  21. package/src/assets/solana/idl/stake_registry.json +435 -0
  22. package/src/assets/solana/idl/treasury.json +336 -0
  23. package/src/assets/solana/idl/validator_leaderboard.json +528 -0
  24. package/src/assets/solana/idl/validator_registry.json +418 -0
  25. package/src/assets/solana/idl/yield_oracle.json +32 -0
  26. package/src/assets/solana/types/deposit.ts +266 -0
  27. package/src/assets/solana/types/distribution.ts +742 -0
  28. package/src/assets/solana/types/liq_sol_token.ts +281 -0
  29. package/src/assets/solana/types/stake_controller.ts +1794 -0
  30. package/src/assets/solana/types/stake_registry.ts +441 -0
  31. package/src/assets/solana/types/treasury.ts +342 -0
  32. package/src/assets/solana/types/validator_leaderboard.ts +534 -0
  33. package/src/assets/solana/types/validator_registry.ts +424 -0
  34. package/src/assets/solana/types/yield_oracle.ts +38 -0
  35. package/src/index.ts +21 -0
  36. package/src/networks/ethereum/contract.ts +167 -0
  37. package/src/networks/ethereum/ethereum.ts +64 -0
  38. package/src/networks/ethereum/types.ts +6 -0
  39. package/src/networks/solana/clients/deposit.client.ts +178 -0
  40. package/src/networks/solana/clients/distribution.client.ts +230 -0
  41. package/src/networks/solana/clients/leaderboard.client.ts +179 -0
  42. package/src/networks/solana/constants.ts +73 -0
  43. package/src/networks/solana/program.ts +113 -0
  44. package/src/networks/solana/solana.ts +84 -0
  45. package/src/networks/solana/utils.ts +122 -0
  46. package/src/staker/staker.ts +38 -0
  47. package/src/staker/types.ts +26 -0
  48. package/src/utils.ts +9 -0
@@ -0,0 +1,449 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC721Token",
4
+ "sourceName": "contracts/token/ERC721Token.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "sender",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "tokenId",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "owner",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "name": "ERC721IncorrectOwner",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "operator",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "tokenId",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "name": "ERC721InsufficientApproval",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "address",
52
+ "name": "approver",
53
+ "type": "address"
54
+ }
55
+ ],
56
+ "name": "ERC721InvalidApprover",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "operator",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "ERC721InvalidOperator",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "owner",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ERC721InvalidOwner",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "receiver",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ERC721InvalidReceiver",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "sender",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ERC721InvalidSender",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "uint256",
107
+ "name": "tokenId",
108
+ "type": "uint256"
109
+ }
110
+ ],
111
+ "name": "ERC721NonexistentToken",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "anonymous": false,
116
+ "inputs": [
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "owner",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "approved",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": true,
131
+ "internalType": "uint256",
132
+ "name": "tokenId",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "name": "Approval",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": true,
144
+ "internalType": "address",
145
+ "name": "owner",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "indexed": true,
150
+ "internalType": "address",
151
+ "name": "operator",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "indexed": false,
156
+ "internalType": "bool",
157
+ "name": "approved",
158
+ "type": "bool"
159
+ }
160
+ ],
161
+ "name": "ApprovalForAll",
162
+ "type": "event"
163
+ },
164
+ {
165
+ "anonymous": false,
166
+ "inputs": [
167
+ {
168
+ "indexed": true,
169
+ "internalType": "address",
170
+ "name": "from",
171
+ "type": "address"
172
+ },
173
+ {
174
+ "indexed": true,
175
+ "internalType": "address",
176
+ "name": "to",
177
+ "type": "address"
178
+ },
179
+ {
180
+ "indexed": true,
181
+ "internalType": "uint256",
182
+ "name": "tokenId",
183
+ "type": "uint256"
184
+ }
185
+ ],
186
+ "name": "Transfer",
187
+ "type": "event"
188
+ },
189
+ {
190
+ "inputs": [
191
+ {
192
+ "internalType": "address",
193
+ "name": "to",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "internalType": "uint256",
198
+ "name": "tokenId",
199
+ "type": "uint256"
200
+ }
201
+ ],
202
+ "name": "approve",
203
+ "outputs": [],
204
+ "stateMutability": "nonpayable",
205
+ "type": "function"
206
+ },
207
+ {
208
+ "inputs": [
209
+ {
210
+ "internalType": "address",
211
+ "name": "owner",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "name": "balanceOf",
216
+ "outputs": [
217
+ {
218
+ "internalType": "uint256",
219
+ "name": "",
220
+ "type": "uint256"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "tokenId",
231
+ "type": "uint256"
232
+ }
233
+ ],
234
+ "name": "getApproved",
235
+ "outputs": [
236
+ {
237
+ "internalType": "address",
238
+ "name": "",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "owner",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "internalType": "address",
254
+ "name": "operator",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "name": "isApprovedForAll",
259
+ "outputs": [
260
+ {
261
+ "internalType": "bool",
262
+ "name": "",
263
+ "type": "bool"
264
+ }
265
+ ],
266
+ "stateMutability": "view",
267
+ "type": "function"
268
+ },
269
+ {
270
+ "inputs": [],
271
+ "name": "name",
272
+ "outputs": [
273
+ {
274
+ "internalType": "string",
275
+ "name": "",
276
+ "type": "string"
277
+ }
278
+ ],
279
+ "stateMutability": "view",
280
+ "type": "function"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "uint256",
286
+ "name": "tokenId",
287
+ "type": "uint256"
288
+ }
289
+ ],
290
+ "name": "ownerOf",
291
+ "outputs": [
292
+ {
293
+ "internalType": "address",
294
+ "name": "",
295
+ "type": "address"
296
+ }
297
+ ],
298
+ "stateMutability": "view",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "from",
306
+ "type": "address"
307
+ },
308
+ {
309
+ "internalType": "address",
310
+ "name": "to",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "tokenId",
316
+ "type": "uint256"
317
+ }
318
+ ],
319
+ "name": "safeTransferFrom",
320
+ "outputs": [],
321
+ "stateMutability": "nonpayable",
322
+ "type": "function"
323
+ },
324
+ {
325
+ "inputs": [
326
+ {
327
+ "internalType": "address",
328
+ "name": "from",
329
+ "type": "address"
330
+ },
331
+ {
332
+ "internalType": "address",
333
+ "name": "to",
334
+ "type": "address"
335
+ },
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "tokenId",
339
+ "type": "uint256"
340
+ },
341
+ {
342
+ "internalType": "bytes",
343
+ "name": "data",
344
+ "type": "bytes"
345
+ }
346
+ ],
347
+ "name": "safeTransferFrom",
348
+ "outputs": [],
349
+ "stateMutability": "nonpayable",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address",
356
+ "name": "operator",
357
+ "type": "address"
358
+ },
359
+ {
360
+ "internalType": "bool",
361
+ "name": "approved",
362
+ "type": "bool"
363
+ }
364
+ ],
365
+ "name": "setApprovalForAll",
366
+ "outputs": [],
367
+ "stateMutability": "nonpayable",
368
+ "type": "function"
369
+ },
370
+ {
371
+ "inputs": [
372
+ {
373
+ "internalType": "bytes4",
374
+ "name": "interfaceId",
375
+ "type": "bytes4"
376
+ }
377
+ ],
378
+ "name": "supportsInterface",
379
+ "outputs": [
380
+ {
381
+ "internalType": "bool",
382
+ "name": "",
383
+ "type": "bool"
384
+ }
385
+ ],
386
+ "stateMutability": "view",
387
+ "type": "function"
388
+ },
389
+ {
390
+ "inputs": [],
391
+ "name": "symbol",
392
+ "outputs": [
393
+ {
394
+ "internalType": "string",
395
+ "name": "",
396
+ "type": "string"
397
+ }
398
+ ],
399
+ "stateMutability": "view",
400
+ "type": "function"
401
+ },
402
+ {
403
+ "inputs": [
404
+ {
405
+ "internalType": "uint256",
406
+ "name": "tokenId",
407
+ "type": "uint256"
408
+ }
409
+ ],
410
+ "name": "tokenURI",
411
+ "outputs": [
412
+ {
413
+ "internalType": "string",
414
+ "name": "",
415
+ "type": "string"
416
+ }
417
+ ],
418
+ "stateMutability": "view",
419
+ "type": "function"
420
+ },
421
+ {
422
+ "inputs": [
423
+ {
424
+ "internalType": "address",
425
+ "name": "from",
426
+ "type": "address"
427
+ },
428
+ {
429
+ "internalType": "address",
430
+ "name": "to",
431
+ "type": "address"
432
+ },
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "tokenId",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "name": "transferFrom",
440
+ "outputs": [],
441
+ "stateMutability": "nonpayable",
442
+ "type": "function"
443
+ }
444
+ ],
445
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051806040016040528060098152602001682a32b9ba2a37b5b2b760b91b8152506040518060400160405280600381526020016205343560ec1b815250816000908162000061919062000504565b50600162000070828262000504565b505050620000863360006200008c60201b60201c565b620005d0565b6001600160a01b038216620000bc57604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000620000cb838383620000ff565b90506001600160a01b03811615620000fa576040516339e3563760e11b815260006004820152602401620000b3565b505050565b6000828152600260205260408120546001600160a01b03908116908316156200012f576200012f818486620001fe565b6001600160a01b038116156200016f576200014e600085818062000268565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b038516156200019f576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6200020b83838362000396565b620000fa576001600160a01b0383166200023c57604051637e27328960e01b815260048101829052602401620000b3565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401620000b3565b80806200027d57506001600160a01b03821615155b156200036657600062000290846200041f565b90506001600160a01b03831615801590620002bd5750826001600160a01b0316816001600160a01b031614155b8015620002f057506001600160a01b0380821660009081526005602090815260408083209387168352929052205460ff16155b156200031b5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401620000b3565b8115620003645783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03831615801590620004175750826001600160a01b0316846001600160a01b03161480620003f257506001600160a01b0380851660009081526005602090815260408083209387168352929052205460ff165b806200041757506000828152600460205260409020546001600160a01b038481169116145b949350505050565b6000818152600260205260408120546001600160a01b0316806200045a57604051637e27328960e01b815260048101849052602401620000b3565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048b57607f821691505b602082108103620004ac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000fa57600081815260208120601f850160051c81016020861015620004db5750805b601f850160051c820191505b81811015620004fc57828155600101620004e7565b505050505050565b81516001600160401b0381111562000520576200052062000460565b620005388162000531845462000476565b84620004b2565b602080601f831160018114620005705760008415620005575750858301515b600019600386901b1c1916600185901b178555620004fc565b600085815260208120601f198616915b82811015620005a15788860151825594840194600190910190840162000580565b5085821015620005c05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61124280620005e06000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101c3578063b88d4fde146101d6578063c87b56dd146101e9578063e985e9c5146101fc57600080fd5b80636352211e1461018757806370a082311461019a57806395d89b41146101bb57600080fd5b8063095ea7b3116100bd578063095ea7b31461014c57806323b872dd1461016157806342842e0e1461017457600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004610e45565b610238565b60405190151581526020015b60405180910390f35b61011461031d565b6040516101039190610ed0565b61013461012f366004610ee3565b6103af565b6040516001600160a01b039091168152602001610103565b61015f61015a366004610f18565b6103d8565b005b61015f61016f366004610f42565b6103e7565b61015f610182366004610f42565b6104a9565b610134610195366004610ee3565b6104c9565b6101ad6101a8366004610f7e565b6104d4565b604051908152602001610103565b610114610535565b61015f6101d1366004610f99565b610544565b61015f6101e4366004611004565b61054f565b6101146101f7366004610ee3565b610566565b6100f761020a3660046110fe565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102cb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061031757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461032c90611131565b80601f016020809104026020016040519081016040528092919081815260200182805461035890611131565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b60006103ba826105db565b506000828152600460205260409020546001600160a01b0316610317565b6103e382823361062d565b5050565b6001600160a01b03821661042f576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b600061043c83833361063a565b9050836001600160a01b0316816001600160a01b0316146104a3576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b0380861660048301526024820184905282166044820152606401610426565b50505050565b6104c48383836040518060200160405280600081525061054f565b505050565b6000610317826105db565b60006001600160a01b038216610519576040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152602401610426565b506001600160a01b031660009081526003602052604090205490565b60606001805461032c90611131565b6103e3338383610769565b61055a8484846103e7565b6104a38484848461083f565b6060610571826105db565b50600061058960408051602081019091526000815290565b905060008151116105a957604051806020016040528060008152506105d4565b806105b384610a02565b6040516020016105c4929190611184565b6040516020818303038152906040525b9392505050565b6000818152600260205260408120546001600160a01b031680610317576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101849052602401610426565b6104c48383836001610ac0565b6000828152600260205260408120546001600160a01b039081169083161561066757610667818486610c16565b6001600160a01b038116156106c357610684600085600080610ac0565b6001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b6001600160a01b038516156106f2576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166107b4576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610426565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156104a3576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063150b7a029061089a9033908890879087906004016111b3565b6020604051808303816000875af19250505080156108f3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526108f0918101906111ef565b60015b610975573d808015610921576040519150601f19603f3d011682016040523d82523d6000602084013e610926565b606091505b50805160000361096d576040517f64a0ae920000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610426565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a0200000000000000000000000000000000000000000000000000000000146109fb576040517f64a0ae920000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610426565b5050505050565b60606000610a0f83610cac565b600101905060008167ffffffffffffffff811115610a2f57610a2f610fd5565b6040519080825280601f01601f191660200182016040528015610a59576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610a6357509392505050565b8080610ad457506001600160a01b03821615155b15610bce576000610ae4846105db565b90506001600160a01b03831615801590610b105750826001600160a01b0316816001600160a01b031614155b8015610b4257506001600160a01b0380821660009081526005602090815260408083209387168352929052205460ff16155b15610b84576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610426565b8115610bcc5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610c21838383610d8e565b6104c4576001600160a01b038316610c68576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101829052602401610426565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260248101829052604401610426565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610cf5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610d21576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d3f57662386f26fc10000830492506010015b6305f5e1008310610d57576305f5e100830492506008015b6127108310610d6b57612710830492506004015b60648310610d7d576064830492506002015b600a83106103175760010192915050565b60006001600160a01b03831615801590610e0c5750826001600160a01b0316846001600160a01b03161480610de857506001600160a01b0380851660009081526005602090815260408083209387168352929052205460ff165b80610e0c57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e4257600080fd5b50565b600060208284031215610e5757600080fd5b81356105d481610e14565b60005b83811015610e7d578181015183820152602001610e65565b50506000910152565b60008151808452610e9e816020860160208601610e62565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105d46020830184610e86565b600060208284031215610ef557600080fd5b5035919050565b80356001600160a01b0381168114610f1357600080fd5b919050565b60008060408385031215610f2b57600080fd5b610f3483610efc565b946020939093013593505050565b600080600060608486031215610f5757600080fd5b610f6084610efc565b9250610f6e60208501610efc565b9150604084013590509250925092565b600060208284031215610f9057600080fd5b6105d482610efc565b60008060408385031215610fac57600080fd5b610fb583610efc565b915060208301358015158114610fca57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561101a57600080fd5b61102385610efc565b935061103160208601610efc565b925060408501359150606085013567ffffffffffffffff8082111561105557600080fd5b818701915087601f83011261106957600080fd5b81358181111561107b5761107b610fd5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156110c1576110c1610fd5565b816040528281528a60208487010111156110da57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561111157600080fd5b61111a83610efc565b915061112860208401610efc565b90509250929050565b600181811c9082168061114557607f821691505b60208210810361117e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008351611196818460208801610e62565b8351908301906111aa818360208801610e62565b01949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526111e56080830184610e86565b9695505050505050565b60006020828403121561120157600080fd5b81516105d481610e1456fea2646970667358221220f01353e907bf32e618b272b375495d5c57e47c264dd1ba09828ba6800e20cae964736f6c63430008140033",
446
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101c3578063b88d4fde146101d6578063c87b56dd146101e9578063e985e9c5146101fc57600080fd5b80636352211e1461018757806370a082311461019a57806395d89b41146101bb57600080fd5b8063095ea7b3116100bd578063095ea7b31461014c57806323b872dd1461016157806342842e0e1461017457600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004610e45565b610238565b60405190151581526020015b60405180910390f35b61011461031d565b6040516101039190610ed0565b61013461012f366004610ee3565b6103af565b6040516001600160a01b039091168152602001610103565b61015f61015a366004610f18565b6103d8565b005b61015f61016f366004610f42565b6103e7565b61015f610182366004610f42565b6104a9565b610134610195366004610ee3565b6104c9565b6101ad6101a8366004610f7e565b6104d4565b604051908152602001610103565b610114610535565b61015f6101d1366004610f99565b610544565b61015f6101e4366004611004565b61054f565b6101146101f7366004610ee3565b610566565b6100f761020a3660046110fe565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102cb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061031757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461032c90611131565b80601f016020809104026020016040519081016040528092919081815260200182805461035890611131565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b60006103ba826105db565b506000828152600460205260409020546001600160a01b0316610317565b6103e382823361062d565b5050565b6001600160a01b03821661042f576040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b600061043c83833361063a565b9050836001600160a01b0316816001600160a01b0316146104a3576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b0380861660048301526024820184905282166044820152606401610426565b50505050565b6104c48383836040518060200160405280600081525061054f565b505050565b6000610317826105db565b60006001600160a01b038216610519576040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152602401610426565b506001600160a01b031660009081526003602052604090205490565b60606001805461032c90611131565b6103e3338383610769565b61055a8484846103e7565b6104a38484848461083f565b6060610571826105db565b50600061058960408051602081019091526000815290565b905060008151116105a957604051806020016040528060008152506105d4565b806105b384610a02565b6040516020016105c4929190611184565b6040516020818303038152906040525b9392505050565b6000818152600260205260408120546001600160a01b031680610317576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101849052602401610426565b6104c48383836001610ac0565b6000828152600260205260408120546001600160a01b039081169083161561066757610667818486610c16565b6001600160a01b038116156106c357610684600085600080610ac0565b6001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b6001600160a01b038516156106f2576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b0382166107b4576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610426565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156104a3576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063150b7a029061089a9033908890879087906004016111b3565b6020604051808303816000875af19250505080156108f3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526108f0918101906111ef565b60015b610975573d808015610921576040519150601f19603f3d011682016040523d82523d6000602084013e610926565b606091505b50805160000361096d576040517f64a0ae920000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610426565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a0200000000000000000000000000000000000000000000000000000000146109fb576040517f64a0ae920000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610426565b5050505050565b60606000610a0f83610cac565b600101905060008167ffffffffffffffff811115610a2f57610a2f610fd5565b6040519080825280601f01601f191660200182016040528015610a59576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610a6357509392505050565b8080610ad457506001600160a01b03821615155b15610bce576000610ae4846105db565b90506001600160a01b03831615801590610b105750826001600160a01b0316816001600160a01b031614155b8015610b4257506001600160a01b0380821660009081526005602090815260408083209387168352929052205460ff16155b15610b84576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610426565b8115610bcc5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610c21838383610d8e565b6104c4576001600160a01b038316610c68576040517f7e27328900000000000000000000000000000000000000000000000000000000815260048101829052602401610426565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260248101829052604401610426565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610cf5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610d21576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610d3f57662386f26fc10000830492506010015b6305f5e1008310610d57576305f5e100830492506008015b6127108310610d6b57612710830492506004015b60648310610d7d576064830492506002015b600a83106103175760010192915050565b60006001600160a01b03831615801590610e0c5750826001600160a01b0316846001600160a01b03161480610de857506001600160a01b0380851660009081526005602090815260408083209387168352929052205460ff165b80610e0c57506000828152600460205260409020546001600160a01b038481169116145b949350505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610e4257600080fd5b50565b600060208284031215610e5757600080fd5b81356105d481610e14565b60005b83811015610e7d578181015183820152602001610e65565b50506000910152565b60008151808452610e9e816020860160208601610e62565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105d46020830184610e86565b600060208284031215610ef557600080fd5b5035919050565b80356001600160a01b0381168114610f1357600080fd5b919050565b60008060408385031215610f2b57600080fd5b610f3483610efc565b946020939093013593505050565b600080600060608486031215610f5757600080fd5b610f6084610efc565b9250610f6e60208501610efc565b9150604084013590509250925092565b600060208284031215610f9057600080fd5b6105d482610efc565b60008060408385031215610fac57600080fd5b610fb583610efc565b915060208301358015158114610fca57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561101a57600080fd5b61102385610efc565b935061103160208601610efc565b925060408501359150606085013567ffffffffffffffff8082111561105557600080fd5b818701915087601f83011261106957600080fd5b81358181111561107b5761107b610fd5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156110c1576110c1610fd5565b816040528281528a60208487010111156110da57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561111157600080fd5b61111a83610efc565b915061112860208401610efc565b90509250929050565b600181811c9082168061114557607f821691505b60208210810361117e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008351611196818460208801610e62565b8351908301906111aa818360208801610e62565b01949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526111e56080830184610e86565b9695505050505050565b60006020828403121561120157600080fd5b81516105d481610e1456fea2646970667358221220f01353e907bf32e618b272b375495d5c57e47c264dd1ba09828ba6800e20cae964736f6c63430008140033",
447
+ "linkReferences": {},
448
+ "deployedLinkReferences": {}
449
+ }