├── index.html
├── mintScript.js
└── config.js
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | JoCoding Club Minitng
9 |
10 |
11 |
12 |
13 |
14 |
15 | MINTING INFO
16 | 현재 블록: #00000000
17 | 민팅 시작 블록: #00000000
18 | 민팅 가격: 0 KLAY
19 | 트랜잭션당 최대 수량: 0개
20 | 현재 블록넘버 확인하기1(Klaytnscope)
21 | 현재 블록넘버 확인하기2(Klayswap)
22 |
23 | MY WALLET
24 |
25 | 지갑주소: 연결되지 않음
26 | 잔액: 연결되지 않음
27 |
28 | MINT
29 | 0 / 0
30 |
31 |
32 |
33 |
34 |
35 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/mintScript.js:
--------------------------------------------------------------------------------
1 | let account;
2 | let mintIndexForSale = 0;
3 | let maxSaleAmount = 0;
4 | let mintPrice = 0;
5 | let mintStartBlockNumber = 0;
6 | let mintLimitPerBlock = 0;
7 |
8 | let blockNumber = 0;
9 | let blockCnt = false;
10 |
11 | function cntBlockNumber() {
12 | if(!blockCnt) {
13 | setInterval(function(){
14 | blockNumber+=1;
15 | document.getElementById("blockNubmer").innerHTML = "현재 블록: #" + blockNumber;
16 | }, 1000);
17 | blockCnt = true;
18 | }
19 | }
20 |
21 | async function connect() {
22 | const accounts = await klaytn.enable();
23 | if (klaytn.networkVersion === 8217) {
24 | console.log("메인넷");
25 | } else if (klaytn.networkVersion === 1001) {
26 | console.log("테스트넷");
27 | } else {
28 | alert("ERROR: 클레이튼 네트워크로 연결되지 않았습니다!");
29 | return;
30 | }
31 | account = accounts[0];
32 | caver.klay.getBalance(account)
33 | .then(function (balance) {
34 | document.getElementById("myWallet").innerHTML = `지갑주소: ${account}`
35 | document.getElementById("myKlay").innerHTML = `잔액: ${caver.utils.fromPeb(balance, "KLAY")} KLAY`
36 | });
37 | await check_status();
38 | }
39 |
40 | async function check_status() {
41 | const myContract = new caver.klay.Contract(ABI, CONTRACTADDRESS);
42 | await myContract.methods.mintingInformation().call()
43 | .then(function (result) {
44 | console.log(result);
45 | mintIndexForSale = parseInt(result[1]);
46 | mintLimitPerBlock = parseInt(result[2]);
47 | mintStartBlockNumber = parseInt(result[4]);
48 | maxSaleAmount = parseInt(result[5]);
49 | mintPrice = parseInt(result[6]);
50 | document.getElementById("mintCnt").innerHTML = `${mintIndexForSale - 1} / ${maxSaleAmount}`;
51 | document.getElementById("mintLimitPerBlock").innerHTML = `트랜잭션당 최대 수량: ${mintLimitPerBlock}개`;
52 | document.getElementById('amount').max = mintLimitPerBlock;
53 | document.getElementById("mintStartBlockNumber").innerHTML = `민팅 시작 블록: #${mintStartBlockNumber}`;
54 | document.getElementById("mintPrice").innerHTML = `민팅 가격: ${caver.utils.fromPeb(mintPrice, "KLAY")} KLAY`;
55 | })
56 | .catch(function (error) {
57 | console.log(error);
58 | });
59 | blockNumber = await caver.klay.getBlockNumber();
60 | document.getElementById("blockNubmer").innerHTML = "현재 블록: #" + blockNumber;
61 | cntBlockNumber();
62 | }
63 |
64 | async function publicMint() {
65 | if (klaytn.networkVersion === 8217) {
66 | console.log("메인넷");
67 | } else if (klaytn.networkVersion === 1001) {
68 | console.log("테스트넷");
69 | } else {
70 | alert("ERROR: 클레이튼 네트워크로 연결되지 않았습니다!");
71 | return;
72 | }
73 | if (!account) {
74 | alert("ERROR: 지갑을 연결해주세요!");
75 | return;
76 | }
77 |
78 | const myContract = new caver.klay.Contract(ABI, CONTRACTADDRESS);
79 | const amount = document.getElementById('amount').value;
80 | await check_status();
81 | if (maxSaleAmount + 1 <= mintIndexForSale) {
82 | alert("모든 물량이 소진되었습니다.");
83 | return;
84 | } else if (blockNumber <= mintStartBlockNumber) {
85 | alert("아직 민팅이 시작되지 않았습니다.");
86 | return;
87 | }
88 | const total_value = BigNumber(amount * mintPrice);
89 |
90 | try {
91 | const gasAmount = await myContract.methods.publicMint(amount).estimateGas({
92 | from: account,
93 | gas: 6000000,
94 | value: total_value
95 | })
96 | const result = await myContract.methods.publicMint(amount).send({
97 | from: account,
98 | gas: gasAmount,
99 | value: total_value
100 | })
101 | if (result != null) {
102 | console.log(result);
103 | alert("민팅에 성공하였습니다.");
104 | }
105 | } catch (error) {
106 | console.log(error);
107 | alert("민팅에 실패하였습니다.");
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/config.js:
--------------------------------------------------------------------------------
1 | const CONTRACTADDRESS = "0x2E990EF84DcE9c70733f4b6857De0aDb55a8D056";
2 | const ABI = [
3 | {
4 | "inputs": [
5 | {
6 | "internalType": "string",
7 | "name": "name",
8 | "type": "string"
9 | },
10 | {
11 | "internalType": "string",
12 | "name": "symbol",
13 | "type": "string"
14 | }
15 | ],
16 | "payable": false,
17 | "stateMutability": "nonpayable",
18 | "type": "constructor"
19 | },
20 | {
21 | "anonymous": false,
22 | "inputs": [
23 | {
24 | "indexed": true,
25 | "internalType": "address",
26 | "name": "owner",
27 | "type": "address"
28 | },
29 | {
30 | "indexed": true,
31 | "internalType": "address",
32 | "name": "approved",
33 | "type": "address"
34 | },
35 | {
36 | "indexed": true,
37 | "internalType": "uint256",
38 | "name": "tokenId",
39 | "type": "uint256"
40 | }
41 | ],
42 | "name": "Approval",
43 | "type": "event"
44 | },
45 | {
46 | "anonymous": false,
47 | "inputs": [
48 | {
49 | "indexed": true,
50 | "internalType": "address",
51 | "name": "owner",
52 | "type": "address"
53 | },
54 | {
55 | "indexed": true,
56 | "internalType": "address",
57 | "name": "operator",
58 | "type": "address"
59 | },
60 | {
61 | "indexed": false,
62 | "internalType": "bool",
63 | "name": "approved",
64 | "type": "bool"
65 | }
66 | ],
67 | "name": "ApprovalForAll",
68 | "type": "event"
69 | },
70 | {
71 | "anonymous": false,
72 | "inputs": [
73 | {
74 | "indexed": true,
75 | "internalType": "address",
76 | "name": "account",
77 | "type": "address"
78 | }
79 | ],
80 | "name": "MinterAdded",
81 | "type": "event"
82 | },
83 | {
84 | "anonymous": false,
85 | "inputs": [
86 | {
87 | "indexed": true,
88 | "internalType": "address",
89 | "name": "account",
90 | "type": "address"
91 | }
92 | ],
93 | "name": "MinterRemoved",
94 | "type": "event"
95 | },
96 | {
97 | "anonymous": false,
98 | "inputs": [
99 | {
100 | "indexed": true,
101 | "internalType": "address",
102 | "name": "previousOwner",
103 | "type": "address"
104 | },
105 | {
106 | "indexed": true,
107 | "internalType": "address",
108 | "name": "newOwner",
109 | "type": "address"
110 | }
111 | ],
112 | "name": "OwnershipTransferred",
113 | "type": "event"
114 | },
115 | {
116 | "anonymous": false,
117 | "inputs": [
118 | {
119 | "indexed": false,
120 | "internalType": "address",
121 | "name": "account",
122 | "type": "address"
123 | }
124 | ],
125 | "name": "Paused",
126 | "type": "event"
127 | },
128 | {
129 | "anonymous": false,
130 | "inputs": [
131 | {
132 | "indexed": true,
133 | "internalType": "address",
134 | "name": "account",
135 | "type": "address"
136 | }
137 | ],
138 | "name": "PauserAdded",
139 | "type": "event"
140 | },
141 | {
142 | "anonymous": false,
143 | "inputs": [
144 | {
145 | "indexed": true,
146 | "internalType": "address",
147 | "name": "account",
148 | "type": "address"
149 | }
150 | ],
151 | "name": "PauserRemoved",
152 | "type": "event"
153 | },
154 | {
155 | "anonymous": false,
156 | "inputs": [
157 | {
158 | "indexed": true,
159 | "internalType": "address",
160 | "name": "from",
161 | "type": "address"
162 | },
163 | {
164 | "indexed": true,
165 | "internalType": "address",
166 | "name": "to",
167 | "type": "address"
168 | },
169 | {
170 | "indexed": true,
171 | "internalType": "uint256",
172 | "name": "tokenId",
173 | "type": "uint256"
174 | }
175 | ],
176 | "name": "Transfer",
177 | "type": "event"
178 | },
179 | {
180 | "anonymous": false,
181 | "inputs": [
182 | {
183 | "indexed": false,
184 | "internalType": "address",
185 | "name": "account",
186 | "type": "address"
187 | }
188 | ],
189 | "name": "Unpaused",
190 | "type": "event"
191 | },
192 | {
193 | "constant": false,
194 | "inputs": [
195 | {
196 | "internalType": "address",
197 | "name": "account",
198 | "type": "address"
199 | }
200 | ],
201 | "name": "addMinter",
202 | "outputs": [],
203 | "payable": false,
204 | "stateMutability": "nonpayable",
205 | "type": "function"
206 | },
207 | {
208 | "constant": false,
209 | "inputs": [
210 | {
211 | "internalType": "address",
212 | "name": "account",
213 | "type": "address"
214 | }
215 | ],
216 | "name": "addPauser",
217 | "outputs": [],
218 | "payable": false,
219 | "stateMutability": "nonpayable",
220 | "type": "function"
221 | },
222 | {
223 | "constant": false,
224 | "inputs": [
225 | {
226 | "internalType": "address",
227 | "name": "user",
228 | "type": "address"
229 | },
230 | {
231 | "internalType": "uint256",
232 | "name": "requestedCount",
233 | "type": "uint256"
234 | }
235 | ],
236 | "name": "airDropMint",
237 | "outputs": [],
238 | "payable": false,
239 | "stateMutability": "nonpayable",
240 | "type": "function"
241 | },
242 | {
243 | "constant": false,
244 | "inputs": [
245 | {
246 | "internalType": "address",
247 | "name": "to",
248 | "type": "address"
249 | },
250 | {
251 | "internalType": "uint256",
252 | "name": "tokenId",
253 | "type": "uint256"
254 | }
255 | ],
256 | "name": "approve",
257 | "outputs": [],
258 | "payable": false,
259 | "stateMutability": "nonpayable",
260 | "type": "function"
261 | },
262 | {
263 | "constant": true,
264 | "inputs": [
265 | {
266 | "internalType": "address",
267 | "name": "owner",
268 | "type": "address"
269 | }
270 | ],
271 | "name": "balanceOf",
272 | "outputs": [
273 | {
274 | "internalType": "uint256",
275 | "name": "",
276 | "type": "uint256"
277 | }
278 | ],
279 | "payable": false,
280 | "stateMutability": "view",
281 | "type": "function"
282 | },
283 | {
284 | "constant": false,
285 | "inputs": [
286 | {
287 | "internalType": "uint256",
288 | "name": "tokenId",
289 | "type": "uint256"
290 | }
291 | ],
292 | "name": "burn",
293 | "outputs": [],
294 | "payable": false,
295 | "stateMutability": "nonpayable",
296 | "type": "function"
297 | },
298 | {
299 | "constant": true,
300 | "inputs": [
301 | {
302 | "internalType": "uint256",
303 | "name": "tokenId",
304 | "type": "uint256"
305 | }
306 | ],
307 | "name": "getApproved",
308 | "outputs": [
309 | {
310 | "internalType": "address",
311 | "name": "",
312 | "type": "address"
313 | }
314 | ],
315 | "payable": false,
316 | "stateMutability": "view",
317 | "type": "function"
318 | },
319 | {
320 | "constant": true,
321 | "inputs": [
322 | {
323 | "internalType": "address",
324 | "name": "owner",
325 | "type": "address"
326 | },
327 | {
328 | "internalType": "address",
329 | "name": "operator",
330 | "type": "address"
331 | }
332 | ],
333 | "name": "isApprovedForAll",
334 | "outputs": [
335 | {
336 | "internalType": "bool",
337 | "name": "",
338 | "type": "bool"
339 | }
340 | ],
341 | "payable": false,
342 | "stateMutability": "view",
343 | "type": "function"
344 | },
345 | {
346 | "constant": true,
347 | "inputs": [
348 | {
349 | "internalType": "address",
350 | "name": "account",
351 | "type": "address"
352 | }
353 | ],
354 | "name": "isMinter",
355 | "outputs": [
356 | {
357 | "internalType": "bool",
358 | "name": "",
359 | "type": "bool"
360 | }
361 | ],
362 | "payable": false,
363 | "stateMutability": "view",
364 | "type": "function"
365 | },
366 | {
367 | "constant": true,
368 | "inputs": [],
369 | "name": "isOwner",
370 | "outputs": [
371 | {
372 | "internalType": "bool",
373 | "name": "",
374 | "type": "bool"
375 | }
376 | ],
377 | "payable": false,
378 | "stateMutability": "view",
379 | "type": "function"
380 | },
381 | {
382 | "constant": true,
383 | "inputs": [
384 | {
385 | "internalType": "address",
386 | "name": "account",
387 | "type": "address"
388 | }
389 | ],
390 | "name": "isPauser",
391 | "outputs": [
392 | {
393 | "internalType": "bool",
394 | "name": "",
395 | "type": "bool"
396 | }
397 | ],
398 | "payable": false,
399 | "stateMutability": "view",
400 | "type": "function"
401 | },
402 | {
403 | "constant": true,
404 | "inputs": [],
405 | "name": "merkleRoot",
406 | "outputs": [
407 | {
408 | "internalType": "bytes32",
409 | "name": "",
410 | "type": "bytes32"
411 | }
412 | ],
413 | "payable": false,
414 | "stateMutability": "view",
415 | "type": "function"
416 | },
417 | {
418 | "constant": false,
419 | "inputs": [
420 | {
421 | "internalType": "address",
422 | "name": "to",
423 | "type": "address"
424 | },
425 | {
426 | "internalType": "uint256",
427 | "name": "tokenId",
428 | "type": "uint256"
429 | }
430 | ],
431 | "name": "mint",
432 | "outputs": [
433 | {
434 | "internalType": "bool",
435 | "name": "",
436 | "type": "bool"
437 | }
438 | ],
439 | "payable": false,
440 | "stateMutability": "nonpayable",
441 | "type": "function"
442 | },
443 | {
444 | "constant": false,
445 | "inputs": [
446 | {
447 | "internalType": "address",
448 | "name": "to",
449 | "type": "address"
450 | },
451 | {
452 | "internalType": "uint256",
453 | "name": "tokenId",
454 | "type": "uint256"
455 | },
456 | {
457 | "internalType": "string",
458 | "name": "tokenURI",
459 | "type": "string"
460 | }
461 | ],
462 | "name": "mintWithTokenURI",
463 | "outputs": [
464 | {
465 | "internalType": "bool",
466 | "name": "",
467 | "type": "bool"
468 | }
469 | ],
470 | "payable": false,
471 | "stateMutability": "nonpayable",
472 | "type": "function"
473 | },
474 | {
475 | "constant": true,
476 | "inputs": [],
477 | "name": "mintingInformation",
478 | "outputs": [
479 | {
480 | "internalType": "uint256[7]",
481 | "name": "",
482 | "type": "uint256[7]"
483 | }
484 | ],
485 | "payable": false,
486 | "stateMutability": "view",
487 | "type": "function"
488 | },
489 | {
490 | "constant": true,
491 | "inputs": [],
492 | "name": "name",
493 | "outputs": [
494 | {
495 | "internalType": "string",
496 | "name": "",
497 | "type": "string"
498 | }
499 | ],
500 | "payable": false,
501 | "stateMutability": "view",
502 | "type": "function"
503 | },
504 | {
505 | "constant": true,
506 | "inputs": [],
507 | "name": "owner",
508 | "outputs": [
509 | {
510 | "internalType": "address payable",
511 | "name": "",
512 | "type": "address"
513 | }
514 | ],
515 | "payable": false,
516 | "stateMutability": "view",
517 | "type": "function"
518 | },
519 | {
520 | "constant": true,
521 | "inputs": [
522 | {
523 | "internalType": "uint256",
524 | "name": "tokenId",
525 | "type": "uint256"
526 | }
527 | ],
528 | "name": "ownerOf",
529 | "outputs": [
530 | {
531 | "internalType": "address",
532 | "name": "",
533 | "type": "address"
534 | }
535 | ],
536 | "payable": false,
537 | "stateMutability": "view",
538 | "type": "function"
539 | },
540 | {
541 | "constant": false,
542 | "inputs": [],
543 | "name": "pause",
544 | "outputs": [],
545 | "payable": false,
546 | "stateMutability": "nonpayable",
547 | "type": "function"
548 | },
549 | {
550 | "constant": true,
551 | "inputs": [],
552 | "name": "paused",
553 | "outputs": [
554 | {
555 | "internalType": "bool",
556 | "name": "",
557 | "type": "bool"
558 | }
559 | ],
560 | "payable": false,
561 | "stateMutability": "view",
562 | "type": "function"
563 | },
564 | {
565 | "constant": false,
566 | "inputs": [
567 | {
568 | "internalType": "uint256",
569 | "name": "requestedCount",
570 | "type": "uint256"
571 | }
572 | ],
573 | "name": "publicMint",
574 | "outputs": [],
575 | "payable": true,
576 | "stateMutability": "payable",
577 | "type": "function"
578 | },
579 | {
580 | "constant": true,
581 | "inputs": [],
582 | "name": "publicMintEnabled",
583 | "outputs": [
584 | {
585 | "internalType": "bool",
586 | "name": "",
587 | "type": "bool"
588 | }
589 | ],
590 | "payable": false,
591 | "stateMutability": "view",
592 | "type": "function"
593 | },
594 | {
595 | "constant": false,
596 | "inputs": [],
597 | "name": "renounceMinter",
598 | "outputs": [],
599 | "payable": false,
600 | "stateMutability": "nonpayable",
601 | "type": "function"
602 | },
603 | {
604 | "constant": false,
605 | "inputs": [],
606 | "name": "renounceOwnership",
607 | "outputs": [],
608 | "payable": false,
609 | "stateMutability": "nonpayable",
610 | "type": "function"
611 | },
612 | {
613 | "constant": false,
614 | "inputs": [],
615 | "name": "renouncePauser",
616 | "outputs": [],
617 | "payable": false,
618 | "stateMutability": "nonpayable",
619 | "type": "function"
620 | },
621 | {
622 | "constant": false,
623 | "inputs": [
624 | {
625 | "internalType": "bool",
626 | "name": "_state",
627 | "type": "bool"
628 | }
629 | ],
630 | "name": "reveal",
631 | "outputs": [],
632 | "payable": false,
633 | "stateMutability": "nonpayable",
634 | "type": "function"
635 | },
636 | {
637 | "constant": true,
638 | "inputs": [],
639 | "name": "revealed",
640 | "outputs": [
641 | {
642 | "internalType": "bool",
643 | "name": "",
644 | "type": "bool"
645 | }
646 | ],
647 | "payable": false,
648 | "stateMutability": "view",
649 | "type": "function"
650 | },
651 | {
652 | "constant": false,
653 | "inputs": [
654 | {
655 | "internalType": "address",
656 | "name": "from",
657 | "type": "address"
658 | },
659 | {
660 | "internalType": "address",
661 | "name": "to",
662 | "type": "address"
663 | },
664 | {
665 | "internalType": "uint256",
666 | "name": "tokenId",
667 | "type": "uint256"
668 | }
669 | ],
670 | "name": "safeTransferFrom",
671 | "outputs": [],
672 | "payable": false,
673 | "stateMutability": "nonpayable",
674 | "type": "function"
675 | },
676 | {
677 | "constant": false,
678 | "inputs": [
679 | {
680 | "internalType": "address",
681 | "name": "from",
682 | "type": "address"
683 | },
684 | {
685 | "internalType": "address",
686 | "name": "to",
687 | "type": "address"
688 | },
689 | {
690 | "internalType": "uint256",
691 | "name": "tokenId",
692 | "type": "uint256"
693 | },
694 | {
695 | "internalType": "bytes",
696 | "name": "_data",
697 | "type": "bytes"
698 | }
699 | ],
700 | "name": "safeTransferFrom",
701 | "outputs": [],
702 | "payable": false,
703 | "stateMutability": "nonpayable",
704 | "type": "function"
705 | },
706 | {
707 | "constant": false,
708 | "inputs": [
709 | {
710 | "internalType": "address",
711 | "name": "to",
712 | "type": "address"
713 | },
714 | {
715 | "internalType": "bool",
716 | "name": "approved",
717 | "type": "bool"
718 | }
719 | ],
720 | "name": "setApprovalForAll",
721 | "outputs": [],
722 | "payable": false,
723 | "stateMutability": "nonpayable",
724 | "type": "function"
725 | },
726 | {
727 | "constant": false,
728 | "inputs": [
729 | {
730 | "internalType": "string",
731 | "name": "_newBaseURI",
732 | "type": "string"
733 | }
734 | ],
735 | "name": "setBaseURI",
736 | "outputs": [],
737 | "payable": false,
738 | "stateMutability": "nonpayable",
739 | "type": "function"
740 | },
741 | {
742 | "constant": false,
743 | "inputs": [
744 | {
745 | "internalType": "bytes32",
746 | "name": "_merkleRoot",
747 | "type": "bytes32"
748 | }
749 | ],
750 | "name": "setMerkleRoot",
751 | "outputs": [],
752 | "payable": false,
753 | "stateMutability": "nonpayable",
754 | "type": "function"
755 | },
756 | {
757 | "constant": false,
758 | "inputs": [
759 | {
760 | "internalType": "string",
761 | "name": "_newNotRevealedURI",
762 | "type": "string"
763 | }
764 | ],
765 | "name": "setNotRevealedURI",
766 | "outputs": [],
767 | "payable": false,
768 | "stateMutability": "nonpayable",
769 | "type": "function"
770 | },
771 | {
772 | "constant": false,
773 | "inputs": [
774 | {
775 | "internalType": "bool",
776 | "name": "_state",
777 | "type": "bool"
778 | }
779 | ],
780 | "name": "setPublicMintEnabled",
781 | "outputs": [],
782 | "payable": false,
783 | "stateMutability": "nonpayable",
784 | "type": "function"
785 | },
786 | {
787 | "constant": false,
788 | "inputs": [
789 | {
790 | "internalType": "bool",
791 | "name": "_state",
792 | "type": "bool"
793 | }
794 | ],
795 | "name": "setWhitelistMintEnabled",
796 | "outputs": [],
797 | "payable": false,
798 | "stateMutability": "nonpayable",
799 | "type": "function"
800 | },
801 | {
802 | "constant": false,
803 | "inputs": [
804 | {
805 | "internalType": "uint256",
806 | "name": "newAntibotInterval",
807 | "type": "uint256"
808 | },
809 | {
810 | "internalType": "uint256",
811 | "name": "newMintLimitPerBlock",
812 | "type": "uint256"
813 | },
814 | {
815 | "internalType": "uint256",
816 | "name": "newMintLimitPerSale",
817 | "type": "uint256"
818 | },
819 | {
820 | "internalType": "uint256",
821 | "name": "newMintStartBlockNumber",
822 | "type": "uint256"
823 | },
824 | {
825 | "internalType": "uint256",
826 | "name": "newMintIndexForSale",
827 | "type": "uint256"
828 | },
829 | {
830 | "internalType": "uint256",
831 | "name": "newMaxSaleAmount",
832 | "type": "uint256"
833 | },
834 | {
835 | "internalType": "uint256",
836 | "name": "newMintPrice",
837 | "type": "uint256"
838 | }
839 | ],
840 | "name": "setupSale",
841 | "outputs": [],
842 | "payable": false,
843 | "stateMutability": "nonpayable",
844 | "type": "function"
845 | },
846 | {
847 | "constant": true,
848 | "inputs": [
849 | {
850 | "internalType": "bytes4",
851 | "name": "interfaceId",
852 | "type": "bytes4"
853 | }
854 | ],
855 | "name": "supportsInterface",
856 | "outputs": [
857 | {
858 | "internalType": "bool",
859 | "name": "",
860 | "type": "bool"
861 | }
862 | ],
863 | "payable": false,
864 | "stateMutability": "view",
865 | "type": "function"
866 | },
867 | {
868 | "constant": true,
869 | "inputs": [],
870 | "name": "symbol",
871 | "outputs": [
872 | {
873 | "internalType": "string",
874 | "name": "",
875 | "type": "string"
876 | }
877 | ],
878 | "payable": false,
879 | "stateMutability": "view",
880 | "type": "function"
881 | },
882 | {
883 | "constant": true,
884 | "inputs": [
885 | {
886 | "internalType": "uint256",
887 | "name": "index",
888 | "type": "uint256"
889 | }
890 | ],
891 | "name": "tokenByIndex",
892 | "outputs": [
893 | {
894 | "internalType": "uint256",
895 | "name": "",
896 | "type": "uint256"
897 | }
898 | ],
899 | "payable": false,
900 | "stateMutability": "view",
901 | "type": "function"
902 | },
903 | {
904 | "constant": true,
905 | "inputs": [
906 | {
907 | "internalType": "address",
908 | "name": "owner",
909 | "type": "address"
910 | },
911 | {
912 | "internalType": "uint256",
913 | "name": "index",
914 | "type": "uint256"
915 | }
916 | ],
917 | "name": "tokenOfOwnerByIndex",
918 | "outputs": [
919 | {
920 | "internalType": "uint256",
921 | "name": "",
922 | "type": "uint256"
923 | }
924 | ],
925 | "payable": false,
926 | "stateMutability": "view",
927 | "type": "function"
928 | },
929 | {
930 | "constant": true,
931 | "inputs": [
932 | {
933 | "internalType": "uint256",
934 | "name": "tokenId",
935 | "type": "uint256"
936 | }
937 | ],
938 | "name": "tokenURI",
939 | "outputs": [
940 | {
941 | "internalType": "string",
942 | "name": "",
943 | "type": "string"
944 | }
945 | ],
946 | "payable": false,
947 | "stateMutability": "view",
948 | "type": "function"
949 | },
950 | {
951 | "constant": true,
952 | "inputs": [],
953 | "name": "totalSupply",
954 | "outputs": [
955 | {
956 | "internalType": "uint256",
957 | "name": "",
958 | "type": "uint256"
959 | }
960 | ],
961 | "payable": false,
962 | "stateMutability": "view",
963 | "type": "function"
964 | },
965 | {
966 | "constant": false,
967 | "inputs": [
968 | {
969 | "internalType": "address",
970 | "name": "from",
971 | "type": "address"
972 | },
973 | {
974 | "internalType": "address",
975 | "name": "to",
976 | "type": "address"
977 | },
978 | {
979 | "internalType": "uint256",
980 | "name": "tokenId",
981 | "type": "uint256"
982 | }
983 | ],
984 | "name": "transferFrom",
985 | "outputs": [],
986 | "payable": false,
987 | "stateMutability": "nonpayable",
988 | "type": "function"
989 | },
990 | {
991 | "constant": false,
992 | "inputs": [
993 | {
994 | "internalType": "address payable",
995 | "name": "newOwner",
996 | "type": "address"
997 | }
998 | ],
999 | "name": "transferOwnership",
1000 | "outputs": [],
1001 | "payable": false,
1002 | "stateMutability": "nonpayable",
1003 | "type": "function"
1004 | },
1005 | {
1006 | "constant": false,
1007 | "inputs": [],
1008 | "name": "unpause",
1009 | "outputs": [],
1010 | "payable": false,
1011 | "stateMutability": "nonpayable",
1012 | "type": "function"
1013 | },
1014 | {
1015 | "constant": true,
1016 | "inputs": [
1017 | {
1018 | "internalType": "address",
1019 | "name": "",
1020 | "type": "address"
1021 | }
1022 | ],
1023 | "name": "whitelistClaimed",
1024 | "outputs": [
1025 | {
1026 | "internalType": "bool",
1027 | "name": "",
1028 | "type": "bool"
1029 | }
1030 | ],
1031 | "payable": false,
1032 | "stateMutability": "view",
1033 | "type": "function"
1034 | },
1035 | {
1036 | "constant": false,
1037 | "inputs": [
1038 | {
1039 | "internalType": "uint256",
1040 | "name": "requestedCount",
1041 | "type": "uint256"
1042 | },
1043 | {
1044 | "internalType": "bytes32[]",
1045 | "name": "_merkleProof",
1046 | "type": "bytes32[]"
1047 | }
1048 | ],
1049 | "name": "whitelistMint",
1050 | "outputs": [],
1051 | "payable": true,
1052 | "stateMutability": "payable",
1053 | "type": "function"
1054 | },
1055 | {
1056 | "constant": true,
1057 | "inputs": [],
1058 | "name": "whitelistMintEnabled",
1059 | "outputs": [
1060 | {
1061 | "internalType": "bool",
1062 | "name": "",
1063 | "type": "bool"
1064 | }
1065 | ],
1066 | "payable": false,
1067 | "stateMutability": "view",
1068 | "type": "function"
1069 | },
1070 | {
1071 | "constant": false,
1072 | "inputs": [],
1073 | "name": "withdraw",
1074 | "outputs": [],
1075 | "payable": false,
1076 | "stateMutability": "nonpayable",
1077 | "type": "function"
1078 | }
1079 | ]
--------------------------------------------------------------------------------