[hardhat] network forking

    hardhat: {
      chainId: 31337,
      forking: {
        url: 'http://jsonrpc.dasomoli.org:8545',
        blockNumber: 74924548,
        enabled: true,
      },
      gasPrice: 800000000000,
      hardfork: 'grayGlacier',
      chains: {
        31337: {
          hardforkHistory: {
            petersburg: 0,
            grayGlacier: 25980000,
          },
        },
      },
    },

[SpringBoot] Springboot CLI 설치

brew tap spring-io/tap
brew install spring-boot

springboot 로 bcrypt 패스워드 인코딩을 하려면, 다음과 같이 하면 된다.

spring encodepassword super1234!!

https://docs.spring.io/spring-boot/docs/current/reference/html/cli.html 를 참고.

Semantic Versioning 시의 ^, ~, = 의 의미

npm 혹은 Solidity 등은 Semantic Versioning을 사용해서 버전을 정합니다. Semantic Version은 MAJOR.MINOR.PATCH 형식의 버전 명을 말합니다. https://semver.org/ 를 참고해 봅시다.

MAJOR의 경우, 이전과 호환되지 않는 변경이 있는 경우 올립니다.
MINOR의 경우, 이전과 호환되지만 기능 추가 등 주요 변경이 있는 경우 올립니다.
PATCH의 경우, 이전과 호환되고, 버그 수정, 내부 리팩토링 등의 변경이 있는 경우 올립니다.

현재 프로젝트에서 사용하는 버전을 지정할 때 ^, ~, – 등의 기호로 지정하는데 다음과 같은 뜻을 갖습니다.

^ (캐럿): 마이너 버전이나 패치 버전으로 호환되는 업데이트를 할 수 있습니다. 예를 들어, “^1.2.3″을 지정한 경우, 1로 시작하고 2.3보다 크거나 같은 마이너 또는 패치 버전을 말합니다. 따라서 1.2.3, 1.2.4, 1.3.0 등은 해당되지만 2.0.0은 해당되지 않습니다.

~ (틸더): 패치 버전만 호환되는 업데이트를 할 수 있습니다. 예를 들어, “~1.2.3″을 지정한 경우, 1.2로 시작하는 패치 버전이 3보다 크거나 같은 모든 버전을 말합니다. 따라서 1.2.3, 1.2.4는 해당되지만 1.3.0은 해당되지 않습니다.

= (이퀄): 지정한 정확한 버전만 말합니다. 예를 들어 “1.2.3”을 지정한 경우, 정확히 1.2.3만 해당됩니다.

[hardhat] npx hardhat을 hh로 줄여 쓰기

npx hardhat을 매번 치기 귀찮다. 그리고 커맨드라인 자동완성 기능도 있다. hardhat-shorthand 패키지를 설치하면 된다.

$ npm install --global hardhat-shorthand

공식 도움말은 여기를 참고하자: https://hardhat.org/hardhat-runner/docs/guides/command-line-completion

[go] gvm으로 여러 버전 중 골라 쓰기

https://github.com/moovweb/gvm 로 go 버전 중 원하는 버전을 설치하고 사용할 수 있다. gvm을 사용하기 위해서는 설치하고자하는 go 버전의 compile을 위해 go 가 먼저 설치되어 있어야 한다.

$ brew install go
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
$ source ~/.gvm/scripts/gvm

설치 후에는 gvm install go<버전> 형식으로 설치한 후 gvm use go<버전> 으로 사용한다.

$ gvm install go1.21.5
$ gvm use go1.21.5

버전 확인을 위해 go version으로 확인해본다.

$ go version
go version go1.21.5 darwin/amd64
$ which go
/Users/dasomoli/.gvm/gos/go1.21.5/bin/go