Go

Project Structure

  • pkg - shared common packages across coinstacks

  • internal - internal utility packages

  • coinstacks/{coin} - coin specific logic

Dependencies

Notes

  • It is suggested configuring your editor of choice to utilize the following tooling:

    • gopls language server

    • golangci-lint to match the linter used in CI

    • goimports to match the formatting run on git pre-commit hook (default behavior when using gopls)

  • Visual Studio Code expects any golang projects to be opened up with a go.mod file at the root directory for the tooling to work properly, so be sure to open up the project at unchained/go

Initial Setup

  • Install Golang

    make sure GOPATH is set in your shell environment, since it's needed for docker-compose setup to work properly

  • Make coinstacks

    cd go && make
  • Copy sample env file:

    cp go/cmd/ethereum/sample.env go/cmd/ethereum/.env
  • Go to unchained/ and install dependencies by running yarn (which will also prepare the git pre-commit hook with goimports)

    yarn

Last updated