@arcblock/erc721did-contract 0.3.1 → 0.3.2
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.
- package/README.md +2 -0
- package/lib/cjs/ERC721DID.json +735 -0
- package/lib/cjs/ERC721DIDFactory.json +165 -0
- package/lib/{EvmChainList.json → cjs/EvmChainList.json} +22 -18
- package/lib/{contract.js → cjs/contract.js} +45 -22
- package/lib/esm/ERC721DID.json +735 -0
- package/lib/esm/ERC721DIDFactory.json +165 -0
- package/lib/esm/EvmChainList.json +54 -0
- package/lib/esm/contract.js +1412 -0
- package/package.json +24 -14
- package/lib/ERC721DID.json +0 -725
- package/lib/ERC721DIDFactory.json +0 -155
|
@@ -0,0 +1,1412 @@
|
|
|
1
|
+
import require$$0 from 'dotenv-flow';
|
|
2
|
+
import * as ethers$1 from 'ethers';
|
|
3
|
+
import require$$2 from 'axios';
|
|
4
|
+
import require$$3 from 'p-wait-for';
|
|
5
|
+
import * as util from '@ocap/util';
|
|
6
|
+
import require$$5 from 'lodash/upperFirst';
|
|
7
|
+
import require$$6 from 'lodash/keyBy';
|
|
8
|
+
import require$$7 from 'lodash/pick';
|
|
9
|
+
|
|
10
|
+
function getAugmentedNamespace(n) {
|
|
11
|
+
if (n.__esModule) return n;
|
|
12
|
+
var f = n.default;
|
|
13
|
+
if (typeof f == "function") {
|
|
14
|
+
var a = function a () {
|
|
15
|
+
if (this instanceof a) {
|
|
16
|
+
var args = [null];
|
|
17
|
+
args.push.apply(args, arguments);
|
|
18
|
+
var Ctor = Function.bind.apply(f, args);
|
|
19
|
+
return new Ctor();
|
|
20
|
+
}
|
|
21
|
+
return f.apply(this, arguments);
|
|
22
|
+
};
|
|
23
|
+
a.prototype = f.prototype;
|
|
24
|
+
} else a = {};
|
|
25
|
+
Object.defineProperty(a, '__esModule', {value: true});
|
|
26
|
+
Object.keys(n).forEach(function (k) {
|
|
27
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
28
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () {
|
|
31
|
+
return n[k];
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return a;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var contract$1 = {};
|
|
39
|
+
|
|
40
|
+
var require$$1 = /*@__PURE__*/getAugmentedNamespace(ethers$1);
|
|
41
|
+
|
|
42
|
+
var require$$4 = /*@__PURE__*/getAugmentedNamespace(util);
|
|
43
|
+
|
|
44
|
+
var _format$1 = "hh-sol-artifact-1";
|
|
45
|
+
var contractName$1 = "ERC721DID";
|
|
46
|
+
var sourceName$1 = "src/ERC721DID.sol";
|
|
47
|
+
var abi$1 = [
|
|
48
|
+
{
|
|
49
|
+
inputs: [
|
|
50
|
+
],
|
|
51
|
+
stateMutability: "nonpayable",
|
|
52
|
+
type: "constructor"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
anonymous: false,
|
|
56
|
+
inputs: [
|
|
57
|
+
{
|
|
58
|
+
indexed: true,
|
|
59
|
+
internalType: "address",
|
|
60
|
+
name: "to",
|
|
61
|
+
type: "address"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
indexed: true,
|
|
65
|
+
internalType: "uint256",
|
|
66
|
+
name: "tokenId",
|
|
67
|
+
type: "uint256"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
name: "Acquired",
|
|
71
|
+
type: "event"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
anonymous: false,
|
|
75
|
+
inputs: [
|
|
76
|
+
{
|
|
77
|
+
indexed: true,
|
|
78
|
+
internalType: "address",
|
|
79
|
+
name: "owner",
|
|
80
|
+
type: "address"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
indexed: true,
|
|
84
|
+
internalType: "address",
|
|
85
|
+
name: "approved",
|
|
86
|
+
type: "address"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
indexed: true,
|
|
90
|
+
internalType: "uint256",
|
|
91
|
+
name: "tokenId",
|
|
92
|
+
type: "uint256"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
name: "Approval",
|
|
96
|
+
type: "event"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
anonymous: false,
|
|
100
|
+
inputs: [
|
|
101
|
+
{
|
|
102
|
+
indexed: true,
|
|
103
|
+
internalType: "address",
|
|
104
|
+
name: "owner",
|
|
105
|
+
type: "address"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
indexed: true,
|
|
109
|
+
internalType: "address",
|
|
110
|
+
name: "operator",
|
|
111
|
+
type: "address"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
indexed: false,
|
|
115
|
+
internalType: "bool",
|
|
116
|
+
name: "approved",
|
|
117
|
+
type: "bool"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
name: "ApprovalForAll",
|
|
121
|
+
type: "event"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
anonymous: false,
|
|
125
|
+
inputs: [
|
|
126
|
+
{
|
|
127
|
+
indexed: false,
|
|
128
|
+
internalType: "uint8",
|
|
129
|
+
name: "version",
|
|
130
|
+
type: "uint8"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
name: "Initialized",
|
|
134
|
+
type: "event"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
anonymous: false,
|
|
138
|
+
inputs: [
|
|
139
|
+
{
|
|
140
|
+
indexed: false,
|
|
141
|
+
internalType: "address",
|
|
142
|
+
name: "userAddress",
|
|
143
|
+
type: "address"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
indexed: false,
|
|
147
|
+
internalType: "address payable",
|
|
148
|
+
name: "relayerAddress",
|
|
149
|
+
type: "address"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
indexed: false,
|
|
153
|
+
internalType: "bytes",
|
|
154
|
+
name: "functionSignature",
|
|
155
|
+
type: "bytes"
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
name: "MetaTransactionExecuted",
|
|
159
|
+
type: "event"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
anonymous: false,
|
|
163
|
+
inputs: [
|
|
164
|
+
{
|
|
165
|
+
indexed: true,
|
|
166
|
+
internalType: "address",
|
|
167
|
+
name: "to",
|
|
168
|
+
type: "address"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
indexed: true,
|
|
172
|
+
internalType: "uint256",
|
|
173
|
+
name: "tokenId",
|
|
174
|
+
type: "uint256"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
name: "Minted",
|
|
178
|
+
type: "event"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
anonymous: false,
|
|
182
|
+
inputs: [
|
|
183
|
+
{
|
|
184
|
+
indexed: true,
|
|
185
|
+
internalType: "address",
|
|
186
|
+
name: "previousOwner",
|
|
187
|
+
type: "address"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
indexed: true,
|
|
191
|
+
internalType: "address",
|
|
192
|
+
name: "newOwner",
|
|
193
|
+
type: "address"
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
name: "OwnershipTransferred",
|
|
197
|
+
type: "event"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
anonymous: false,
|
|
201
|
+
inputs: [
|
|
202
|
+
{
|
|
203
|
+
indexed: true,
|
|
204
|
+
internalType: "address",
|
|
205
|
+
name: "from",
|
|
206
|
+
type: "address"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
indexed: true,
|
|
210
|
+
internalType: "address",
|
|
211
|
+
name: "to",
|
|
212
|
+
type: "address"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
indexed: true,
|
|
216
|
+
internalType: "uint256",
|
|
217
|
+
name: "tokenId",
|
|
218
|
+
type: "uint256"
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
name: "Transfer",
|
|
222
|
+
type: "event"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
inputs: [
|
|
226
|
+
],
|
|
227
|
+
name: "ERC712_VERSION",
|
|
228
|
+
outputs: [
|
|
229
|
+
{
|
|
230
|
+
internalType: "string",
|
|
231
|
+
name: "",
|
|
232
|
+
type: "string"
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
stateMutability: "view",
|
|
236
|
+
type: "function"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
inputs: [
|
|
240
|
+
{
|
|
241
|
+
internalType: "address",
|
|
242
|
+
name: "_to",
|
|
243
|
+
type: "address"
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
name: "acquireAsset",
|
|
247
|
+
outputs: [
|
|
248
|
+
],
|
|
249
|
+
stateMutability: "payable",
|
|
250
|
+
type: "function"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
inputs: [
|
|
254
|
+
{
|
|
255
|
+
internalType: "address",
|
|
256
|
+
name: "to",
|
|
257
|
+
type: "address"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
internalType: "uint256",
|
|
261
|
+
name: "tokenId",
|
|
262
|
+
type: "uint256"
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
name: "approve",
|
|
266
|
+
outputs: [
|
|
267
|
+
],
|
|
268
|
+
stateMutability: "nonpayable",
|
|
269
|
+
type: "function"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
inputs: [
|
|
273
|
+
{
|
|
274
|
+
internalType: "address",
|
|
275
|
+
name: "owner",
|
|
276
|
+
type: "address"
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
name: "balanceOf",
|
|
280
|
+
outputs: [
|
|
281
|
+
{
|
|
282
|
+
internalType: "uint256",
|
|
283
|
+
name: "",
|
|
284
|
+
type: "uint256"
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
stateMutability: "view",
|
|
288
|
+
type: "function"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
inputs: [
|
|
292
|
+
],
|
|
293
|
+
name: "contractURI",
|
|
294
|
+
outputs: [
|
|
295
|
+
{
|
|
296
|
+
internalType: "string",
|
|
297
|
+
name: "",
|
|
298
|
+
type: "string"
|
|
299
|
+
}
|
|
300
|
+
],
|
|
301
|
+
stateMutability: "view",
|
|
302
|
+
type: "function"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
inputs: [
|
|
306
|
+
{
|
|
307
|
+
internalType: "address",
|
|
308
|
+
name: "userAddress",
|
|
309
|
+
type: "address"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
internalType: "bytes",
|
|
313
|
+
name: "functionSignature",
|
|
314
|
+
type: "bytes"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
internalType: "bytes32",
|
|
318
|
+
name: "sigR",
|
|
319
|
+
type: "bytes32"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
internalType: "bytes32",
|
|
323
|
+
name: "sigS",
|
|
324
|
+
type: "bytes32"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
internalType: "uint8",
|
|
328
|
+
name: "sigV",
|
|
329
|
+
type: "uint8"
|
|
330
|
+
}
|
|
331
|
+
],
|
|
332
|
+
name: "executeMetaTransaction",
|
|
333
|
+
outputs: [
|
|
334
|
+
{
|
|
335
|
+
internalType: "bytes",
|
|
336
|
+
name: "",
|
|
337
|
+
type: "bytes"
|
|
338
|
+
}
|
|
339
|
+
],
|
|
340
|
+
stateMutability: "payable",
|
|
341
|
+
type: "function"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
inputs: [
|
|
345
|
+
{
|
|
346
|
+
internalType: "uint256",
|
|
347
|
+
name: "_tokenId",
|
|
348
|
+
type: "uint256"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
name: "formatTokenURIValue",
|
|
352
|
+
outputs: [
|
|
353
|
+
{
|
|
354
|
+
internalType: "string",
|
|
355
|
+
name: "",
|
|
356
|
+
type: "string"
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
stateMutability: "view",
|
|
360
|
+
type: "function"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
inputs: [
|
|
364
|
+
{
|
|
365
|
+
internalType: "uint256",
|
|
366
|
+
name: "tokenId",
|
|
367
|
+
type: "uint256"
|
|
368
|
+
}
|
|
369
|
+
],
|
|
370
|
+
name: "getApproved",
|
|
371
|
+
outputs: [
|
|
372
|
+
{
|
|
373
|
+
internalType: "address",
|
|
374
|
+
name: "",
|
|
375
|
+
type: "address"
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
stateMutability: "view",
|
|
379
|
+
type: "function"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
inputs: [
|
|
383
|
+
],
|
|
384
|
+
name: "getChainId",
|
|
385
|
+
outputs: [
|
|
386
|
+
{
|
|
387
|
+
internalType: "uint256",
|
|
388
|
+
name: "",
|
|
389
|
+
type: "uint256"
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
stateMutability: "view",
|
|
393
|
+
type: "function"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
inputs: [
|
|
397
|
+
{
|
|
398
|
+
internalType: "uint256",
|
|
399
|
+
name: "_tokenId",
|
|
400
|
+
type: "uint256"
|
|
401
|
+
}
|
|
402
|
+
],
|
|
403
|
+
name: "getDIDByTokenId",
|
|
404
|
+
outputs: [
|
|
405
|
+
{
|
|
406
|
+
internalType: "string",
|
|
407
|
+
name: "",
|
|
408
|
+
type: "string"
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
stateMutability: "view",
|
|
412
|
+
type: "function"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
inputs: [
|
|
416
|
+
],
|
|
417
|
+
name: "getDomainSeperator",
|
|
418
|
+
outputs: [
|
|
419
|
+
{
|
|
420
|
+
internalType: "bytes32",
|
|
421
|
+
name: "",
|
|
422
|
+
type: "bytes32"
|
|
423
|
+
}
|
|
424
|
+
],
|
|
425
|
+
stateMutability: "view",
|
|
426
|
+
type: "function"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
inputs: [
|
|
430
|
+
{
|
|
431
|
+
internalType: "address",
|
|
432
|
+
name: "user",
|
|
433
|
+
type: "address"
|
|
434
|
+
}
|
|
435
|
+
],
|
|
436
|
+
name: "getNonce",
|
|
437
|
+
outputs: [
|
|
438
|
+
{
|
|
439
|
+
internalType: "uint256",
|
|
440
|
+
name: "nonce",
|
|
441
|
+
type: "uint256"
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
stateMutability: "view",
|
|
445
|
+
type: "function"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
inputs: [
|
|
449
|
+
{
|
|
450
|
+
internalType: "address",
|
|
451
|
+
name: "_proxyRegistryAddress",
|
|
452
|
+
type: "address"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
internalType: "string",
|
|
456
|
+
name: "_baseImageURI",
|
|
457
|
+
type: "string"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
internalType: "string",
|
|
461
|
+
name: "_contractName",
|
|
462
|
+
type: "string"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
internalType: "string",
|
|
466
|
+
name: "_contractSymbol",
|
|
467
|
+
type: "string"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
internalType: "string",
|
|
471
|
+
name: "_contractDescription",
|
|
472
|
+
type: "string"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
internalType: "uint256",
|
|
476
|
+
name: "_totalLimit",
|
|
477
|
+
type: "uint256"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
internalType: "uint256",
|
|
481
|
+
name: "_price",
|
|
482
|
+
type: "uint256"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
internalType: "address payable",
|
|
486
|
+
name: "_transferTokenAddress",
|
|
487
|
+
type: "address"
|
|
488
|
+
}
|
|
489
|
+
],
|
|
490
|
+
name: "initialize",
|
|
491
|
+
outputs: [
|
|
492
|
+
],
|
|
493
|
+
stateMutability: "nonpayable",
|
|
494
|
+
type: "function"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
inputs: [
|
|
498
|
+
{
|
|
499
|
+
internalType: "address",
|
|
500
|
+
name: "owner",
|
|
501
|
+
type: "address"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
internalType: "address",
|
|
505
|
+
name: "operator",
|
|
506
|
+
type: "address"
|
|
507
|
+
}
|
|
508
|
+
],
|
|
509
|
+
name: "isApprovedForAll",
|
|
510
|
+
outputs: [
|
|
511
|
+
{
|
|
512
|
+
internalType: "bool",
|
|
513
|
+
name: "",
|
|
514
|
+
type: "bool"
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
stateMutability: "view",
|
|
518
|
+
type: "function"
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
inputs: [
|
|
522
|
+
{
|
|
523
|
+
internalType: "address",
|
|
524
|
+
name: "_to",
|
|
525
|
+
type: "address"
|
|
526
|
+
}
|
|
527
|
+
],
|
|
528
|
+
name: "mintAsset",
|
|
529
|
+
outputs: [
|
|
530
|
+
],
|
|
531
|
+
stateMutability: "nonpayable",
|
|
532
|
+
type: "function"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
inputs: [
|
|
536
|
+
],
|
|
537
|
+
name: "name",
|
|
538
|
+
outputs: [
|
|
539
|
+
{
|
|
540
|
+
internalType: "string",
|
|
541
|
+
name: "",
|
|
542
|
+
type: "string"
|
|
543
|
+
}
|
|
544
|
+
],
|
|
545
|
+
stateMutability: "view",
|
|
546
|
+
type: "function"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
inputs: [
|
|
550
|
+
],
|
|
551
|
+
name: "owner",
|
|
552
|
+
outputs: [
|
|
553
|
+
{
|
|
554
|
+
internalType: "address",
|
|
555
|
+
name: "",
|
|
556
|
+
type: "address"
|
|
557
|
+
}
|
|
558
|
+
],
|
|
559
|
+
stateMutability: "view",
|
|
560
|
+
type: "function"
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
inputs: [
|
|
564
|
+
{
|
|
565
|
+
internalType: "uint256",
|
|
566
|
+
name: "tokenId",
|
|
567
|
+
type: "uint256"
|
|
568
|
+
}
|
|
569
|
+
],
|
|
570
|
+
name: "ownerOf",
|
|
571
|
+
outputs: [
|
|
572
|
+
{
|
|
573
|
+
internalType: "address",
|
|
574
|
+
name: "",
|
|
575
|
+
type: "address"
|
|
576
|
+
}
|
|
577
|
+
],
|
|
578
|
+
stateMutability: "view",
|
|
579
|
+
type: "function"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
inputs: [
|
|
583
|
+
],
|
|
584
|
+
name: "price",
|
|
585
|
+
outputs: [
|
|
586
|
+
{
|
|
587
|
+
internalType: "uint256",
|
|
588
|
+
name: "",
|
|
589
|
+
type: "uint256"
|
|
590
|
+
}
|
|
591
|
+
],
|
|
592
|
+
stateMutability: "view",
|
|
593
|
+
type: "function"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
inputs: [
|
|
597
|
+
],
|
|
598
|
+
name: "renounceOwnership",
|
|
599
|
+
outputs: [
|
|
600
|
+
],
|
|
601
|
+
stateMutability: "nonpayable",
|
|
602
|
+
type: "function"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
inputs: [
|
|
606
|
+
{
|
|
607
|
+
internalType: "address",
|
|
608
|
+
name: "from",
|
|
609
|
+
type: "address"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
internalType: "address",
|
|
613
|
+
name: "to",
|
|
614
|
+
type: "address"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
internalType: "uint256",
|
|
618
|
+
name: "tokenId",
|
|
619
|
+
type: "uint256"
|
|
620
|
+
}
|
|
621
|
+
],
|
|
622
|
+
name: "safeTransferFrom",
|
|
623
|
+
outputs: [
|
|
624
|
+
],
|
|
625
|
+
stateMutability: "nonpayable",
|
|
626
|
+
type: "function"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
inputs: [
|
|
630
|
+
{
|
|
631
|
+
internalType: "address",
|
|
632
|
+
name: "from",
|
|
633
|
+
type: "address"
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
internalType: "address",
|
|
637
|
+
name: "to",
|
|
638
|
+
type: "address"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
internalType: "uint256",
|
|
642
|
+
name: "tokenId",
|
|
643
|
+
type: "uint256"
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
internalType: "bytes",
|
|
647
|
+
name: "data",
|
|
648
|
+
type: "bytes"
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
name: "safeTransferFrom",
|
|
652
|
+
outputs: [
|
|
653
|
+
],
|
|
654
|
+
stateMutability: "nonpayable",
|
|
655
|
+
type: "function"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
inputs: [
|
|
659
|
+
{
|
|
660
|
+
internalType: "address",
|
|
661
|
+
name: "operator",
|
|
662
|
+
type: "address"
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
internalType: "bool",
|
|
666
|
+
name: "approved",
|
|
667
|
+
type: "bool"
|
|
668
|
+
}
|
|
669
|
+
],
|
|
670
|
+
name: "setApprovalForAll",
|
|
671
|
+
outputs: [
|
|
672
|
+
],
|
|
673
|
+
stateMutability: "nonpayable",
|
|
674
|
+
type: "function"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
inputs: [
|
|
678
|
+
{
|
|
679
|
+
internalType: "bytes4",
|
|
680
|
+
name: "interfaceId",
|
|
681
|
+
type: "bytes4"
|
|
682
|
+
}
|
|
683
|
+
],
|
|
684
|
+
name: "supportsInterface",
|
|
685
|
+
outputs: [
|
|
686
|
+
{
|
|
687
|
+
internalType: "bool",
|
|
688
|
+
name: "",
|
|
689
|
+
type: "bool"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
stateMutability: "view",
|
|
693
|
+
type: "function"
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
inputs: [
|
|
697
|
+
],
|
|
698
|
+
name: "symbol",
|
|
699
|
+
outputs: [
|
|
700
|
+
{
|
|
701
|
+
internalType: "string",
|
|
702
|
+
name: "",
|
|
703
|
+
type: "string"
|
|
704
|
+
}
|
|
705
|
+
],
|
|
706
|
+
stateMutability: "view",
|
|
707
|
+
type: "function"
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
inputs: [
|
|
711
|
+
{
|
|
712
|
+
internalType: "uint256",
|
|
713
|
+
name: "_tokenId",
|
|
714
|
+
type: "uint256"
|
|
715
|
+
}
|
|
716
|
+
],
|
|
717
|
+
name: "tokenURI",
|
|
718
|
+
outputs: [
|
|
719
|
+
{
|
|
720
|
+
internalType: "string",
|
|
721
|
+
name: "",
|
|
722
|
+
type: "string"
|
|
723
|
+
}
|
|
724
|
+
],
|
|
725
|
+
stateMutability: "view",
|
|
726
|
+
type: "function"
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
inputs: [
|
|
730
|
+
],
|
|
731
|
+
name: "totalLimit",
|
|
732
|
+
outputs: [
|
|
733
|
+
{
|
|
734
|
+
internalType: "uint256",
|
|
735
|
+
name: "",
|
|
736
|
+
type: "uint256"
|
|
737
|
+
}
|
|
738
|
+
],
|
|
739
|
+
stateMutability: "view",
|
|
740
|
+
type: "function"
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
inputs: [
|
|
744
|
+
],
|
|
745
|
+
name: "totalSupply",
|
|
746
|
+
outputs: [
|
|
747
|
+
{
|
|
748
|
+
internalType: "uint256",
|
|
749
|
+
name: "",
|
|
750
|
+
type: "uint256"
|
|
751
|
+
}
|
|
752
|
+
],
|
|
753
|
+
stateMutability: "view",
|
|
754
|
+
type: "function"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
inputs: [
|
|
758
|
+
{
|
|
759
|
+
internalType: "address",
|
|
760
|
+
name: "from",
|
|
761
|
+
type: "address"
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
internalType: "address",
|
|
765
|
+
name: "to",
|
|
766
|
+
type: "address"
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
internalType: "uint256",
|
|
770
|
+
name: "tokenId",
|
|
771
|
+
type: "uint256"
|
|
772
|
+
}
|
|
773
|
+
],
|
|
774
|
+
name: "transferFrom",
|
|
775
|
+
outputs: [
|
|
776
|
+
],
|
|
777
|
+
stateMutability: "nonpayable",
|
|
778
|
+
type: "function"
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
inputs: [
|
|
782
|
+
{
|
|
783
|
+
internalType: "address",
|
|
784
|
+
name: "newOwner",
|
|
785
|
+
type: "address"
|
|
786
|
+
}
|
|
787
|
+
],
|
|
788
|
+
name: "transferOwnership",
|
|
789
|
+
outputs: [
|
|
790
|
+
],
|
|
791
|
+
stateMutability: "nonpayable",
|
|
792
|
+
type: "function"
|
|
793
|
+
}
|
|
794
|
+
];
|
|
795
|
+
var bytecode$1 = "0x60806040526000600660006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600981526020017f45524337323144494400000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41425400000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000b19291906200038e565b508060019080519060200190620000ca9291906200038e565b505050620000ed620000e16200011a60201b60201c565b6200013660201b60201c565b620000fd620001fc60201b60201c565b62000114600a620002c560201b620018bd1760201c565b62000587565b600062000131620002db60201b620018d31760201c565b905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960159054906101000a900460ff16156200024f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024690620004c5565b60405180910390fd5b60ff8016600960149054906101000a900460ff1660ff1614620002c35760ff600960146101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620002ba919062000505565b60405180910390a15b565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200038757600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff8183015116925050506200038b565b3390505b90565b8280546200039c9062000551565b90600052602060002090601f016020900481019282620003c057600085556200040c565b82601f10620003db57805160ff19168380011785556200040c565b828001600101855582156200040c579182015b828111156200040b578251825591602001919060010190620003ee565b5b5090506200041b91906200041f565b5090565b5b808211156200043a57600081600090555060010162000420565b5090565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b6000620004ad6027836200043e565b9150620004ba826200044f565b604082019050919050565b60006020820190508181036000830152620004e0816200049e565b9050919050565b600060ff82169050919050565b620004ff81620004e7565b82525050565b60006020820190506200051c6000830184620004f4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200056a57607f821691505b6020821081141562000581576200058062000522565b5b50919050565b615c2580620005976000396000f3fe6080604052600436106101cd5760003560e01c8063715018a6116100f7578063a22cb46511610095578063e8a3d48511610064578063e8a3d48514610696578063e985e9c5146106c1578063f2fde38b146106fe578063f79da28a14610727576101cd565b8063a22cb465146105dc578063a36298c714610605578063b88d4fde14610630578063c87b56dd14610659576101cd565b806395d89b41116100d157806395d89b411461052d578063982d3ba014610558578063a035b1fe14610574578063a1e5425e1461059f576101cd565b8063715018a6146104ae5780637e032eb4146104c55780638da5cb5b14610502576101cd565b806320379ee51161016f57806342842e0e1161013e57806342842e0e146103e257806342ab15861461040b5780636352211e1461043457806370a0823114610471576101cd565b806320379ee51461032657806323b872dd146103515780632d0335ab1461037a5780633408e470146103b7576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630c53c51c146102a05780630f7e5970146102d057806318160ddd146102fb576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190613744565b610750565b604051610206919061378c565b60405180910390f35b34801561021b57600080fd5b50610224610832565b6040516102319190613840565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613898565b6108c4565b60405161026e9190613906565b60405180910390f35b34801561028357600080fd5b5061029e6004803603810190610299919061394d565b61090a565b005b6102ba60048036038101906102b59190613b31565b610a22565b6040516102c79190613c1d565b60405180910390f35b3480156102dc57600080fd5b506102e5610c94565b6040516102f29190613840565b60405180910390f35b34801561030757600080fd5b50610310610ccd565b60405161031d9190613c4e565b60405180910390f35b34801561033257600080fd5b5061033b610cea565b6040516103489190613c78565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613c93565b610cf4565b005b34801561038657600080fd5b506103a1600480360381019061039c9190613ce6565b610d54565b6040516103ae9190613c4e565b60405180910390f35b3480156103c357600080fd5b506103cc610d9d565b6040516103d99190613c4e565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c93565b610daa565b005b34801561041757600080fd5b50610432600480360381019061042d9190613ce6565b610dca565b005b34801561044057600080fd5b5061045b60048036038101906104569190613898565b610e89565b6040516104689190613906565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613ce6565b610f10565b6040516104a59190613c4e565b60405180910390f35b3480156104ba57600080fd5b506104c3610fc8565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190613898565b610fdc565b6040516104f99190613840565b60405180910390f35b34801561050e57600080fd5b50610517611027565b6040516105249190613906565b60405180910390f35b34801561053957600080fd5b50610542611051565b60405161054f9190613840565b60405180910390f35b610572600480360381019061056d9190613ce6565b6110e3565b005b34801561058057600080fd5b50610589611254565b6040516105969190613c4e565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613898565b61125a565b6040516105d39190613840565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190613d3f565b6113d5565b005b34801561061157600080fd5b5061061a6113eb565b6040516106279190613c4e565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613d7f565b6113f1565b005b34801561066557600080fd5b50610680600480360381019061067b9190613898565b611453565b60405161068d9190613840565b60405180910390f35b3480156106a257600080fd5b506106ab61148c565b6040516106b89190613840565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190613e02565b6114ea565b6040516106f5919061378c565b60405180910390f35b34801561070a57600080fd5b5061072560048036038101906107209190613ce6565b6115ec565b005b34801561073357600080fd5b5061074e60048036038101906107499190613f21565b611670565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061081b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082b575061082a82611984565b5b9050919050565b6060600d805461084190614076565b80601f016020809104026020016040519081016040528092919081815260200182805461086d90614076565b80156108ba5780601f1061088f576101008083540402835291602001916108ba565b820191906000526020600020905b81548152906001019060200180831161089d57829003601f168201915b5050505050905090565b60006108cf826119ee565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061091582610e89565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d9061411a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109a5611a39565b73ffffffffffffffffffffffffffffffffffffffff1614806109d457506109d3816109ce611a39565b6114ea565b5b610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a906141ac565b60405180910390fd5b610a1d8383611a48565b505050565b606060006040518060600160405280600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152509050610aa58782878787611b01565b610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb9061423e565b60405180910390fd5b610b376001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0a90919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051610bad9392919061426d565b60405180910390a16000803073ffffffffffffffffffffffffffffffffffffffff16888a604051602001610be292919061432f565b604051602081830303815290604052604051610bfe9190614357565b6000604051808303816000865af19150503d8060008114610c3b576040519150601f19603f3d011682016040523d82523d6000602084013e610c40565b606091505b509150915081610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906143ba565b60405180910390fd5b80935050505095945050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60006001610cdb600a611c20565b610ce59190614409565b905090565b6000600754905090565b610d05610cff611a39565b82611c2e565b610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b906144af565b60405180910390fd5b610d4f838383611cc3565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b610dc5838383604051806020016040528060008152506113f1565b505050565b610dd2611fbd565b6000610dde600a611c20565b90506000601254118015610df3575060125481115b15610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a9061451b565b60405180910390fd5b6000610e3e8361203b565b9050808373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe60405160405180910390a3505050565b600080610e9583612067565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90614587565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890614619565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fd0611fbd565b610fda60006120a4565b565b60606000610fe98361125a565b9050600081600c8360405160200161100393929190614885565b604051602081830303815290604052905061101e848261216a565b92505050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606010805461106090614076565b80601f016020809104026020016040519081016040528092919081815260200182805461108c90614076565b80156110d95780601f106110ae576101008083540402835291602001916110d9565b820191906000526020600020905b8154815290600101906020018083116110bc57829003601f168201915b5050505050905090565b60006110ef600a611c20565b90506000601254118015611104575060125481115b15611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b9061451b565b60405180910390fd5b600060135411156111fe57601354341015611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90614939565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fc573d6000803e3d6000fd5b505b60006112098361203b565b9050808373ffffffffffffffffffffffffffffffffffffffff167ffaa12ddb40ba6ec53659ef184da2121c1c228dd2e760b3574db7feca61d99f9a60405160405180910390a3505050565b60135481565b60606000611277836040518060200160405280600081525061216a565b905060008160405160200161128c9190614959565b60405160208183030381529060405280519060200120905060006112d2826040516020016112ba9190614991565b604051602081830303815290604052600060146122bc565b905060006040518060400160405280600281526020017f18200000000000000000000000000000000000000000000000000000000000008152509050600081836040516020016113239291906149ac565b6040516020818303038152906040529050600061136982805190602001206040516020016113519190614991565b604051602081830303815290604052600060046122bc565b90506000838583604051602001611382939291906149d0565b6040516020818303038152906040529050600061139e826123f3565b90506000816040516020016113b39190614a4d565b6040516020818303038152906040529050809950505050505050505050919050565b6113e76113e0611a39565b8383612786565b5050565b60125481565b6114026113fc611a39565b83611c2e565b611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906144af565b60405180910390fd5b61144d848484846128f3565b50505050565b606061146661146183610fdc565b61294f565b6040516020016114769190614abb565b6040516020818303038152906040529050919050565b606060006114c2600d600e600f60116040516020016114ae9493929190614c0d565b60405160208183030381529060405261294f565b9050806040516020016114d59190614abb565b60405160208183030381529060405291505090565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b81526004016115629190613906565b60206040518083038186803b15801561157a57600080fd5b505afa15801561158e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b29190614ce1565b73ffffffffffffffffffffffffffffffffffffffff1614156115d85760019150506115e6565b6115e28484612ab3565b9150505b92915050565b6115f4611fbd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90614d80565b60405180910390fd5b61166d816120a4565b50565b6000600960159054906101000a900460ff161590508080156116a457506001600960149054906101000a900460ff1660ff16105b806116d357506116b330612b47565b1580156116d257506001600960149054906101000a900460ff1660ff16145b5b611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990614e12565b60405180910390fd5b6001600960146101000a81548160ff021916908360ff1602179055508015611750576001600960156101000a81548160ff0219169083151502179055505b88600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600c90805190602001906117a7929190613635565b5086600d90805190602001906117be929190613635565b5085601090805190602001906117d5929190613635565b5084600e90805190602001906117ec929190613635565b50836012819055508260138190555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061184587612b6a565b61184f600a6118bd565b611858896120a4565b80156118b2576000600960156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516118a99190614e77565b60405180910390a15b505050505050505050565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561197d57600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611981565b3390505b90565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6119f781612be1565b611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d90614587565b60405180910390fd5b50565b6000611a436118d3565b905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611abb83610e89565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6990614f04565b60405180910390fd5b6001611b85611b8087612c22565b612c8a565b83868660405160008152602001604052604051611ba59493929190614f33565b6020604051602081039080840390855afa158015611bc7573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b60008183611c189190614f78565b905092915050565b600081600001549050919050565b600080611c3a83610e89565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c7c5750611c7b81856114ea565b5b80611cba57508373ffffffffffffffffffffffffffffffffffffffff16611ca2846108c4565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611ce382610e89565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090615040565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da0906150d2565b60405180910390fd5b611db68383836001612cc3565b8273ffffffffffffffffffffffffffffffffffffffff16611dd682610e89565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390615040565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611fb88383836001612cc9565b505050565b611fc5611a39565b73ffffffffffffffffffffffffffffffffffffffff16611fe3611027565b73ffffffffffffffffffffffffffffffffffffffff1614612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120309061513e565b60405180910390fd5b565b600080612048600a611c20565b9050612054600a6118bd565b61205e8382612ccf565b80915050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600d61217985612ced565b60405160200161218a9291906151aa565b60405160208183030381529060405290506000600d6040516020016121af9190615271565b6040516020818303038152906040529050600060405180602001604052806000815250905060006040518060400160405280601e81526020017f68747470733a2f2f666f72756d2e6f70656e7a657070656c696e2e636f6d00008152509050600061221988612ced565b9050600061222630612dc5565b9050600060405180602001604052806000815250905060008951111561227f576040518060400160405280600181526020017f2c0000000000000000000000000000000000000000000000000000000000000081525090505b868686868686868f60405160200161229e9897969594939291906153ce565b60405160208183030381529060405297505050505050505092915050565b6060835182846122cc9190614f78565b111561230d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230490615510565b60405180910390fd5b60008267ffffffffffffffff81111561232957612328613997565b5b6040519080825280601f01601f19166020018201604052801561235b5781602001600182028036833780820191505090505b50905060005b838110156123e7578581866123769190614f78565b8151811061238757612386615530565b5b602001015160f81c60f81b8282815181106123a5576123a4615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806123df9061555f565b915050612361565b50809150509392505050565b606060008251905060005b818110801561244f5750600060f81b8482815181106124205761241f615530565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156124615780806001019150506123fe565b60016117e361209f838503028161247b5761247a6155a8565b5b04820101915060008267ffffffffffffffff81111561249d5761249c613997565b5b6040519080825280601f01601f1916602001820160405280156124cf5781602001600182028036833780820191505090505b509050600080600060018603905060005b88518110156125f55760018703925088818151811061250257612501615530565b5b602001015160f81c60f81b60f81c60ff1693505b8183138061252b575060008463ffffffff1614155b156125e55784838151811061254357612542615530565b5b602001015160f81c60f81b60f81c60ff166101000261ffff1684019350603a8463ffffffff1681612577576125766155a8565b5b0660f81b85848151811061258e5761258d615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350603a8463ffffffff16816125d4576125d36155a8565b5b049350828060019003935050612516565b82915080806001019150506124e0565b5060008590505b868110801561264d5750600060f81b85828151811061261e5761261d615530565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561265f5780806001019150506125fc565b858103855103965060008767ffffffffffffffff81111561268357612682613997565b5b6040519080825280601f01601f1916602001820160405280156126b55781602001600182028036833780820191505090505b50905060005b88811015612775576000888483010390506040518060600160405280603a8152602001615bb6603a91398882815181106126f8576126f7615530565b5b602001015160f81c60f81b60f81c60ff168151811061271a57612719615530565b5b602001015160f81c60f81b83838151811061273857612737615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505080806001019150506126bb565b508098505050505050505050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90615623565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516128e6919061378c565b60405180910390a3505050565b6128fe848484611cc3565b61290a84848484612df2565b612949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612940906156b5565b60405180910390fd5b50505050565b606060008251141561297257604051806020016040528060008152509050612aae565b6000604051806060016040528060408152602001615b7660409139905060006003600285516129a19190614f78565b6129ab91906156d5565b60046129b79190615706565b67ffffffffffffffff8111156129d0576129cf613997565b5b6040519080825280601f01601f191660200182016040528015612a025781602001600182028036833780820191505090505b509050600182016020820185865187015b80821015612a6e576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845360018401935050612a13565b5050600386510660018114612a8a5760028114612a9d57612aa5565b603d6001830353603d6002830353612aa5565b603d60018303535b50505080925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600660009054906101000a900460ff1615612bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb1906157ac565b60405180910390fd5b612bc381612f89565b6001600660006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16612c0383612067565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000604051806080016040528060438152602001615ae4604391398051906020012082600001518360200151846040015180519060200120604051602001612c6d94939291906157cc565b604051602081830303815290604052805190602001209050919050565b6000612c94610cea565b82604051602001612ca692919061585d565b604051602081830303815290604052805190602001209050919050565b50505050565b50505050565b612ce982826040518060200160405280600081525061302d565b5050565b606060006001612cfc84613088565b01905060008167ffffffffffffffff811115612d1b57612d1a613997565b5b6040519080825280601f01601f191660200182016040528015612d4d5781602001600182028036833780820191505090505b509050600082602001820190505b600115612dba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612da457612da36155a8565b5b0494506000851415612db557612dba565b612d5b565b819350505050919050565b6060612deb8273ffffffffffffffffffffffffffffffffffffffff16601460ff166131db565b9050919050565b6000612e138473ffffffffffffffffffffffffffffffffffffffff16612b47565b15612f7c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612e3c611a39565b8786866040518563ffffffff1660e01b8152600401612e5e9493929190615894565b602060405180830381600087803b158015612e7857600080fd5b505af1925050508015612ea957506040513d601f19601f82011682018060405250810190612ea691906158f5565b60015b612f2c573d8060008114612ed9576040519150601f19603f3d011682016040523d82523d6000602084013e612ede565b606091505b50600081511415612f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1b906156b5565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f81565b600190505b949350505050565b6040518060800160405280604f8152602001615b27604f91398051906020012081805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012030612ff7610d9d565b60001b60405160200161300e959493929190615922565b6040516020818303038152906040528051906020012060078190555050565b6130378383613417565b6130446000848484612df2565b613083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307a906156b5565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106130e6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816130dc576130db6155a8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613123576d04ee2d6d415b85acef81000000008381613119576131186155a8565b5b0492506020810190505b662386f26fc10000831061315257662386f26fc100008381613148576131476155a8565b5b0492506010810190505b6305f5e100831061317b576305f5e1008381613171576131706155a8565b5b0492506008810190505b61271083106131a0576127108381613196576131956155a8565b5b0492506004810190505b606483106131c357606483816131b9576131b86155a8565b5b0492506002810190505b600a83106131d2576001810190505b80915050919050565b6060600060028360026131ee9190615706565b6131f89190614f78565b67ffffffffffffffff81111561321157613210613997565b5b6040519080825280601f01601f1916602001820160405280156132435781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061327b5761327a615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106132df576132de615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261331f9190615706565b6133299190614f78565b90505b60018111156133c9577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061336b5761336a615530565b5b1a60f81b82828151811061338257613381615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806133c290615975565b905061332c565b506000841461340d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613404906159eb565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347e90615a57565b60405180910390fd5b61349081612be1565b156134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c790615ac3565b60405180910390fd5b6134de600083836001612cc3565b6134e781612be1565b15613527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161351e90615ac3565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613631600083836001612cc9565b5050565b82805461364190614076565b90600052602060002090601f01602090048101928261366357600085556136aa565b82601f1061367c57805160ff19168380011785556136aa565b828001600101855582156136aa579182015b828111156136a957825182559160200191906001019061368e565b5b5090506136b791906136bb565b5090565b5b808211156136d45760008160009055506001016136bc565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613721816136ec565b811461372c57600080fd5b50565b60008135905061373e81613718565b92915050565b60006020828403121561375a576137596136e2565b5b60006137688482850161372f565b91505092915050565b60008115159050919050565b61378681613771565b82525050565b60006020820190506137a1600083018461377d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137e15780820151818401526020810190506137c6565b838111156137f0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613812826137a7565b61381c81856137b2565b935061382c8185602086016137c3565b613835816137f6565b840191505092915050565b6000602082019050818103600083015261385a8184613807565b905092915050565b6000819050919050565b61387581613862565b811461388057600080fd5b50565b6000813590506138928161386c565b92915050565b6000602082840312156138ae576138ad6136e2565b5b60006138bc84828501613883565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f0826138c5565b9050919050565b613900816138e5565b82525050565b600060208201905061391b60008301846138f7565b92915050565b61392a816138e5565b811461393557600080fd5b50565b60008135905061394781613921565b92915050565b60008060408385031215613964576139636136e2565b5b600061397285828601613938565b925050602061398385828601613883565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139cf826137f6565b810181811067ffffffffffffffff821117156139ee576139ed613997565b5b80604052505050565b6000613a016136d8565b9050613a0d82826139c6565b919050565b600067ffffffffffffffff821115613a2d57613a2c613997565b5b613a36826137f6565b9050602081019050919050565b82818337600083830152505050565b6000613a65613a6084613a12565b6139f7565b905082815260208101848484011115613a8157613a80613992565b5b613a8c848285613a43565b509392505050565b600082601f830112613aa957613aa861398d565b5b8135613ab9848260208601613a52565b91505092915050565b6000819050919050565b613ad581613ac2565b8114613ae057600080fd5b50565b600081359050613af281613acc565b92915050565b600060ff82169050919050565b613b0e81613af8565b8114613b1957600080fd5b50565b600081359050613b2b81613b05565b92915050565b600080600080600060a08688031215613b4d57613b4c6136e2565b5b6000613b5b88828901613938565b955050602086013567ffffffffffffffff811115613b7c57613b7b6136e7565b5b613b8888828901613a94565b9450506040613b9988828901613ae3565b9350506060613baa88828901613ae3565b9250506080613bbb88828901613b1c565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b6000613bef82613bc8565b613bf98185613bd3565b9350613c098185602086016137c3565b613c12816137f6565b840191505092915050565b60006020820190508181036000830152613c378184613be4565b905092915050565b613c4881613862565b82525050565b6000602082019050613c636000830184613c3f565b92915050565b613c7281613ac2565b82525050565b6000602082019050613c8d6000830184613c69565b92915050565b600080600060608486031215613cac57613cab6136e2565b5b6000613cba86828701613938565b9350506020613ccb86828701613938565b9250506040613cdc86828701613883565b9150509250925092565b600060208284031215613cfc57613cfb6136e2565b5b6000613d0a84828501613938565b91505092915050565b613d1c81613771565b8114613d2757600080fd5b50565b600081359050613d3981613d13565b92915050565b60008060408385031215613d5657613d556136e2565b5b6000613d6485828601613938565b9250506020613d7585828601613d2a565b9150509250929050565b60008060008060808587031215613d9957613d986136e2565b5b6000613da787828801613938565b9450506020613db887828801613938565b9350506040613dc987828801613883565b925050606085013567ffffffffffffffff811115613dea57613de96136e7565b5b613df687828801613a94565b91505092959194509250565b60008060408385031215613e1957613e186136e2565b5b6000613e2785828601613938565b9250506020613e3885828601613938565b9150509250929050565b600067ffffffffffffffff821115613e5d57613e5c613997565b5b613e66826137f6565b9050602081019050919050565b6000613e86613e8184613e42565b6139f7565b905082815260208101848484011115613ea257613ea1613992565b5b613ead848285613a43565b509392505050565b600082601f830112613eca57613ec961398d565b5b8135613eda848260208601613e73565b91505092915050565b6000613eee826138c5565b9050919050565b613efe81613ee3565b8114613f0957600080fd5b50565b600081359050613f1b81613ef5565b92915050565b600080600080600080600080610100898b031215613f4257613f416136e2565b5b6000613f508b828c01613938565b985050602089013567ffffffffffffffff811115613f7157613f706136e7565b5b613f7d8b828c01613eb5565b975050604089013567ffffffffffffffff811115613f9e57613f9d6136e7565b5b613faa8b828c01613eb5565b965050606089013567ffffffffffffffff811115613fcb57613fca6136e7565b5b613fd78b828c01613eb5565b955050608089013567ffffffffffffffff811115613ff857613ff76136e7565b5b6140048b828c01613eb5565b94505060a06140158b828c01613883565b93505060c06140268b828c01613883565b92505060e06140378b828c01613f0c565b9150509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061408e57607f821691505b602082108114156140a2576140a1614047565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141046021836137b2565b915061410f826140a8565b604082019050919050565b60006020820190508181036000830152614133816140f7565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614196603d836137b2565b91506141a18261413a565b604082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b60006142286021836137b2565b9150614233826141cc565b604082019050919050565b600060208201905081810360008301526142578161421b565b9050919050565b61426781613ee3565b82525050565b600060608201905061428260008301866138f7565b61428f602083018561425e565b81810360408301526142a18184613be4565b9050949350505050565b600081905092915050565b60006142c182613bc8565b6142cb81856142ab565b93506142db8185602086016137c3565b80840191505092915050565b60008160601b9050919050565b60006142ff826142e7565b9050919050565b6000614311826142f4565b9050919050565b614329614324826138e5565b614306565b82525050565b600061433b82856142b6565b91506143478284614318565b6014820191508190509392505050565b600061436382846142b6565b915081905092915050565b7f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000600082015250565b60006143a4601c836137b2565b91506143af8261436e565b602082019050919050565b600060208201905081810360008301526143d381614397565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061441482613862565b915061441f83613862565b925082821015614432576144316143da565b5b828203905092915050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614499602d836137b2565b91506144a48261443d565b604082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f4d6178206d696e7420636f756e74207265616368656400000000000000000000600082015250565b60006145056016836137b2565b9150614510826144cf565b602082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006145716018836137b2565b915061457c8261453b565b602082019050919050565b600060208201905081810360008301526145a081614564565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006146036029836137b2565b915061460e826145a7565b604082019050919050565b60006020820190508181036000830152614632816145f6565b9050919050565b600081905092915050565b7f22646964223a2200000000000000000000000000000000000000000000000000600082015250565b600061467a600783614639565b915061468582614644565b600782019050919050565b600061469b826137a7565b6146a58185614639565b93506146b58185602086016137c3565b80840191505092915050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b60006146f7600283614639565b9150614702826146c1565b600282019050919050565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b6000614743600983614639565b915061474e8261470d565b600982019050919050565b60008190508160005260206000209050919050565b6000815461477b81614076565b6147858186614639565b945060018216600081146147a057600181146147b1576147e4565b60ff198316865281860193506147e4565b6147ba85614759565b60005b838110156147dc578154818901526001820191506020810190506147bd565b838801955050505b50505092915050565b7f3f617373657449643d0000000000000000000000000000000000000000000000600082015250565b6000614823600983614639565b915061482e826147ed565b600982019050919050565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b600061486f600183614639565b915061487a82614839565b600182019050919050565b60006148908261466d565b915061489c8286614690565b91506148a7826146ea565b91506148b282614736565b91506148be828561476e565b91506148c982614816565b91506148d58284614690565b91506148e082614862565b9150819050949350505050565b7f4e6f7420656e6f75676820746f6b656e2073656e740000000000000000000000600082015250565b60006149236015836137b2565b915061492e826148ed565b602082019050919050565b6000602082019050818103600083015261495281614916565b9050919050565b60006149658284614690565b915081905092915050565b6000819050919050565b61498b61498682613ac2565b614970565b82525050565b600061499d828461497a565b60208201915081905092915050565b60006149b882856142b6565b91506149c482846142b6565b91508190509392505050565b60006149dc82866142b6565b91506149e882856142b6565b91506149f482846142b6565b9150819050949350505050565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614a37600183614639565b9150614a4282614a01565b600182019050919050565b6000614a5882614a2a565b9150614a648284614690565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614aa5601d83614639565b9150614ab082614a6f565b601d82019050919050565b6000614ac682614a98565b9150614ad28284614690565b915081905092915050565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b6000614b13600983614639565b9150614b1e82614add565b600982019050919050565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b6000614b5f601183614639565b9150614b6a82614b29565b601182019050919050565b7f2265787465726e616c5f6c696e6b223a22000000000000000000000000000000600082015250565b6000614bab601183614639565b9150614bb682614b75565b601182019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bf7600183614639565b9150614c0282614bc1565b600182019050919050565b6000614c1882614b06565b9150614c24828761476e565b9150614c2f82614b52565b9150614c3b828661476e565b9150614c46826146ea565b9150614c5182614736565b9150614c5d828561476e565b9150614c68826146ea565b9150614c7382614b9e565b9150614c7f828461476e565b9150614c8a82614862565b9150614c9582614bea565b915081905095945050505050565b6000614cae826138e5565b9050919050565b614cbe81614ca3565b8114614cc957600080fd5b50565b600081519050614cdb81614cb5565b92915050565b600060208284031215614cf757614cf66136e2565b5b6000614d0584828501614ccc565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d6a6026836137b2565b9150614d7582614d0e565b604082019050919050565b60006020820190508181036000830152614d9981614d5d565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000614dfc602e836137b2565b9150614e0782614da0565b604082019050919050565b60006020820190508181036000830152614e2b81614def565b9050919050565b6000819050919050565b6000819050919050565b6000614e61614e5c614e5784614e32565b614e3c565b613af8565b9050919050565b614e7181614e46565b82525050565b6000602082019050614e8c6000830184614e68565b92915050565b7f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360008201527f49474e4552000000000000000000000000000000000000000000000000000000602082015250565b6000614eee6025836137b2565b9150614ef982614e92565b604082019050919050565b60006020820190508181036000830152614f1d81614ee1565b9050919050565b614f2d81613af8565b82525050565b6000608082019050614f486000830187613c69565b614f556020830186614f24565b614f626040830185613c69565b614f6f6060830184613c69565b95945050505050565b6000614f8382613862565b9150614f8e83613862565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614fc357614fc26143da565b5b828201905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061502a6025836137b2565b915061503582614fce565b604082019050919050565b600060208201905081810360008301526150598161501d565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150bc6024836137b2565b91506150c782615060565b604082019050919050565b600060208201905081810360008301526150eb816150af565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006151286020836137b2565b9150615133826150f2565b602082019050919050565b600060208201905081810360008301526151578161511b565b9050919050565b7f2023000000000000000000000000000000000000000000000000000000000000600082015250565b6000615194600283614639565b915061519f8261515e565b600282019050919050565b60006151b6828561476e565b91506151c182615187565b91506151cd8284614690565b91508190509392505050565b7f546869732069732061204e4654206f6620000000000000000000000000000000600082015250565b600061520f601183614639565b915061521a826151d9565b601182019050919050565b7f2e00000000000000000000000000000000000000000000000000000000000000600082015250565b600061525b600183614639565b915061526682615225565b600182019050919050565b600061527c82615202565b9150615288828461476e565b91506152938261524e565b915081905092915050565b7f2261747472696275746573223a22000000000000000000000000000000000000600082015250565b60006152d4600e83614639565b91506152df8261529e565b600e82019050919050565b7f2265787465726e616c5f75726c223a2200000000000000000000000000000000600082015250565b6000615320601083614639565b915061532b826152ea565b601082019050919050565b7f22736e223a220000000000000000000000000000000000000000000000000000600082015250565b600061536c600683614639565b915061537782615336565b600682019050919050565b7f22636f6e747261637441646472657373223a2200000000000000000000000000600082015250565b60006153b8601383614639565b91506153c382615382565b601382019050919050565b60006153d982614b06565b91506153e5828b614690565b91506153f082614b52565b91506153fc828a614690565b9150615407826146ea565b9150615412826152c7565b915061541e8289614690565b9150615429826146ea565b915061543482615313565b91506154408288614690565b915061544b826146ea565b91506154568261535f565b91506154628287614690565b915061546d826146ea565b9150615478826153ab565b91506154848286614690565b915061548f82614862565b915061549b8285614690565b91506154a78284614690565b91506154b282614bea565b91508190509998505050505050505050565b7f496e76616c696420736c6963652072616e676500000000000000000000000000600082015250565b60006154fa6013836137b2565b9150615505826154c4565b602082019050919050565b60006020820190508181036000830152615529816154ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061556a82613862565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561559d5761559c6143da565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061560d6019836137b2565b9150615618826155d7565b602082019050919050565b6000602082019050818103600083015261563c81615600565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061569f6032836137b2565b91506156aa82615643565b604082019050919050565b600060208201905081810360008301526156ce81615692565b9050919050565b60006156e082613862565b91506156eb83613862565b9250826156fb576156fa6155a8565b5b828204905092915050565b600061571182613862565b915061571c83613862565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615755576157546143da565b5b828202905092915050565b7f616c726561647920696e69746564000000000000000000000000000000000000600082015250565b6000615796600e836137b2565b91506157a182615760565b602082019050919050565b600060208201905081810360008301526157c581615789565b9050919050565b60006080820190506157e16000830187613c69565b6157ee6020830186613c3f565b6157fb60408301856138f7565b6158086060830184613c69565b95945050505050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000615847600283614639565b915061585282615811565b600282019050919050565b60006158688261583a565b9150615874828561497a565b602082019150615884828461497a565b6020820191508190509392505050565b60006080820190506158a960008301876138f7565b6158b660208301866138f7565b6158c36040830185613c3f565b81810360608301526158d58184613be4565b905095945050505050565b6000815190506158ef81613718565b92915050565b60006020828403121561590b5761590a6136e2565b5b6000615919848285016158e0565b91505092915050565b600060a0820190506159376000830188613c69565b6159446020830187613c69565b6159516040830186613c69565b61595e60608301856138f7565b61596b6080830184613c69565b9695505050505050565b600061598082613862565b91506000821415615994576159936143da565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006159d56020836137b2565b91506159e08261599f565b602082019050919050565b60006020820190508181036000830152615a04816159c8565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615a416020836137b2565b9150615a4c82615a0b565b602082019050919050565b60006020820190508181036000830152615a7081615a34565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615aad601c836137b2565b9150615ab882615a77565b602082019050919050565b60006020820190508181036000830152615adc81615aa0565b905091905056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c74294142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f31323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa2646970667358221220461cbbb2f48f95885ff0ce0a4c024c1682a66d97b1a7a89861dc773d3f92f22e64736f6c63430008090033";
|
|
796
|
+
var deployedBytecode$1 = "0x6080604052600436106101cd5760003560e01c8063715018a6116100f7578063a22cb46511610095578063e8a3d48511610064578063e8a3d48514610696578063e985e9c5146106c1578063f2fde38b146106fe578063f79da28a14610727576101cd565b8063a22cb465146105dc578063a36298c714610605578063b88d4fde14610630578063c87b56dd14610659576101cd565b806395d89b41116100d157806395d89b411461052d578063982d3ba014610558578063a035b1fe14610574578063a1e5425e1461059f576101cd565b8063715018a6146104ae5780637e032eb4146104c55780638da5cb5b14610502576101cd565b806320379ee51161016f57806342842e0e1161013e57806342842e0e146103e257806342ab15861461040b5780636352211e1461043457806370a0823114610471576101cd565b806320379ee51461032657806323b872dd146103515780632d0335ab1461037a5780633408e470146103b7576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630c53c51c146102a05780630f7e5970146102d057806318160ddd146102fb576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190613744565b610750565b604051610206919061378c565b60405180910390f35b34801561021b57600080fd5b50610224610832565b6040516102319190613840565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613898565b6108c4565b60405161026e9190613906565b60405180910390f35b34801561028357600080fd5b5061029e6004803603810190610299919061394d565b61090a565b005b6102ba60048036038101906102b59190613b31565b610a22565b6040516102c79190613c1d565b60405180910390f35b3480156102dc57600080fd5b506102e5610c94565b6040516102f29190613840565b60405180910390f35b34801561030757600080fd5b50610310610ccd565b60405161031d9190613c4e565b60405180910390f35b34801561033257600080fd5b5061033b610cea565b6040516103489190613c78565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613c93565b610cf4565b005b34801561038657600080fd5b506103a1600480360381019061039c9190613ce6565b610d54565b6040516103ae9190613c4e565b60405180910390f35b3480156103c357600080fd5b506103cc610d9d565b6040516103d99190613c4e565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c93565b610daa565b005b34801561041757600080fd5b50610432600480360381019061042d9190613ce6565b610dca565b005b34801561044057600080fd5b5061045b60048036038101906104569190613898565b610e89565b6040516104689190613906565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613ce6565b610f10565b6040516104a59190613c4e565b60405180910390f35b3480156104ba57600080fd5b506104c3610fc8565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190613898565b610fdc565b6040516104f99190613840565b60405180910390f35b34801561050e57600080fd5b50610517611027565b6040516105249190613906565b60405180910390f35b34801561053957600080fd5b50610542611051565b60405161054f9190613840565b60405180910390f35b610572600480360381019061056d9190613ce6565b6110e3565b005b34801561058057600080fd5b50610589611254565b6040516105969190613c4e565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613898565b61125a565b6040516105d39190613840565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190613d3f565b6113d5565b005b34801561061157600080fd5b5061061a6113eb565b6040516106279190613c4e565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190613d7f565b6113f1565b005b34801561066557600080fd5b50610680600480360381019061067b9190613898565b611453565b60405161068d9190613840565b60405180910390f35b3480156106a257600080fd5b506106ab61148c565b6040516106b89190613840565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190613e02565b6114ea565b6040516106f5919061378c565b60405180910390f35b34801561070a57600080fd5b5061072560048036038101906107209190613ce6565b6115ec565b005b34801561073357600080fd5b5061074e60048036038101906107499190613f21565b611670565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061081b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082b575061082a82611984565b5b9050919050565b6060600d805461084190614076565b80601f016020809104026020016040519081016040528092919081815260200182805461086d90614076565b80156108ba5780601f1061088f576101008083540402835291602001916108ba565b820191906000526020600020905b81548152906001019060200180831161089d57829003601f168201915b5050505050905090565b60006108cf826119ee565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061091582610e89565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d9061411a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109a5611a39565b73ffffffffffffffffffffffffffffffffffffffff1614806109d457506109d3816109ce611a39565b6114ea565b5b610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a906141ac565b60405180910390fd5b610a1d8383611a48565b505050565b606060006040518060600160405280600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152509050610aa58782878787611b01565b610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb9061423e565b60405180910390fd5b610b376001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0a90919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051610bad9392919061426d565b60405180910390a16000803073ffffffffffffffffffffffffffffffffffffffff16888a604051602001610be292919061432f565b604051602081830303815290604052604051610bfe9190614357565b6000604051808303816000865af19150503d8060008114610c3b576040519150601f19603f3d011682016040523d82523d6000602084013e610c40565b606091505b509150915081610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906143ba565b60405180910390fd5b80935050505095945050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60006001610cdb600a611c20565b610ce59190614409565b905090565b6000600754905090565b610d05610cff611a39565b82611c2e565b610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b906144af565b60405180910390fd5b610d4f838383611cc3565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b610dc5838383604051806020016040528060008152506113f1565b505050565b610dd2611fbd565b6000610dde600a611c20565b90506000601254118015610df3575060125481115b15610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a9061451b565b60405180910390fd5b6000610e3e8361203b565b9050808373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe60405160405180910390a3505050565b600080610e9583612067565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90614587565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890614619565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fd0611fbd565b610fda60006120a4565b565b60606000610fe98361125a565b9050600081600c8360405160200161100393929190614885565b604051602081830303815290604052905061101e848261216a565b92505050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606010805461106090614076565b80601f016020809104026020016040519081016040528092919081815260200182805461108c90614076565b80156110d95780601f106110ae576101008083540402835291602001916110d9565b820191906000526020600020905b8154815290600101906020018083116110bc57829003601f168201915b5050505050905090565b60006110ef600a611c20565b90506000601254118015611104575060125481115b15611144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113b9061451b565b60405180910390fd5b600060135411156111fe57601354341015611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90614939565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fc573d6000803e3d6000fd5b505b60006112098361203b565b9050808373ffffffffffffffffffffffffffffffffffffffff167ffaa12ddb40ba6ec53659ef184da2121c1c228dd2e760b3574db7feca61d99f9a60405160405180910390a3505050565b60135481565b60606000611277836040518060200160405280600081525061216a565b905060008160405160200161128c9190614959565b60405160208183030381529060405280519060200120905060006112d2826040516020016112ba9190614991565b604051602081830303815290604052600060146122bc565b905060006040518060400160405280600281526020017f18200000000000000000000000000000000000000000000000000000000000008152509050600081836040516020016113239291906149ac565b6040516020818303038152906040529050600061136982805190602001206040516020016113519190614991565b604051602081830303815290604052600060046122bc565b90506000838583604051602001611382939291906149d0565b6040516020818303038152906040529050600061139e826123f3565b90506000816040516020016113b39190614a4d565b6040516020818303038152906040529050809950505050505050505050919050565b6113e76113e0611a39565b8383612786565b5050565b60125481565b6114026113fc611a39565b83611c2e565b611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906144af565b60405180910390fd5b61144d848484846128f3565b50505050565b606061146661146183610fdc565b61294f565b6040516020016114769190614abb565b6040516020818303038152906040529050919050565b606060006114c2600d600e600f60116040516020016114ae9493929190614c0d565b60405160208183030381529060405261294f565b9050806040516020016114d59190614abb565b60405160208183030381529060405291505090565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b81526004016115629190613906565b60206040518083038186803b15801561157a57600080fd5b505afa15801561158e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b29190614ce1565b73ffffffffffffffffffffffffffffffffffffffff1614156115d85760019150506115e6565b6115e28484612ab3565b9150505b92915050565b6115f4611fbd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90614d80565b60405180910390fd5b61166d816120a4565b50565b6000600960159054906101000a900460ff161590508080156116a457506001600960149054906101000a900460ff1660ff16105b806116d357506116b330612b47565b1580156116d257506001600960149054906101000a900460ff1660ff16145b5b611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990614e12565b60405180910390fd5b6001600960146101000a81548160ff021916908360ff1602179055508015611750576001600960156101000a81548160ff0219169083151502179055505b88600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600c90805190602001906117a7929190613635565b5086600d90805190602001906117be929190613635565b5085601090805190602001906117d5929190613635565b5084600e90805190602001906117ec929190613635565b50836012819055508260138190555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061184587612b6a565b61184f600a6118bd565b611858896120a4565b80156118b2576000600960156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516118a99190614e77565b60405180910390a15b505050505050505050565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561197d57600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611981565b3390505b90565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6119f781612be1565b611a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2d90614587565b60405180910390fd5b50565b6000611a436118d3565b905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611abb83610e89565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6990614f04565b60405180910390fd5b6001611b85611b8087612c22565b612c8a565b83868660405160008152602001604052604051611ba59493929190614f33565b6020604051602081039080840390855afa158015611bc7573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b60008183611c189190614f78565b905092915050565b600081600001549050919050565b600080611c3a83610e89565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c7c5750611c7b81856114ea565b5b80611cba57508373ffffffffffffffffffffffffffffffffffffffff16611ca2846108c4565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611ce382610e89565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090615040565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da0906150d2565b60405180910390fd5b611db68383836001612cc3565b8273ffffffffffffffffffffffffffffffffffffffff16611dd682610e89565b73ffffffffffffffffffffffffffffffffffffffff1614611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390615040565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611fb88383836001612cc9565b505050565b611fc5611a39565b73ffffffffffffffffffffffffffffffffffffffff16611fe3611027565b73ffffffffffffffffffffffffffffffffffffffff1614612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120309061513e565b60405180910390fd5b565b600080612048600a611c20565b9050612054600a6118bd565b61205e8382612ccf565b80915050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600d61217985612ced565b60405160200161218a9291906151aa565b60405160208183030381529060405290506000600d6040516020016121af9190615271565b6040516020818303038152906040529050600060405180602001604052806000815250905060006040518060400160405280601e81526020017f68747470733a2f2f666f72756d2e6f70656e7a657070656c696e2e636f6d00008152509050600061221988612ced565b9050600061222630612dc5565b9050600060405180602001604052806000815250905060008951111561227f576040518060400160405280600181526020017f2c0000000000000000000000000000000000000000000000000000000000000081525090505b868686868686868f60405160200161229e9897969594939291906153ce565b60405160208183030381529060405297505050505050505092915050565b6060835182846122cc9190614f78565b111561230d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230490615510565b60405180910390fd5b60008267ffffffffffffffff81111561232957612328613997565b5b6040519080825280601f01601f19166020018201604052801561235b5781602001600182028036833780820191505090505b50905060005b838110156123e7578581866123769190614f78565b8151811061238757612386615530565b5b602001015160f81c60f81b8282815181106123a5576123a4615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806123df9061555f565b915050612361565b50809150509392505050565b606060008251905060005b818110801561244f5750600060f81b8482815181106124205761241f615530565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156124615780806001019150506123fe565b60016117e361209f838503028161247b5761247a6155a8565b5b04820101915060008267ffffffffffffffff81111561249d5761249c613997565b5b6040519080825280601f01601f1916602001820160405280156124cf5781602001600182028036833780820191505090505b509050600080600060018603905060005b88518110156125f55760018703925088818151811061250257612501615530565b5b602001015160f81c60f81b60f81c60ff1693505b8183138061252b575060008463ffffffff1614155b156125e55784838151811061254357612542615530565b5b602001015160f81c60f81b60f81c60ff166101000261ffff1684019350603a8463ffffffff1681612577576125766155a8565b5b0660f81b85848151811061258e5761258d615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350603a8463ffffffff16816125d4576125d36155a8565b5b049350828060019003935050612516565b82915080806001019150506124e0565b5060008590505b868110801561264d5750600060f81b85828151811061261e5761261d615530565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561265f5780806001019150506125fc565b858103855103965060008767ffffffffffffffff81111561268357612682613997565b5b6040519080825280601f01601f1916602001820160405280156126b55781602001600182028036833780820191505090505b50905060005b88811015612775576000888483010390506040518060600160405280603a8152602001615bb6603a91398882815181106126f8576126f7615530565b5b602001015160f81c60f81b60f81c60ff168151811061271a57612719615530565b5b602001015160f81c60f81b83838151811061273857612737615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505080806001019150506126bb565b508098505050505050505050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec90615623565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516128e6919061378c565b60405180910390a3505050565b6128fe848484611cc3565b61290a84848484612df2565b612949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612940906156b5565b60405180910390fd5b50505050565b606060008251141561297257604051806020016040528060008152509050612aae565b6000604051806060016040528060408152602001615b7660409139905060006003600285516129a19190614f78565b6129ab91906156d5565b60046129b79190615706565b67ffffffffffffffff8111156129d0576129cf613997565b5b6040519080825280601f01601f191660200182016040528015612a025781602001600182028036833780820191505090505b509050600182016020820185865187015b80821015612a6e576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845360018401935050612a13565b5050600386510660018114612a8a5760028114612a9d57612aa5565b603d6001830353603d6002830353612aa5565b603d60018303535b50505080925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600660009054906101000a900460ff1615612bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb1906157ac565b60405180910390fd5b612bc381612f89565b6001600660006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16612c0383612067565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000604051806080016040528060438152602001615ae4604391398051906020012082600001518360200151846040015180519060200120604051602001612c6d94939291906157cc565b604051602081830303815290604052805190602001209050919050565b6000612c94610cea565b82604051602001612ca692919061585d565b604051602081830303815290604052805190602001209050919050565b50505050565b50505050565b612ce982826040518060200160405280600081525061302d565b5050565b606060006001612cfc84613088565b01905060008167ffffffffffffffff811115612d1b57612d1a613997565b5b6040519080825280601f01601f191660200182016040528015612d4d5781602001600182028036833780820191505090505b509050600082602001820190505b600115612dba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612da457612da36155a8565b5b0494506000851415612db557612dba565b612d5b565b819350505050919050565b6060612deb8273ffffffffffffffffffffffffffffffffffffffff16601460ff166131db565b9050919050565b6000612e138473ffffffffffffffffffffffffffffffffffffffff16612b47565b15612f7c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612e3c611a39565b8786866040518563ffffffff1660e01b8152600401612e5e9493929190615894565b602060405180830381600087803b158015612e7857600080fd5b505af1925050508015612ea957506040513d601f19601f82011682018060405250810190612ea691906158f5565b60015b612f2c573d8060008114612ed9576040519150601f19603f3d011682016040523d82523d6000602084013e612ede565b606091505b50600081511415612f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1b906156b5565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f81565b600190505b949350505050565b6040518060800160405280604f8152602001615b27604f91398051906020012081805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012030612ff7610d9d565b60001b60405160200161300e959493929190615922565b6040516020818303038152906040528051906020012060078190555050565b6130378383613417565b6130446000848484612df2565b613083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161307a906156b5565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106130e6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816130dc576130db6155a8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613123576d04ee2d6d415b85acef81000000008381613119576131186155a8565b5b0492506020810190505b662386f26fc10000831061315257662386f26fc100008381613148576131476155a8565b5b0492506010810190505b6305f5e100831061317b576305f5e1008381613171576131706155a8565b5b0492506008810190505b61271083106131a0576127108381613196576131956155a8565b5b0492506004810190505b606483106131c357606483816131b9576131b86155a8565b5b0492506002810190505b600a83106131d2576001810190505b80915050919050565b6060600060028360026131ee9190615706565b6131f89190614f78565b67ffffffffffffffff81111561321157613210613997565b5b6040519080825280601f01601f1916602001820160405280156132435781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061327b5761327a615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106132df576132de615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261331f9190615706565b6133299190614f78565b90505b60018111156133c9577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061336b5761336a615530565b5b1a60f81b82828151811061338257613381615530565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806133c290615975565b905061332c565b506000841461340d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613404906159eb565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347e90615a57565b60405180910390fd5b61349081612be1565b156134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c790615ac3565b60405180910390fd5b6134de600083836001612cc3565b6134e781612be1565b15613527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161351e90615ac3565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613631600083836001612cc9565b5050565b82805461364190614076565b90600052602060002090601f01602090048101928261366357600085556136aa565b82601f1061367c57805160ff19168380011785556136aa565b828001600101855582156136aa579182015b828111156136a957825182559160200191906001019061368e565b5b5090506136b791906136bb565b5090565b5b808211156136d45760008160009055506001016136bc565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613721816136ec565b811461372c57600080fd5b50565b60008135905061373e81613718565b92915050565b60006020828403121561375a576137596136e2565b5b60006137688482850161372f565b91505092915050565b60008115159050919050565b61378681613771565b82525050565b60006020820190506137a1600083018461377d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137e15780820151818401526020810190506137c6565b838111156137f0576000848401525b50505050565b6000601f19601f8301169050919050565b6000613812826137a7565b61381c81856137b2565b935061382c8185602086016137c3565b613835816137f6565b840191505092915050565b6000602082019050818103600083015261385a8184613807565b905092915050565b6000819050919050565b61387581613862565b811461388057600080fd5b50565b6000813590506138928161386c565b92915050565b6000602082840312156138ae576138ad6136e2565b5b60006138bc84828501613883565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138f0826138c5565b9050919050565b613900816138e5565b82525050565b600060208201905061391b60008301846138f7565b92915050565b61392a816138e5565b811461393557600080fd5b50565b60008135905061394781613921565b92915050565b60008060408385031215613964576139636136e2565b5b600061397285828601613938565b925050602061398385828601613883565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139cf826137f6565b810181811067ffffffffffffffff821117156139ee576139ed613997565b5b80604052505050565b6000613a016136d8565b9050613a0d82826139c6565b919050565b600067ffffffffffffffff821115613a2d57613a2c613997565b5b613a36826137f6565b9050602081019050919050565b82818337600083830152505050565b6000613a65613a6084613a12565b6139f7565b905082815260208101848484011115613a8157613a80613992565b5b613a8c848285613a43565b509392505050565b600082601f830112613aa957613aa861398d565b5b8135613ab9848260208601613a52565b91505092915050565b6000819050919050565b613ad581613ac2565b8114613ae057600080fd5b50565b600081359050613af281613acc565b92915050565b600060ff82169050919050565b613b0e81613af8565b8114613b1957600080fd5b50565b600081359050613b2b81613b05565b92915050565b600080600080600060a08688031215613b4d57613b4c6136e2565b5b6000613b5b88828901613938565b955050602086013567ffffffffffffffff811115613b7c57613b7b6136e7565b5b613b8888828901613a94565b9450506040613b9988828901613ae3565b9350506060613baa88828901613ae3565b9250506080613bbb88828901613b1c565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b6000613bef82613bc8565b613bf98185613bd3565b9350613c098185602086016137c3565b613c12816137f6565b840191505092915050565b60006020820190508181036000830152613c378184613be4565b905092915050565b613c4881613862565b82525050565b6000602082019050613c636000830184613c3f565b92915050565b613c7281613ac2565b82525050565b6000602082019050613c8d6000830184613c69565b92915050565b600080600060608486031215613cac57613cab6136e2565b5b6000613cba86828701613938565b9350506020613ccb86828701613938565b9250506040613cdc86828701613883565b9150509250925092565b600060208284031215613cfc57613cfb6136e2565b5b6000613d0a84828501613938565b91505092915050565b613d1c81613771565b8114613d2757600080fd5b50565b600081359050613d3981613d13565b92915050565b60008060408385031215613d5657613d556136e2565b5b6000613d6485828601613938565b9250506020613d7585828601613d2a565b9150509250929050565b60008060008060808587031215613d9957613d986136e2565b5b6000613da787828801613938565b9450506020613db887828801613938565b9350506040613dc987828801613883565b925050606085013567ffffffffffffffff811115613dea57613de96136e7565b5b613df687828801613a94565b91505092959194509250565b60008060408385031215613e1957613e186136e2565b5b6000613e2785828601613938565b9250506020613e3885828601613938565b9150509250929050565b600067ffffffffffffffff821115613e5d57613e5c613997565b5b613e66826137f6565b9050602081019050919050565b6000613e86613e8184613e42565b6139f7565b905082815260208101848484011115613ea257613ea1613992565b5b613ead848285613a43565b509392505050565b600082601f830112613eca57613ec961398d565b5b8135613eda848260208601613e73565b91505092915050565b6000613eee826138c5565b9050919050565b613efe81613ee3565b8114613f0957600080fd5b50565b600081359050613f1b81613ef5565b92915050565b600080600080600080600080610100898b031215613f4257613f416136e2565b5b6000613f508b828c01613938565b985050602089013567ffffffffffffffff811115613f7157613f706136e7565b5b613f7d8b828c01613eb5565b975050604089013567ffffffffffffffff811115613f9e57613f9d6136e7565b5b613faa8b828c01613eb5565b965050606089013567ffffffffffffffff811115613fcb57613fca6136e7565b5b613fd78b828c01613eb5565b955050608089013567ffffffffffffffff811115613ff857613ff76136e7565b5b6140048b828c01613eb5565b94505060a06140158b828c01613883565b93505060c06140268b828c01613883565b92505060e06140378b828c01613f0c565b9150509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061408e57607f821691505b602082108114156140a2576140a1614047565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141046021836137b2565b915061410f826140a8565b604082019050919050565b60006020820190508181036000830152614133816140f7565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614196603d836137b2565b91506141a18261413a565b604082019050919050565b600060208201905081810360008301526141c581614189565b9050919050565b7f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b60006142286021836137b2565b9150614233826141cc565b604082019050919050565b600060208201905081810360008301526142578161421b565b9050919050565b61426781613ee3565b82525050565b600060608201905061428260008301866138f7565b61428f602083018561425e565b81810360408301526142a18184613be4565b9050949350505050565b600081905092915050565b60006142c182613bc8565b6142cb81856142ab565b93506142db8185602086016137c3565b80840191505092915050565b60008160601b9050919050565b60006142ff826142e7565b9050919050565b6000614311826142f4565b9050919050565b614329614324826138e5565b614306565b82525050565b600061433b82856142b6565b91506143478284614318565b6014820191508190509392505050565b600061436382846142b6565b915081905092915050565b7f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000600082015250565b60006143a4601c836137b2565b91506143af8261436e565b602082019050919050565b600060208201905081810360008301526143d381614397565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061441482613862565b915061441f83613862565b925082821015614432576144316143da565b5b828203905092915050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614499602d836137b2565b91506144a48261443d565b604082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f4d6178206d696e7420636f756e74207265616368656400000000000000000000600082015250565b60006145056016836137b2565b9150614510826144cf565b602082019050919050565b60006020820190508181036000830152614534816144f8565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006145716018836137b2565b915061457c8261453b565b602082019050919050565b600060208201905081810360008301526145a081614564565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006146036029836137b2565b915061460e826145a7565b604082019050919050565b60006020820190508181036000830152614632816145f6565b9050919050565b600081905092915050565b7f22646964223a2200000000000000000000000000000000000000000000000000600082015250565b600061467a600783614639565b915061468582614644565b600782019050919050565b600061469b826137a7565b6146a58185614639565b93506146b58185602086016137c3565b80840191505092915050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b60006146f7600283614639565b9150614702826146c1565b600282019050919050565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b6000614743600983614639565b915061474e8261470d565b600982019050919050565b60008190508160005260206000209050919050565b6000815461477b81614076565b6147858186614639565b945060018216600081146147a057600181146147b1576147e4565b60ff198316865281860193506147e4565b6147ba85614759565b60005b838110156147dc578154818901526001820191506020810190506147bd565b838801955050505b50505092915050565b7f3f617373657449643d0000000000000000000000000000000000000000000000600082015250565b6000614823600983614639565b915061482e826147ed565b600982019050919050565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b600061486f600183614639565b915061487a82614839565b600182019050919050565b60006148908261466d565b915061489c8286614690565b91506148a7826146ea565b91506148b282614736565b91506148be828561476e565b91506148c982614816565b91506148d58284614690565b91506148e082614862565b9150819050949350505050565b7f4e6f7420656e6f75676820746f6b656e2073656e740000000000000000000000600082015250565b60006149236015836137b2565b915061492e826148ed565b602082019050919050565b6000602082019050818103600083015261495281614916565b9050919050565b60006149658284614690565b915081905092915050565b6000819050919050565b61498b61498682613ac2565b614970565b82525050565b600061499d828461497a565b60208201915081905092915050565b60006149b882856142b6565b91506149c482846142b6565b91508190509392505050565b60006149dc82866142b6565b91506149e882856142b6565b91506149f482846142b6565b9150819050949350505050565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614a37600183614639565b9150614a4282614a01565b600182019050919050565b6000614a5882614a2a565b9150614a648284614690565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000614aa5601d83614639565b9150614ab082614a6f565b601d82019050919050565b6000614ac682614a98565b9150614ad28284614690565b915081905092915050565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b6000614b13600983614639565b9150614b1e82614add565b600982019050919050565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b6000614b5f601183614639565b9150614b6a82614b29565b601182019050919050565b7f2265787465726e616c5f6c696e6b223a22000000000000000000000000000000600082015250565b6000614bab601183614639565b9150614bb682614b75565b601182019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614bf7600183614639565b9150614c0282614bc1565b600182019050919050565b6000614c1882614b06565b9150614c24828761476e565b9150614c2f82614b52565b9150614c3b828661476e565b9150614c46826146ea565b9150614c5182614736565b9150614c5d828561476e565b9150614c68826146ea565b9150614c7382614b9e565b9150614c7f828461476e565b9150614c8a82614862565b9150614c9582614bea565b915081905095945050505050565b6000614cae826138e5565b9050919050565b614cbe81614ca3565b8114614cc957600080fd5b50565b600081519050614cdb81614cb5565b92915050565b600060208284031215614cf757614cf66136e2565b5b6000614d0584828501614ccc565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d6a6026836137b2565b9150614d7582614d0e565b604082019050919050565b60006020820190508181036000830152614d9981614d5d565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000614dfc602e836137b2565b9150614e0782614da0565b604082019050919050565b60006020820190508181036000830152614e2b81614def565b9050919050565b6000819050919050565b6000819050919050565b6000614e61614e5c614e5784614e32565b614e3c565b613af8565b9050919050565b614e7181614e46565b82525050565b6000602082019050614e8c6000830184614e68565b92915050565b7f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360008201527f49474e4552000000000000000000000000000000000000000000000000000000602082015250565b6000614eee6025836137b2565b9150614ef982614e92565b604082019050919050565b60006020820190508181036000830152614f1d81614ee1565b9050919050565b614f2d81613af8565b82525050565b6000608082019050614f486000830187613c69565b614f556020830186614f24565b614f626040830185613c69565b614f6f6060830184613c69565b95945050505050565b6000614f8382613862565b9150614f8e83613862565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614fc357614fc26143da565b5b828201905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061502a6025836137b2565b915061503582614fce565b604082019050919050565b600060208201905081810360008301526150598161501d565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150bc6024836137b2565b91506150c782615060565b604082019050919050565b600060208201905081810360008301526150eb816150af565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006151286020836137b2565b9150615133826150f2565b602082019050919050565b600060208201905081810360008301526151578161511b565b9050919050565b7f2023000000000000000000000000000000000000000000000000000000000000600082015250565b6000615194600283614639565b915061519f8261515e565b600282019050919050565b60006151b6828561476e565b91506151c182615187565b91506151cd8284614690565b91508190509392505050565b7f546869732069732061204e4654206f6620000000000000000000000000000000600082015250565b600061520f601183614639565b915061521a826151d9565b601182019050919050565b7f2e00000000000000000000000000000000000000000000000000000000000000600082015250565b600061525b600183614639565b915061526682615225565b600182019050919050565b600061527c82615202565b9150615288828461476e565b91506152938261524e565b915081905092915050565b7f2261747472696275746573223a22000000000000000000000000000000000000600082015250565b60006152d4600e83614639565b91506152df8261529e565b600e82019050919050565b7f2265787465726e616c5f75726c223a2200000000000000000000000000000000600082015250565b6000615320601083614639565b915061532b826152ea565b601082019050919050565b7f22736e223a220000000000000000000000000000000000000000000000000000600082015250565b600061536c600683614639565b915061537782615336565b600682019050919050565b7f22636f6e747261637441646472657373223a2200000000000000000000000000600082015250565b60006153b8601383614639565b91506153c382615382565b601382019050919050565b60006153d982614b06565b91506153e5828b614690565b91506153f082614b52565b91506153fc828a614690565b9150615407826146ea565b9150615412826152c7565b915061541e8289614690565b9150615429826146ea565b915061543482615313565b91506154408288614690565b915061544b826146ea565b91506154568261535f565b91506154628287614690565b915061546d826146ea565b9150615478826153ab565b91506154848286614690565b915061548f82614862565b915061549b8285614690565b91506154a78284614690565b91506154b282614bea565b91508190509998505050505050505050565b7f496e76616c696420736c6963652072616e676500000000000000000000000000600082015250565b60006154fa6013836137b2565b9150615505826154c4565b602082019050919050565b60006020820190508181036000830152615529816154ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061556a82613862565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561559d5761559c6143da565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061560d6019836137b2565b9150615618826155d7565b602082019050919050565b6000602082019050818103600083015261563c81615600565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061569f6032836137b2565b91506156aa82615643565b604082019050919050565b600060208201905081810360008301526156ce81615692565b9050919050565b60006156e082613862565b91506156eb83613862565b9250826156fb576156fa6155a8565b5b828204905092915050565b600061571182613862565b915061571c83613862565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615755576157546143da565b5b828202905092915050565b7f616c726561647920696e69746564000000000000000000000000000000000000600082015250565b6000615796600e836137b2565b91506157a182615760565b602082019050919050565b600060208201905081810360008301526157c581615789565b9050919050565b60006080820190506157e16000830187613c69565b6157ee6020830186613c3f565b6157fb60408301856138f7565b6158086060830184613c69565b95945050505050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000615847600283614639565b915061585282615811565b600282019050919050565b60006158688261583a565b9150615874828561497a565b602082019150615884828461497a565b6020820191508190509392505050565b60006080820190506158a960008301876138f7565b6158b660208301866138f7565b6158c36040830185613c3f565b81810360608301526158d58184613be4565b905095945050505050565b6000815190506158ef81613718565b92915050565b60006020828403121561590b5761590a6136e2565b5b6000615919848285016158e0565b91505092915050565b600060a0820190506159376000830188613c69565b6159446020830187613c69565b6159516040830186613c69565b61595e60608301856138f7565b61596b6080830184613c69565b9695505050505050565b600061598082613862565b91506000821415615994576159936143da565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006159d56020836137b2565b91506159e08261599f565b602082019050919050565b60006020820190508181036000830152615a04816159c8565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615a416020836137b2565b9150615a4c82615a0b565b602082019050919050565b60006020820190508181036000830152615a7081615a34565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615aad601c836137b2565b9150615ab882615a77565b602082019050919050565b60006020820190508181036000830152615adc81615aa0565b905091905056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c74294142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f31323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa2646970667358221220461cbbb2f48f95885ff0ce0a4c024c1682a66d97b1a7a89861dc773d3f92f22e64736f6c63430008090033";
|
|
797
|
+
var linkReferences$1 = {
|
|
798
|
+
};
|
|
799
|
+
var deployedLinkReferences$1 = {
|
|
800
|
+
};
|
|
801
|
+
var require$$8 = {
|
|
802
|
+
_format: _format$1,
|
|
803
|
+
contractName: contractName$1,
|
|
804
|
+
sourceName: sourceName$1,
|
|
805
|
+
abi: abi$1,
|
|
806
|
+
bytecode: bytecode$1,
|
|
807
|
+
deployedBytecode: deployedBytecode$1,
|
|
808
|
+
linkReferences: linkReferences$1,
|
|
809
|
+
deployedLinkReferences: deployedLinkReferences$1
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
var _format = "hh-sol-artifact-1";
|
|
813
|
+
var contractName = "ERC721DIDFactory";
|
|
814
|
+
var sourceName = "src/ERC721DIDFactory.sol";
|
|
815
|
+
var abi = [
|
|
816
|
+
{
|
|
817
|
+
inputs: [
|
|
818
|
+
{
|
|
819
|
+
internalType: "address",
|
|
820
|
+
name: "_implementation",
|
|
821
|
+
type: "address"
|
|
822
|
+
}
|
|
823
|
+
],
|
|
824
|
+
stateMutability: "nonpayable",
|
|
825
|
+
type: "constructor"
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
anonymous: false,
|
|
829
|
+
inputs: [
|
|
830
|
+
{
|
|
831
|
+
indexed: false,
|
|
832
|
+
internalType: "address",
|
|
833
|
+
name: "contractAddress",
|
|
834
|
+
type: "address"
|
|
835
|
+
}
|
|
836
|
+
],
|
|
837
|
+
name: "Created",
|
|
838
|
+
type: "event"
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
anonymous: false,
|
|
842
|
+
inputs: [
|
|
843
|
+
{
|
|
844
|
+
indexed: true,
|
|
845
|
+
internalType: "address",
|
|
846
|
+
name: "previousOwner",
|
|
847
|
+
type: "address"
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
indexed: true,
|
|
851
|
+
internalType: "address",
|
|
852
|
+
name: "newOwner",
|
|
853
|
+
type: "address"
|
|
854
|
+
}
|
|
855
|
+
],
|
|
856
|
+
name: "OwnershipTransferred",
|
|
857
|
+
type: "event"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
stateMutability: "nonpayable",
|
|
861
|
+
type: "fallback"
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
inputs: [
|
|
865
|
+
{
|
|
866
|
+
internalType: "address",
|
|
867
|
+
name: "_proxyRegistryAddress",
|
|
868
|
+
type: "address"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
internalType: "string",
|
|
872
|
+
name: "_baseImageURI",
|
|
873
|
+
type: "string"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
internalType: "string",
|
|
877
|
+
name: "_contractName",
|
|
878
|
+
type: "string"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
internalType: "string",
|
|
882
|
+
name: "_contractSymbol",
|
|
883
|
+
type: "string"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
internalType: "string",
|
|
887
|
+
name: "_contractDescription",
|
|
888
|
+
type: "string"
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
internalType: "uint256",
|
|
892
|
+
name: "_totalLimit",
|
|
893
|
+
type: "uint256"
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
internalType: "uint256",
|
|
897
|
+
name: "_price",
|
|
898
|
+
type: "uint256"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
internalType: "address payable",
|
|
902
|
+
name: "_transferTokenAddress",
|
|
903
|
+
type: "address"
|
|
904
|
+
}
|
|
905
|
+
],
|
|
906
|
+
name: "create",
|
|
907
|
+
outputs: [
|
|
908
|
+
],
|
|
909
|
+
stateMutability: "nonpayable",
|
|
910
|
+
type: "function"
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
inputs: [
|
|
914
|
+
],
|
|
915
|
+
name: "implementation",
|
|
916
|
+
outputs: [
|
|
917
|
+
{
|
|
918
|
+
internalType: "address",
|
|
919
|
+
name: "",
|
|
920
|
+
type: "address"
|
|
921
|
+
}
|
|
922
|
+
],
|
|
923
|
+
stateMutability: "view",
|
|
924
|
+
type: "function"
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
inputs: [
|
|
928
|
+
],
|
|
929
|
+
name: "owner",
|
|
930
|
+
outputs: [
|
|
931
|
+
{
|
|
932
|
+
internalType: "address",
|
|
933
|
+
name: "",
|
|
934
|
+
type: "address"
|
|
935
|
+
}
|
|
936
|
+
],
|
|
937
|
+
stateMutability: "view",
|
|
938
|
+
type: "function"
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
inputs: [
|
|
942
|
+
],
|
|
943
|
+
name: "renounceOwnership",
|
|
944
|
+
outputs: [
|
|
945
|
+
],
|
|
946
|
+
stateMutability: "nonpayable",
|
|
947
|
+
type: "function"
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
inputs: [
|
|
951
|
+
{
|
|
952
|
+
internalType: "address",
|
|
953
|
+
name: "_implementation",
|
|
954
|
+
type: "address"
|
|
955
|
+
}
|
|
956
|
+
],
|
|
957
|
+
name: "setImplementation",
|
|
958
|
+
outputs: [
|
|
959
|
+
],
|
|
960
|
+
stateMutability: "nonpayable",
|
|
961
|
+
type: "function"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
inputs: [
|
|
965
|
+
{
|
|
966
|
+
internalType: "address",
|
|
967
|
+
name: "newOwner",
|
|
968
|
+
type: "address"
|
|
969
|
+
}
|
|
970
|
+
],
|
|
971
|
+
name: "transferOwnership",
|
|
972
|
+
outputs: [
|
|
973
|
+
],
|
|
974
|
+
stateMutability: "nonpayable",
|
|
975
|
+
type: "function"
|
|
976
|
+
}
|
|
977
|
+
];
|
|
978
|
+
var bytecode = "0x608060405234801561001057600080fd5b5060405162000e5638038062000e56833981810160405281019061003491906101c6565b61005061004561009760201b60201c565b61009f60201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101f3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061019382610168565b9050919050565b6101a381610188565b81146101ae57600080fd5b50565b6000815190506101c08161019a565b92915050565b6000602082840312156101dc576101db610163565b5b60006101ea848285016101b1565b91505092915050565b610c5380620002036000396000f3fe608060405234801561001057600080fd5b50600436106100665760003560e01c80635c60da1b146100a2578063715018a6146100c05780638da5cb5b146100ca578063c137ecd7146100e8578063d784d42614610104578063f2fde38b1461012057610067565b5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906105bb565b60405180910390fd5b6100aa61013c565b6040516100b7919061061c565b60405180910390f35b6100c8610162565b005b6100d2610176565b6040516100df919061061c565b60405180910390f35b61010260048036038101906100fd9190610831565b61019f565b005b61011e60048036038101906101199190610957565b610289565b005b61013a60048036038101906101359190610957565b6102d5565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61016a610359565b61017460006103d7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006101cc600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661049b565b90508073ffffffffffffffffffffffffffffffffffffffff1663f79da28a8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b8152600401610215989796959493929190610a19565b600060405180830381600087803b15801561022f57600080fd5b505af1158015610243573d6000803e3d6000fd5b505050507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b81604051610276919061061c565b60405180910390a1505050505050505050565b610291610359565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102dd610359565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561034d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034490610b25565b60405180910390fd5b610356816103d7565b50565b610361610556565b73ffffffffffffffffffffffffffffffffffffffff1661037f610176565b73ffffffffffffffffffffffffffffffffffffffff16146103d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cc90610b91565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054890610bfd565b60405180910390fd5b919050565b600033905090565b600082825260208201905092915050565b7f556e6b6e6f772066756e6374696f6e0000000000000000000000000000000000600082015250565b60006105a5600f8361055e565b91506105b08261056f565b602082019050919050565b600060208201905081810360008301526105d481610598565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610606826105db565b9050919050565b610616816105fb565b82525050565b6000602082019050610631600083018461060d565b92915050565b6000604051905090565b600080fd5b600080fd5b610654816105fb565b811461065f57600080fd5b50565b6000813590506106718161064b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6106ca82610681565b810181811067ffffffffffffffff821117156106e9576106e8610692565b5b80604052505050565b60006106fc610637565b905061070882826106c1565b919050565b600067ffffffffffffffff82111561072857610727610692565b5b61073182610681565b9050602081019050919050565b82818337600083830152505050565b600061076061075b8461070d565b6106f2565b90508281526020810184848401111561077c5761077b61067c565b5b61078784828561073e565b509392505050565b600082601f8301126107a4576107a3610677565b5b81356107b484826020860161074d565b91505092915050565b6000819050919050565b6107d0816107bd565b81146107db57600080fd5b50565b6000813590506107ed816107c7565b92915050565b60006107fe826105db565b9050919050565b61080e816107f3565b811461081957600080fd5b50565b60008135905061082b81610805565b92915050565b600080600080600080600080610100898b03121561085257610851610641565b5b60006108608b828c01610662565b985050602089013567ffffffffffffffff81111561088157610880610646565b5b61088d8b828c0161078f565b975050604089013567ffffffffffffffff8111156108ae576108ad610646565b5b6108ba8b828c0161078f565b965050606089013567ffffffffffffffff8111156108db576108da610646565b5b6108e78b828c0161078f565b955050608089013567ffffffffffffffff81111561090857610907610646565b5b6109148b828c0161078f565b94505060a06109258b828c016107de565b93505060c06109368b828c016107de565b92505060e06109478b828c0161081c565b9150509295985092959890939650565b60006020828403121561096d5761096c610641565b5b600061097b84828501610662565b91505092915050565b600081519050919050565b60005b838110156109ad578082015181840152602081019050610992565b838111156109bc576000848401525b50505050565b60006109cd82610984565b6109d7818561055e565b93506109e781856020860161098f565b6109f081610681565b840191505092915050565b610a04816107bd565b82525050565b610a13816107f3565b82525050565b600061010082019050610a2f600083018b61060d565b8181036020830152610a41818a6109c2565b90508181036040830152610a5581896109c2565b90508181036060830152610a6981886109c2565b90508181036080830152610a7d81876109c2565b9050610a8c60a08301866109fb565b610a9960c08301856109fb565b610aa660e0830184610a0a565b9998505050505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b0f60268361055e565b9150610b1a82610ab3565b604082019050919050565b60006020820190508181036000830152610b3e81610b02565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610b7b60208361055e565b9150610b8682610b45565b602082019050919050565b60006020820190508181036000830152610baa81610b6e565b9050919050565b7f455243313136373a20637265617465206661696c656400000000000000000000600082015250565b6000610be760168361055e565b9150610bf282610bb1565b602082019050919050565b60006020820190508181036000830152610c1681610bda565b905091905056fea2646970667358221220557868f3e08664e3b092710a8b1628826491347e6b43951266d630d283f43d0064736f6c63430008090033";
|
|
979
|
+
var deployedBytecode = "0x608060405234801561001057600080fd5b50600436106100665760003560e01c80635c60da1b146100a2578063715018a6146100c05780638da5cb5b146100ca578063c137ecd7146100e8578063d784d42614610104578063f2fde38b1461012057610067565b5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906105bb565b60405180910390fd5b6100aa61013c565b6040516100b7919061061c565b60405180910390f35b6100c8610162565b005b6100d2610176565b6040516100df919061061c565b60405180910390f35b61010260048036038101906100fd9190610831565b61019f565b005b61011e60048036038101906101199190610957565b610289565b005b61013a60048036038101906101359190610957565b6102d5565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61016a610359565b61017460006103d7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006101cc600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661049b565b90508073ffffffffffffffffffffffffffffffffffffffff1663f79da28a8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b8152600401610215989796959493929190610a19565b600060405180830381600087803b15801561022f57600080fd5b505af1158015610243573d6000803e3d6000fd5b505050507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b81604051610276919061061c565b60405180910390a1505050505050505050565b610291610359565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102dd610359565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561034d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034490610b25565b60405180910390fd5b610356816103d7565b50565b610361610556565b73ffffffffffffffffffffffffffffffffffffffff1661037f610176565b73ffffffffffffffffffffffffffffffffffffffff16146103d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cc90610b91565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f09050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054890610bfd565b60405180910390fd5b919050565b600033905090565b600082825260208201905092915050565b7f556e6b6e6f772066756e6374696f6e0000000000000000000000000000000000600082015250565b60006105a5600f8361055e565b91506105b08261056f565b602082019050919050565b600060208201905081810360008301526105d481610598565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610606826105db565b9050919050565b610616816105fb565b82525050565b6000602082019050610631600083018461060d565b92915050565b6000604051905090565b600080fd5b600080fd5b610654816105fb565b811461065f57600080fd5b50565b6000813590506106718161064b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6106ca82610681565b810181811067ffffffffffffffff821117156106e9576106e8610692565b5b80604052505050565b60006106fc610637565b905061070882826106c1565b919050565b600067ffffffffffffffff82111561072857610727610692565b5b61073182610681565b9050602081019050919050565b82818337600083830152505050565b600061076061075b8461070d565b6106f2565b90508281526020810184848401111561077c5761077b61067c565b5b61078784828561073e565b509392505050565b600082601f8301126107a4576107a3610677565b5b81356107b484826020860161074d565b91505092915050565b6000819050919050565b6107d0816107bd565b81146107db57600080fd5b50565b6000813590506107ed816107c7565b92915050565b60006107fe826105db565b9050919050565b61080e816107f3565b811461081957600080fd5b50565b60008135905061082b81610805565b92915050565b600080600080600080600080610100898b03121561085257610851610641565b5b60006108608b828c01610662565b985050602089013567ffffffffffffffff81111561088157610880610646565b5b61088d8b828c0161078f565b975050604089013567ffffffffffffffff8111156108ae576108ad610646565b5b6108ba8b828c0161078f565b965050606089013567ffffffffffffffff8111156108db576108da610646565b5b6108e78b828c0161078f565b955050608089013567ffffffffffffffff81111561090857610907610646565b5b6109148b828c0161078f565b94505060a06109258b828c016107de565b93505060c06109368b828c016107de565b92505060e06109478b828c0161081c565b9150509295985092959890939650565b60006020828403121561096d5761096c610641565b5b600061097b84828501610662565b91505092915050565b600081519050919050565b60005b838110156109ad578082015181840152602081019050610992565b838111156109bc576000848401525b50505050565b60006109cd82610984565b6109d7818561055e565b93506109e781856020860161098f565b6109f081610681565b840191505092915050565b610a04816107bd565b82525050565b610a13816107f3565b82525050565b600061010082019050610a2f600083018b61060d565b8181036020830152610a41818a6109c2565b90508181036040830152610a5581896109c2565b90508181036060830152610a6981886109c2565b90508181036080830152610a7d81876109c2565b9050610a8c60a08301866109fb565b610a9960c08301856109fb565b610aa660e0830184610a0a565b9998505050505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610b0f60268361055e565b9150610b1a82610ab3565b604082019050919050565b60006020820190508181036000830152610b3e81610b02565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610b7b60208361055e565b9150610b8682610b45565b602082019050919050565b60006020820190508181036000830152610baa81610b6e565b9050919050565b7f455243313136373a20637265617465206661696c656400000000000000000000600082015250565b6000610be760168361055e565b9150610bf282610bb1565b602082019050919050565b60006020820190508181036000830152610c1681610bda565b905091905056fea2646970667358221220557868f3e08664e3b092710a8b1628826491347e6b43951266d630d283f43d0064736f6c63430008090033";
|
|
980
|
+
var linkReferences = {
|
|
981
|
+
};
|
|
982
|
+
var deployedLinkReferences = {
|
|
983
|
+
};
|
|
984
|
+
var require$$9 = {
|
|
985
|
+
_format: _format,
|
|
986
|
+
contractName: contractName,
|
|
987
|
+
sourceName: sourceName,
|
|
988
|
+
abi: abi,
|
|
989
|
+
bytecode: bytecode,
|
|
990
|
+
deployedBytecode: deployedBytecode,
|
|
991
|
+
linkReferences: linkReferences,
|
|
992
|
+
deployedLinkReferences: deployedLinkReferences
|
|
993
|
+
};
|
|
994
|
+
|
|
995
|
+
var require$$10 = [
|
|
996
|
+
{
|
|
997
|
+
chainId: "5",
|
|
998
|
+
chainName: "Goerli",
|
|
999
|
+
contractFactoryAddress: "0x4c093eAf8d569f6b2dC5a217D25cb3f0B60918C3",
|
|
1000
|
+
isTest: true,
|
|
1001
|
+
networkName: "goerli",
|
|
1002
|
+
symbol: "ETH (Goerli)",
|
|
1003
|
+
defaultRPC: "https://goerli.infura.io/v3/31276ea517a941c5b91d914fab83494e",
|
|
1004
|
+
explorer: "https://goerli.etherscan.io",
|
|
1005
|
+
icon: "eth",
|
|
1006
|
+
enable: true,
|
|
1007
|
+
decimal: 18
|
|
1008
|
+
},
|
|
1009
|
+
{
|
|
1010
|
+
chainId: "84531",
|
|
1011
|
+
chainName: "Base Goerli",
|
|
1012
|
+
contractFactoryAddress: "0xe83044a18dAb8F28F99F22f413C3856A0e39B153",
|
|
1013
|
+
isTest: true,
|
|
1014
|
+
networkName: "base-goerli",
|
|
1015
|
+
symbol: "ETH (Base Goerli)",
|
|
1016
|
+
defaultRPC: "https://goerli.base.org",
|
|
1017
|
+
explorer: "https://goerli.basescan.org",
|
|
1018
|
+
icon: "base",
|
|
1019
|
+
enable: true,
|
|
1020
|
+
decimal: 18
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
chainId: "97",
|
|
1024
|
+
chainName: "BNB (Binance Smart Chain)",
|
|
1025
|
+
contractFactoryAddress: "0xf13AAEF9071498eE61D0e6390970e0629c60a53C",
|
|
1026
|
+
isTest: true,
|
|
1027
|
+
networkName: "bsc-test",
|
|
1028
|
+
symbol: "BNB",
|
|
1029
|
+
defaultRPC: "https://bsc.getblock.io/13042277-cdaa-47dc-acda-5a0900eaf4ae/testnet",
|
|
1030
|
+
explorer: "https://testnet.bscscan.com",
|
|
1031
|
+
icon: "bnb",
|
|
1032
|
+
enable: true,
|
|
1033
|
+
decimal: 18
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
chainId: "11155111",
|
|
1037
|
+
chainName: "Sepolia",
|
|
1038
|
+
contractFactoryAddress: "0xf13AAEF9071498eE61D0e6390970e0629c60a53C",
|
|
1039
|
+
isTest: true,
|
|
1040
|
+
networkName: "sepolia",
|
|
1041
|
+
symbol: "ETH (Sepolia)",
|
|
1042
|
+
defaultRPC: "https://sepolia.infura.io/v3/31276ea517a941c5b91d914fab83494e",
|
|
1043
|
+
explorer: "https://sepolia.etherscan.io",
|
|
1044
|
+
icon: "eth",
|
|
1045
|
+
enable: false,
|
|
1046
|
+
decimal: 18
|
|
1047
|
+
}
|
|
1048
|
+
];
|
|
1049
|
+
|
|
1050
|
+
var require$$11 = [
|
|
1051
|
+
{
|
|
1052
|
+
chainId: "31337",
|
|
1053
|
+
chainName: "Localhost",
|
|
1054
|
+
contractFactoryAddress: "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
|
|
1055
|
+
isTest: true,
|
|
1056
|
+
networkName: "localhost",
|
|
1057
|
+
symbol: "ETH (Localhost)",
|
|
1058
|
+
defaultRPC: "http://localhost:8545",
|
|
1059
|
+
explorer: "http://localhost:8545",
|
|
1060
|
+
icon: "eth",
|
|
1061
|
+
enable: true,
|
|
1062
|
+
decimal: 18
|
|
1063
|
+
}
|
|
1064
|
+
];
|
|
1065
|
+
|
|
1066
|
+
/* eslint-disable no-unused-vars */
|
|
1067
|
+
|
|
1068
|
+
/* eslint-disable no-undef */
|
|
1069
|
+
require$$0.config();
|
|
1070
|
+
const ethers = require$$1;
|
|
1071
|
+
const axios = require$$2;
|
|
1072
|
+
const waitFor = require$$3;
|
|
1073
|
+
const { toBase58 } = require$$4;
|
|
1074
|
+
const upperFirst = require$$5;
|
|
1075
|
+
const keyBy = require$$6;
|
|
1076
|
+
const pick = require$$7;
|
|
1077
|
+
const ERC721DID = require$$8;
|
|
1078
|
+
const ERC721DIDFactory = require$$9;
|
|
1079
|
+
|
|
1080
|
+
const INFURA_PROJECT_ID = '31276ea517a941c5b91d914fab83494e';
|
|
1081
|
+
|
|
1082
|
+
const CHAIN_MAP = {
|
|
1083
|
+
1: {
|
|
1084
|
+
networkName: 'mainnet',
|
|
1085
|
+
chainName: 'Ethereum Mainnet',
|
|
1086
|
+
chainId: '1',
|
|
1087
|
+
symbol: 'ETH',
|
|
1088
|
+
defaultRPC: `https://mainnet.infura.io/v3/${INFURA_PROJECT_ID}`,
|
|
1089
|
+
explorer: 'https://etherscan.io',
|
|
1090
|
+
icon: 'eth',
|
|
1091
|
+
enable: true,
|
|
1092
|
+
decimal: 18,
|
|
1093
|
+
},
|
|
1094
|
+
5: {
|
|
1095
|
+
networkName: 'goerli',
|
|
1096
|
+
chainName: 'Goerli',
|
|
1097
|
+
chainId: '5',
|
|
1098
|
+
symbol: 'ETH (Goerli)',
|
|
1099
|
+
defaultRPC: `https://goerli.infura.io/v3/${INFURA_PROJECT_ID}`,
|
|
1100
|
+
explorer: 'https://goerli.etherscan.io',
|
|
1101
|
+
icon: 'eth',
|
|
1102
|
+
enable: true,
|
|
1103
|
+
decimal: 18,
|
|
1104
|
+
},
|
|
1105
|
+
31337: {
|
|
1106
|
+
networkName: 'localhost',
|
|
1107
|
+
chainName: 'Localhost',
|
|
1108
|
+
chainId: '31337',
|
|
1109
|
+
symbol: 'ETH (Localhost)',
|
|
1110
|
+
defaultRPC: 'http://localhost:8545',
|
|
1111
|
+
explorer: 'http://localhost:8545',
|
|
1112
|
+
icon: 'eth',
|
|
1113
|
+
enable: true,
|
|
1114
|
+
decimal: 18,
|
|
1115
|
+
},
|
|
1116
|
+
84531: {
|
|
1117
|
+
networkName: 'base-goerli',
|
|
1118
|
+
chainName: 'Base Goerli',
|
|
1119
|
+
chainId: '84531',
|
|
1120
|
+
symbol: 'ETH (Base Goerli)',
|
|
1121
|
+
defaultRPC: 'https://goerli.base.org',
|
|
1122
|
+
explorer: 'https://goerli.basescan.org',
|
|
1123
|
+
icon: 'base',
|
|
1124
|
+
enable: true,
|
|
1125
|
+
decimal: 18,
|
|
1126
|
+
},
|
|
1127
|
+
11155111: {
|
|
1128
|
+
networkName: 'sepolia',
|
|
1129
|
+
chainName: 'Sepolia',
|
|
1130
|
+
chainId: '11155111',
|
|
1131
|
+
symbol: 'ETH (Sepolia)',
|
|
1132
|
+
defaultRPC: `https://sepolia.infura.io/v3/${INFURA_PROJECT_ID}`,
|
|
1133
|
+
explorer: 'https://sepolia.etherscan.io',
|
|
1134
|
+
icon: 'eth',
|
|
1135
|
+
enable: false, // FIXME
|
|
1136
|
+
decimal: 18,
|
|
1137
|
+
},
|
|
1138
|
+
97: {
|
|
1139
|
+
networkName: 'bsc-test',
|
|
1140
|
+
chainName: 'BNB (Binance Smart Chain)',
|
|
1141
|
+
chainId: '97',
|
|
1142
|
+
symbol: 'BNB',
|
|
1143
|
+
defaultRPC: 'https://bsc.getblock.io/13042277-cdaa-47dc-acda-5a0900eaf4ae/testnet',
|
|
1144
|
+
explorer: 'https://testnet.bscscan.com',
|
|
1145
|
+
icon: 'bnb',
|
|
1146
|
+
enable: true,
|
|
1147
|
+
decimal: 18,
|
|
1148
|
+
},
|
|
1149
|
+
};
|
|
1150
|
+
|
|
1151
|
+
const CUSTOM_CHAIN_MAP = {};
|
|
1152
|
+
|
|
1153
|
+
let isLocal = false;
|
|
1154
|
+
|
|
1155
|
+
function getProvider(chainId) {
|
|
1156
|
+
const { defaultRPC } = getChainInfo(chainId);
|
|
1157
|
+
return new ethers.providers.JsonRpcProvider(defaultRPC);
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
async function getContract({ contractAddress, chainId, signer } = {}) {
|
|
1161
|
+
const provider = getProvider(chainId);
|
|
1162
|
+
|
|
1163
|
+
const contract = new ethers.Contract(contractAddress, ERC721DID.abi, signer || provider);
|
|
1164
|
+
|
|
1165
|
+
return contract;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
async function getContractFactory({ contractAddress, chainId, signer } = {}) {
|
|
1169
|
+
const provider = getProvider(chainId);
|
|
1170
|
+
|
|
1171
|
+
const contract = new ethers.Contract(contractAddress, ERC721DIDFactory.abi, signer || provider);
|
|
1172
|
+
|
|
1173
|
+
return contract;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
async function getGasPrice({ provider }) {
|
|
1177
|
+
const gwei = 1000000000;
|
|
1178
|
+
|
|
1179
|
+
const chainId = await getChainId({ contract });
|
|
1180
|
+
|
|
1181
|
+
// ethereum
|
|
1182
|
+
if ([1, '1', 'mainnet', 'eth-main'].includes(chainId)) {
|
|
1183
|
+
const { data } = await axios.get(`https://token-data.arcblock.io/api/gas-prices?chainId=${chainId}`);
|
|
1184
|
+
return (data.fast / 10) * gwei;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
if ([5, '5', 'goerli', 'eth-goerli'].includes(chainId)) {
|
|
1188
|
+
const { gasPrice } = await provider.getFeeData();
|
|
1189
|
+
return gasPrice.toString();
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
// hardhat
|
|
1193
|
+
if ([31337, '31337', 'hardhat'].includes(chainId)) {
|
|
1194
|
+
return 1 * gwei;
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
// TODO: bsc
|
|
1198
|
+
// TODO: matic
|
|
1199
|
+
// TODO: fantom
|
|
1200
|
+
|
|
1201
|
+
return 1 * gwei;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
async function getTxData(params = {}) {
|
|
1205
|
+
const { contract, fn, args, value } = params;
|
|
1206
|
+
const txData = contract.interface.encodeFunctionData(fn, args);
|
|
1207
|
+
|
|
1208
|
+
const chainId = await getChainId({ contract });
|
|
1209
|
+
|
|
1210
|
+
// const gasPrice = await getGasPrice({ provider: contract.provider });
|
|
1211
|
+
// const gasPriceAsGwei = Math.ceil(ethers.utils.formatUnits(gasPrice, 'gwei').toString());
|
|
1212
|
+
|
|
1213
|
+
const extraEtherValueMap = value
|
|
1214
|
+
? {
|
|
1215
|
+
value,
|
|
1216
|
+
}
|
|
1217
|
+
: {};
|
|
1218
|
+
|
|
1219
|
+
const gasLimit = await contract.provider
|
|
1220
|
+
.estimateGas({
|
|
1221
|
+
to: contract.address,
|
|
1222
|
+
data: txData,
|
|
1223
|
+
...extraEtherValueMap,
|
|
1224
|
+
})
|
|
1225
|
+
.then((res) => res.toString());
|
|
1226
|
+
|
|
1227
|
+
return toBase58(
|
|
1228
|
+
Buffer.from(
|
|
1229
|
+
JSON.stringify({
|
|
1230
|
+
network: chainId,
|
|
1231
|
+
tx: {
|
|
1232
|
+
to: contract.address,
|
|
1233
|
+
value: '0',
|
|
1234
|
+
...extraEtherValueMap,
|
|
1235
|
+
gasLimit,
|
|
1236
|
+
data: txData,
|
|
1237
|
+
},
|
|
1238
|
+
}),
|
|
1239
|
+
'utf-8'
|
|
1240
|
+
)
|
|
1241
|
+
);
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
const waitForTxReceipt = async ({ contract, txHash }) => {
|
|
1245
|
+
let tx = {};
|
|
1246
|
+
let receipt = {};
|
|
1247
|
+
const txHashTemp = txHash;
|
|
1248
|
+
|
|
1249
|
+
await waitFor(
|
|
1250
|
+
async () => {
|
|
1251
|
+
// ethers getTransaction
|
|
1252
|
+
tx = await contract.provider.getTransaction(txHashTemp);
|
|
1253
|
+
return !!tx?.blockNumber;
|
|
1254
|
+
},
|
|
1255
|
+
{ interval: 3000, timeout: 30 * 60 * 1000 }
|
|
1256
|
+
);
|
|
1257
|
+
|
|
1258
|
+
await waitFor(
|
|
1259
|
+
async () => {
|
|
1260
|
+
// ethers getTransactionReceipt
|
|
1261
|
+
const originReceipt = await contract.provider.getTransactionReceipt(txHashTemp);
|
|
1262
|
+
receipt = {
|
|
1263
|
+
...originReceipt,
|
|
1264
|
+
parseLog: originReceipt?.logs?.map((log) => {
|
|
1265
|
+
try {
|
|
1266
|
+
return contract.interface.parseLog(log);
|
|
1267
|
+
} catch (_error) {
|
|
1268
|
+
return log;
|
|
1269
|
+
}
|
|
1270
|
+
}),
|
|
1271
|
+
};
|
|
1272
|
+
return !!receipt?.blockNumber;
|
|
1273
|
+
},
|
|
1274
|
+
{ interval: 3000, timeout: 30 * 60 * 1000 }
|
|
1275
|
+
);
|
|
1276
|
+
|
|
1277
|
+
return receipt;
|
|
1278
|
+
};
|
|
1279
|
+
|
|
1280
|
+
const onContractFilter = async ({ contract, fn, onSuccess }) => {
|
|
1281
|
+
contract.provider.on(
|
|
1282
|
+
{
|
|
1283
|
+
address: contract.address,
|
|
1284
|
+
topics: [contract.interface.getEventTopic(upperFirst(fn))],
|
|
1285
|
+
},
|
|
1286
|
+
async (res) => {
|
|
1287
|
+
await onSuccess(res);
|
|
1288
|
+
}
|
|
1289
|
+
);
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1292
|
+
// @private
|
|
1293
|
+
const getChainIdByChainName = (chainName) => {
|
|
1294
|
+
return keyBy(
|
|
1295
|
+
{
|
|
1296
|
+
...CHAIN_MAP,
|
|
1297
|
+
...CUSTOM_CHAIN_MAP,
|
|
1298
|
+
},
|
|
1299
|
+
'networkName'
|
|
1300
|
+
)[chainName].chainId;
|
|
1301
|
+
};
|
|
1302
|
+
|
|
1303
|
+
const getChainId = async ({ contract }) => {
|
|
1304
|
+
const chainId = await contract.provider.getNetwork().then((res) => res.chainId);
|
|
1305
|
+
return `${chainId}`;
|
|
1306
|
+
};
|
|
1307
|
+
|
|
1308
|
+
const setupContractEnv = ({ customEvmChainList, isLocal: _isLocal = false }) => {
|
|
1309
|
+
customEvmChainList.forEach((chain) => {
|
|
1310
|
+
const { chainId } = chain;
|
|
1311
|
+
CUSTOM_CHAIN_MAP[chainId] = chain;
|
|
1312
|
+
});
|
|
1313
|
+
isLocal = _isLocal;
|
|
1314
|
+
};
|
|
1315
|
+
|
|
1316
|
+
const getChainInfo = (chainId) => {
|
|
1317
|
+
return {
|
|
1318
|
+
...CHAIN_MAP[chainId],
|
|
1319
|
+
...CUSTOM_CHAIN_MAP[chainId],
|
|
1320
|
+
};
|
|
1321
|
+
};
|
|
1322
|
+
|
|
1323
|
+
const getExplorerUrl = (chainId) => {
|
|
1324
|
+
const { explorer } = getChainInfo(chainId);
|
|
1325
|
+
|
|
1326
|
+
return `${explorer}`;
|
|
1327
|
+
};
|
|
1328
|
+
|
|
1329
|
+
const getAddressExplorerUrl = ({ chainId, hash }) => {
|
|
1330
|
+
return `${getExplorerUrl(chainId)}/address/${hash}`;
|
|
1331
|
+
};
|
|
1332
|
+
|
|
1333
|
+
const getBlockExplorerUrl = ({ chainId, blockletNumber }) => {
|
|
1334
|
+
return `${getExplorerUrl(chainId)}/block/${blockletNumber}`;
|
|
1335
|
+
};
|
|
1336
|
+
|
|
1337
|
+
const getTxExplorerUrl = ({ chainId, hash }) => {
|
|
1338
|
+
return `${getExplorerUrl(chainId)}/tx/${hash}`;
|
|
1339
|
+
};
|
|
1340
|
+
|
|
1341
|
+
const getCloneContractArgs = ({
|
|
1342
|
+
ownerAddress,
|
|
1343
|
+
baseImageURI,
|
|
1344
|
+
contractName,
|
|
1345
|
+
contractSymbol = '',
|
|
1346
|
+
contractDescription,
|
|
1347
|
+
totalLimit = 0,
|
|
1348
|
+
price = '0',
|
|
1349
|
+
transferTokenAddress,
|
|
1350
|
+
} = {}) => {
|
|
1351
|
+
const params = [
|
|
1352
|
+
ownerAddress,
|
|
1353
|
+
baseImageURI,
|
|
1354
|
+
contractName,
|
|
1355
|
+
contractSymbol,
|
|
1356
|
+
contractDescription,
|
|
1357
|
+
totalLimit,
|
|
1358
|
+
price,
|
|
1359
|
+
transferTokenAddress || ownerAddress,
|
|
1360
|
+
];
|
|
1361
|
+
return params;
|
|
1362
|
+
};
|
|
1363
|
+
|
|
1364
|
+
const getEvmChainList = () => {
|
|
1365
|
+
try {
|
|
1366
|
+
// eslint-disable-next-line global-require
|
|
1367
|
+
let defaultChainList = require$$10;
|
|
1368
|
+
if (isLocal) {
|
|
1369
|
+
defaultChainList = [
|
|
1370
|
+
...defaultChainList,
|
|
1371
|
+
// eslint-disable-next-line global-require
|
|
1372
|
+
...require$$11,
|
|
1373
|
+
];
|
|
1374
|
+
}
|
|
1375
|
+
// CUSTOM_CHAIN_MAP is setup by setupContractEnv
|
|
1376
|
+
if (Object.keys(CUSTOM_CHAIN_MAP).length > 0) {
|
|
1377
|
+
defaultChainList = defaultChainList.map((item) => {
|
|
1378
|
+
const { chainId } = item;
|
|
1379
|
+
if (CUSTOM_CHAIN_MAP[chainId]) {
|
|
1380
|
+
// override
|
|
1381
|
+
return {
|
|
1382
|
+
...item,
|
|
1383
|
+
...pick(CUSTOM_CHAIN_MAP[chainId], ['enable', 'defaultRPC', 'explorer']),
|
|
1384
|
+
};
|
|
1385
|
+
}
|
|
1386
|
+
return item;
|
|
1387
|
+
});
|
|
1388
|
+
}
|
|
1389
|
+
return defaultChainList;
|
|
1390
|
+
} catch (error) {
|
|
1391
|
+
// do nothing
|
|
1392
|
+
}
|
|
1393
|
+
return [];
|
|
1394
|
+
};
|
|
1395
|
+
|
|
1396
|
+
var getContract_1 = contract$1.getContract = getContract;
|
|
1397
|
+
var getContractFactory_1 = contract$1.getContractFactory = getContractFactory;
|
|
1398
|
+
var getTxData_1 = contract$1.getTxData = getTxData;
|
|
1399
|
+
var getGasPrice_1 = contract$1.getGasPrice = getGasPrice;
|
|
1400
|
+
var waitForTxReceipt_1 = contract$1.waitForTxReceipt = waitForTxReceipt;
|
|
1401
|
+
var onContractFilter_1 = contract$1.onContractFilter = onContractFilter;
|
|
1402
|
+
var getChainId_1 = contract$1.getChainId = getChainId;
|
|
1403
|
+
var getChainInfo_1 = contract$1.getChainInfo = getChainInfo;
|
|
1404
|
+
var getBlockExplorerUrl_1 = contract$1.getBlockExplorerUrl = getBlockExplorerUrl;
|
|
1405
|
+
var getTxExplorerUrl_1 = contract$1.getTxExplorerUrl = getTxExplorerUrl;
|
|
1406
|
+
var getAddressExplorerUrl_1 = contract$1.getAddressExplorerUrl = getAddressExplorerUrl;
|
|
1407
|
+
var getCloneContractArgs_1 = contract$1.getCloneContractArgs = getCloneContractArgs;
|
|
1408
|
+
var getEvmChainList_1 = contract$1.getEvmChainList = getEvmChainList;
|
|
1409
|
+
var setupContractEnv_1 = contract$1.setupContractEnv = setupContractEnv;
|
|
1410
|
+
var getChainIdByChainName_1 = contract$1.getChainIdByChainName = getChainIdByChainName;
|
|
1411
|
+
|
|
1412
|
+
export { contract$1 as default, getAddressExplorerUrl_1 as getAddressExplorerUrl, getBlockExplorerUrl_1 as getBlockExplorerUrl, getChainId_1 as getChainId, getChainIdByChainName_1 as getChainIdByChainName, getChainInfo_1 as getChainInfo, getCloneContractArgs_1 as getCloneContractArgs, getContract_1 as getContract, getContractFactory_1 as getContractFactory, getEvmChainList_1 as getEvmChainList, getGasPrice_1 as getGasPrice, getTxData_1 as getTxData, getTxExplorerUrl_1 as getTxExplorerUrl, onContractFilter_1 as onContractFilter, setupContractEnv_1 as setupContractEnv, waitForTxReceipt_1 as waitForTxReceipt };
|