Transfer 함수를 적용한 스마트 컨트랙 배포 시 오류

안녕하세요. 스마트 컨트랙을 배포하는 중에 transfer 함수를 사용하면 오류가 발생해 질문을 올립니다.
배포된 컨트랙에 코인을 보내고, 오우너 계정으로 다시 가져오는 것을 진행하고 싶습니다.

배포 시에 아래 솔리디티 소스와 같이 address를 payable 타입으로 하였습니다.
마지막 doSend 함수 유무에 따라 배포 성공과 실패가 결정되는 것으로 보아 수정을 해보려고 여러가지 찾아보다 이곳에 질문을 올리게 되었습니다.

contract YeobzTest is KIP17Full, KIP17Mintable, KIP17MetadataMintable, KIP17Burnable, KIP17Pausable 
{
    // 주소 타입의 소유자(owner) 변수 정의 
    address payable owner;
    
    constructor (string memory name, string memory symbol) public KIP17Full(name, symbol) 
    {
        owner = msg.sender;
        // 이 함수는 초기화 시점에 실행되어 컨트랙트 소유자를 설정합니다
    }
    
    function getBalance() public view returns (uint){ 
        return address(this).balance; 
    }
    
    function deposit() public payable{ 
     // require(msg.sender == owner); 
    }

    function mintWithTokenURIx(address to, uint256 tokenId, string memory tokenURI) public payable {
        _mint(to, tokenId);
        _setTokenURI(tokenId, tokenURI);
    }

    function doSend(uint256 _value) public {
        owner.transfer(_value);
    }

// function transfer(uint _value) public returns (bool){
    //     require(msg.sender == owner); 
    //     msg.sender.transfer(_value); 
    //     return true;//성공 여부 리턴
    // }
}


오류 메세지는 위와 같습니다.

해결 방안이 있을까요?

가스 모자라다는 소리 아닐까요?

내용상으로는요

가스비 설정 건들지 않고, 마지막 펑션 주석만 하면 배포가 잘 됩니다.

1개의 좋아요