Block Chain Development

Solidity 유용한 함수 정리

PON_Z 2022. 5. 26. 15:33
    // uint를 string으로 바꿔주는 함수
    function uint2str(uint256 _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return '0';
        }

        uint256 j = _i;
        uint256 len;

        while (j != 0) {
            len++;
            j /= 10;
        }

        bytes memory bstr = new bytes(len);
        uint256 k = len;

        while (_i != 0) {
            k = k - 1;
            uint8 temp = (48 + uint8(_i - (_i / 10) * 10));
            bytes1 b1 = bytes1(temp);
            bstr[k] = b1;
            _i /= 10;
        }

        return string(bstr);
    }
 

    // bytesToUint256
    function bytesToUint256(bytes memory b) public pure returns (uint256){
        uint256 number = 0;    
        for(uint i=0; i<3; i++){
            number = number + uint8(b[i]) - 48;
            if(i < 2) {
                number = number * 10;
            }
        }      
        return number;
    }

 

 

        // strcmp
        if(keccak256(bytes(newType)) == keccak256(bytes("green"))) {
            newGene = "000";
        }
 
 
        // string concat
        string memory temp;
        temp = string(bytes.concat(bytes(uint2str(newHealth)), bytes(uint2str(newAttack))));
 
728x90