├── 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 | ] --------------------------------------------------------------------------------