ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 지갑 주소로 화이트리스 구현
    프로그래밍/강좌 2022. 6. 26. 16:13
    728x90
    반응형

    영상링크: https://www.youtube.com/watch?v=cWM3704pUns

    mapping 을 사용했습니다.

    단순한 형태로 작성한거구요

    솔리디티 코드:

    // SPDX-License-Identifier: GPL-3.0
    // 0x281725fc1AD9AEDeFb8ADb1f4572E97CA918ED00
    
    pragma solidity >=0.7.0 <0.9.0;
    
    contract Storage {
    
        mapping(address => uint) private map_addr;
        bool use_whitelist = true;
        uint count = 0;
        
        constructor() {
            address a = 0x1e0A33d97f7793035704F5B0d896c631fb47BbE4;
            add_whitelist(a);
        }
    
        function is_whitelist(address addr) public view returns(uint) {
            return map_addr[addr];
        }
    
        function is_whitelist_2() public view returns(uint) {
            return map_addr[msg.sender];
        }
    
        function add_whitelist(address a) public {
            require(map_addr[a] == 0);
    
            map_addr[a] = 1;
        }
        
        function del_whitelist(address a) public {
            require(map_addr[a] != 0);
    
            // map_data[a] = 0;
            delete map_addr[a];
        }
    
        function set_use_whitelist(bool b) public {
            use_whitelist = b;
        }
        
        function mint_a() public {
            if(use_whitelist) {
                require(is_whitelist_2() != 0);
            }
    
            count++;
            // _mint(no, link);
        }
    }
    반응형
Designed by Tistory.