# go-defi **Repository Path**: AlbertChan2020/go-defi ## Basic Information - **Project Name**: go-defi - **Description**: About a Golang sdk for working with DeFi protocols, and ethereum compatible blockchains. - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-04-28 - **Last Updated**: 2023-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

A golang sdk for working with DeFi protocols and general utilities for working with ethereum-compatible blockchains. # packages * bclient * bindings * cli * config * database * sushiswap * uniswap * testenv * utils ## bclient Provides a wrapper around the `ethclient` package ## bindings Provides code generated by abigen for working with smart contracts: * `bindings/erc20` provides generated code for working with ERC20 contracts * `bindings/oneinch/v2` provides generated code for working with OneInch V2 router contracts * `bindings/oneinch/v3` provides generated code for working with OneInch V3 router contracts * `unicrypt/presalefactory` provides generated code for working with UniCrypt presale factories * `uniswap/*` provides generated code for working with Uniswap V2 contracts (note these can also be used for working with the corresponding sushiswap contracts) ## cli cli package ## config configuration management package ## database database management packlage ## sushiswap Wrapper around go-ethereum's `ethclient` package for using sushiswap v2. ## uniswap Wrapper around go-ethereum's `ethclient` package for using uniswap v2. ## testenv Provides a wrapper around the SimulatedBackend allowing for an in-memory blockchain. It is particularly useful for local smart contract development, or developing backend dApps. ## utils Provides utility functions including all [goethereum book utils](https://goethereumbook.org/en/util-go/), a helper to make `bind.TransactOpts` safe for concurrent use, as well as a general `Blockchain` interface that satisfies all functions provided by simulated backend, as well as `ethclient` which is useful for drop-in replacement of actual RPC clients, and test environments. # examples ## transaction matching ```shell $> /go-defi txm --methods transfer --methods transferFrom --methods buy --contract.address 0x5ade7aE8660293F2ebfcEfaba91d141d72d221e8 ```