나 같은 경우엔 Docker Desktop을 사용해서 WSL2랑 연결하여 사용하고 있다. 그런데 아주 가끔가다가 아래와 같은 에러를 마주칠 수 있었다.Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?대충 WSL과 연결이 안됐다는 건데 구글링 해본 결과sudo systemctl stop docker를 하고 restart하면 된다는 것이었다. 하지만 내 환경의 wsl에선 docker.service 자체가 없었고 혹시 몰라 docker.service를 설치하고 한 결과 docker desktop과 분리 된 wsl내에서만 사용 가능한 도커환경이 되었다. 이렇게 하면 근본적인 문제가 해결이..
분류 전체보기
// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Force { /* MEOW ? /\_/\ / ____/ o o \ /~____ =ø= / (______)__m_m) */ }컨트랙트 하나가 내용도 없이 선언되어 있다.문제는 이 컨트랙트에 잔고를 0보다 크게 만들라는 것이다.해당 컨트랙트에는 fallback함수도 없고 이더를 받는 함수도 없으므로 표면적으로는 불가능해 보인다. 하지만 Solidity에는 selfdestruct라는 얘가 있다.selfdestruct란 아래 공식문서에 나와있듯이 자신의 contract를 파괴하면서 잔고를 target..
// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Delegate { address public owner; constructor(address _owner) { owner = _owner; } function pwn() public { owner = msg.sender; }}contract Delegation { address public owner; Delegate delegate; constructor(address _delegateAddress) { delegate = Delegate(_delegateAddress); owner = msg.se..
// SPDX-License-Identifier: MITpragma solidity ^0.6.0;contract Token { mapping(address => uint256) balances; uint256 public totalSupply; constructor(uint256 _initialSupply) public { balances[msg.sender] = totalSupply = _initialSupply; } function transfer(address _to, uint256 _value) public returns (bool) { require(balances[msg.sender] - _value >= 0); balances[..
코드 자체는 심플하다.// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Telephone { address public owner; constructor() { owner = msg.sender; } function changeOwner(address _owner) public { if (tx.origin != msg.sender) { owner = _owner; } }}tx.origin 과 msg.sender의 값이 다르면 된다.msg.sender는 그렇다 치고 tx.origin이 뭔지 몰라서 찾아본 결과처음 트랜잭션을 최초로 생성한 계정이 반환된다고 한다...