typechain을 쓰는 이유는 타입스크립트의 장점을 활용하여
test할때 컴파일 시점에서 에러 로그들을 확인 할 수 있다.
eth tx flow
https://medium.com/@roberto.g.infante/transaction-life-cycle-on-the-ethereum-blockchain-b0d92fa73fb1
https://medium.com/blockchannel/life-cycle-of-an-ethereum-transaction-e5c66bae0f6e
https://ethereum.org/en/developers/docs/transactions/