diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a8b47108..7cec9191 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,22 +13,32 @@ jobs: goarch: amd64 psql: true skip_wrapper_tests: false + sonic: true - os: ubuntu-latest goarch: 386 psql: true skip_wrapper_tests: true + sonic: true # sonic is disabled for 386 this ensures fall back to legacy code - os: macos-latest goarch: amd64 psql: true skip_wrapper_tests: true + sonic: true - os: macos-13 # beta goarch: amd64 psql: true skip_wrapper_tests: true + sonic: true - os: windows-latest goarch: amd64 psql: true skip_wrapper_tests: true + sonic: true + - os: ubuntu-latest + goarch: amd64 + psql: true + skip_wrapper_tests: false + sonic: false runs-on: ${{ matrix.os }} @@ -84,6 +94,13 @@ jobs: echo "CGO_ENABLED=1" >> $GITHUB_ENV shell: bash + - name: Set GOFLAGS + run: | + if [ "${{ matrix.sonic }}" = "false" ]; then + echo "GOFLAGS=${GOFLAGS} -tags=sonic_off" >> $GITHUB_ENV + fi + shell: bash + - name: Test run: | # PGSERVICEFILE isn't supported by lib/pq and will cause a panic if set unset PGSERVICEFILE @@ -169,4 +186,4 @@ jobs: cd web/ npm install npm run lint - npm run build + npm run build \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml index c577a1f7..dff58d4c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -25,7 +25,7 @@ linters: - copyloopvar # - cyclop - decorder -# - depguard + - depguard - dogsled # - dupl - dupword @@ -117,6 +117,17 @@ linters: # - zerologlint linters-settings: + depguard: + rules: + prevent_json_package_use: + list-mode: lax # allow unless explicitely denied + files: + - $all + allow: + - github.com/thrasher-corp/gocryptotrader/encoding/json + deny: + - pkg: encoding/json + desc: "Please use the custom JSON package github.com/thrasher-corp/gocryptotrader/encoding/json instead of encoding/json to allow sonic/json switching." govet: enable: - shadow @@ -141,7 +152,6 @@ linters-settings: - float-compare # We deliberately use Equal over Len to avoid spamming the contents of large Slices - len - issues: max-issues-per-linter: 0 max-same-issues: 0 diff --git a/Makefile b/Makefile index 7b87e802..35f2e3ef 100644 --- a/Makefile +++ b/Makefile @@ -78,3 +78,7 @@ endef check-jq: @printf "Checking if jq is installed... " @command -v jq >/dev/null 2>&1 && { printf "OK\n"; } || { printf "FAILED. Please install jq to proceed.\n"; exit 1; } + +.PHONY: no_sonic +no_sonic: + go build $(LDFLAGS) -tags "sonic_off" \ No newline at end of file diff --git a/README.md b/README.md index 827eafc4..0a6a68df 100644 --- a/README.md +++ b/README.md @@ -100,15 +100,11 @@ When submitting a PR, please abide by our coding guidelines: + Code must adhere to our [coding style](https://github.com/thrasher-corp/gocryptotrader/blob/master/.github/CONTRIBUTING.md). + Pull requests need to be based on and opened against the `master` branch. -## Compiling instructions +## Compiling and Running instructions -Download and install Go from [Go Downloads](https://golang.org/dl/) for your -platform. +Download and install Go from [Go Downloads](https://golang.org/dl/) for your platform. -### Linux/OSX - -GoCryptoTrader is built using [Go Modules](https://github.com/golang/go/wiki/Modules) and requires Go 1.11 or above -Using Go Modules you now clone this repository **outside** your GOPATH +### Linux/macOS ```bash git clone https://github.com/thrasher-corp/gocryptotrader.git @@ -124,11 +120,18 @@ cp config_example.json ~/.gocryptotrader/config.json git clone https://github.com/thrasher-corp/gocryptotrader.git cd gocryptotrader go build +mkdir %AppData%\GoCryptoTrader copy config_example.json %APPDATA%\GoCryptoTrader\config.json ``` +By default, GoCryptoTrader uses the [Sonic JSON](https://github.com/bytedance/sonic) library for improved performance unless compiling for a 32-bit architecture (GOARCH=386). To disable Sonic and revert to Go's encoding/json, build with the sonic_off tag: + +```bash +go build -tags=sonic_off +``` + + Make any necessary changes to the `config.json` file. -+ Run the `gocryptotrader` binary file inside your GOPATH bin folder. ++ Run the `gocryptotrader` binary file. ## Donations @@ -149,10 +152,10 @@ Binaries will be published once the codebase reaches a stable condition. |User|Contribution Amount| |--|--| | [thrasher-](https://github.com/thrasher-) | 704 | -| [shazbert](https://github.com/shazbert) | 358 | +| [shazbert](https://github.com/shazbert) | 359 | | [dependabot[bot]](https://github.com/apps/dependabot) | 351 | | [gloriousCode](https://github.com/gloriousCode) | 236 | -| [gbjk](https://github.com/gbjk) | 113 | +| [gbjk](https://github.com/gbjk) | 115 | | [dependabot-preview[bot]](https://github.com/apps/dependabot-preview) | 88 | | [xtda](https://github.com/xtda) | 47 | | [lrascao](https://github.com/lrascao) | 27 | diff --git a/backtester/btcli/main.go b/backtester/btcli/main.go index e3c1049b..f4145e6e 100644 --- a/backtester/btcli/main.go +++ b/backtester/btcli/main.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "fmt" "log" "os" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/core" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/gctrpc/auth" "github.com/thrasher-corp/gocryptotrader/signaler" "github.com/urfave/cli/v2" diff --git a/backtester/config/backtesterconfig.go b/backtester/config/backtesterconfig.go index 9b13bd1b..f38a2d17 100644 --- a/backtester/config/backtesterconfig.go +++ b/backtester/config/backtesterconfig.go @@ -1,7 +1,6 @@ package config import ( - "encoding/json" "fmt" "os" "path/filepath" @@ -9,6 +8,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/backtester/common" "github.com/thrasher-corp/gocryptotrader/common/file" gctconfig "github.com/thrasher-corp/gocryptotrader/config" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // ReadBacktesterConfigFromPath will take a config from a path diff --git a/backtester/config/batcktesterconfig_test.go b/backtester/config/batcktesterconfig_test.go index a3834a0f..d88872d6 100644 --- a/backtester/config/batcktesterconfig_test.go +++ b/backtester/config/batcktesterconfig_test.go @@ -1,13 +1,13 @@ package config import ( - "encoding/json" "errors" "path/filepath" "testing" "github.com/thrasher-corp/gocryptotrader/backtester/common" "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestLoadBacktesterConfig(t *testing.T) { diff --git a/backtester/config/strategyconfig.go b/backtester/config/strategyconfig.go index 2bb195aa..13ad77fd 100644 --- a/backtester/config/strategyconfig.go +++ b/backtester/config/strategyconfig.go @@ -1,7 +1,6 @@ package config import ( - "encoding/json" "fmt" "os" "strings" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/backtester/eventhandlers/strategies/base" gctcommon "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/backtester/config/strategyconfig_test.go b/backtester/config/strategyconfig_test.go index 15353dc7..9fbf7717 100644 --- a/backtester/config/strategyconfig_test.go +++ b/backtester/config/strategyconfig_test.go @@ -1,7 +1,6 @@ package config import ( - "encoding/json" "errors" "os" "path/filepath" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/currency" "github.com/thrasher-corp/gocryptotrader/database" "github.com/thrasher-corp/gocryptotrader/database/drivers" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/backtester/config/strategyconfigbuilder/main.go b/backtester/config/strategyconfigbuilder/main.go index 15d82ba5..a7ff152c 100644 --- a/backtester/config/strategyconfigbuilder/main.go +++ b/backtester/config/strategyconfigbuilder/main.go @@ -2,7 +2,6 @@ package main import ( "bufio" - "encoding/json" "errors" "fmt" "log" @@ -23,6 +22,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/database" dbPSQL "github.com/thrasher-corp/gocryptotrader/database/drivers/postgres" dbsqlite3 "github.com/thrasher-corp/gocryptotrader/database/drivers/sqlite3" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" gctkline "github.com/thrasher-corp/gocryptotrader/exchanges/kline" ) diff --git a/backtester/eventhandlers/statistics/statistics.go b/backtester/eventhandlers/statistics/statistics.go index 9319bdb0..f47d5434 100644 --- a/backtester/eventhandlers/statistics/statistics.go +++ b/backtester/eventhandlers/statistics/statistics.go @@ -1,7 +1,6 @@ package statistics import ( - "encoding/json" "fmt" "time" @@ -17,6 +16,7 @@ import ( gctcommon "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/backtester/main.go b/backtester/main.go index 1cca7abe..eca2fa81 100644 --- a/backtester/main.go +++ b/backtester/main.go @@ -1,7 +1,6 @@ package main import ( - "encoding/json" "flag" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/backtester/plugins/strategies" "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/engine" "github.com/thrasher-corp/gocryptotrader/log" "github.com/thrasher-corp/gocryptotrader/signaler" diff --git a/cmd/apichecker/apicheck.go b/cmd/apichecker/apicheck.go index e4bd4ae2..2f90557f 100644 --- a/cmd/apichecker/apicheck.go +++ b/cmd/apichecker/apicheck.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "errors" "flag" "fmt" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" gctfile "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/request" "github.com/thrasher-corp/gocryptotrader/log" diff --git a/cmd/apichecker/apicheck_test.go b/cmd/apichecker/apicheck_test.go index 9502a02e..d7442c17 100644 --- a/cmd/apichecker/apicheck_test.go +++ b/cmd/apichecker/apicheck_test.go @@ -1,12 +1,12 @@ package main import ( - "encoding/json" "os" "reflect" "testing" gctfile "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/cmd/config_builder/builder.go b/cmd/config_builder/builder.go index 31792b0d..ecf038e9 100644 --- a/cmd/config_builder/builder.go +++ b/cmd/config_builder/builder.go @@ -2,11 +2,11 @@ package main import ( "context" - "encoding/json" "log" "sync" "github.com/thrasher-corp/gocryptotrader/config" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/engine" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" ) diff --git a/cmd/documentation/documentation.go b/cmd/documentation/documentation.go index 2c3c283d..d0af6e10 100644 --- a/cmd/documentation/documentation.go +++ b/cmd/documentation/documentation.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "errors" "flag" "fmt" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/file" "github.com/thrasher-corp/gocryptotrader/core" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "golang.org/x/text/cases" "golang.org/x/text/language" ) diff --git a/cmd/documentation/root_templates/root_readme.tmpl b/cmd/documentation/root_templates/root_readme.tmpl index 276fb7aa..11b17a6b 100644 --- a/cmd/documentation/root_templates/root_readme.tmpl +++ b/cmd/documentation/root_templates/root_readme.tmpl @@ -101,15 +101,11 @@ When submitting a PR, please abide by our coding guidelines: + Code must adhere to our [coding style](https://github.com/thrasher-corp/gocryptotrader/blob/master/.github/CONTRIBUTING.md). + Pull requests need to be based on and opened against the `master` branch. -## Compiling instructions +## Compiling and Running instructions -Download and install Go from [Go Downloads](https://golang.org/dl/) for your -platform. +Download and install Go from [Go Downloads](https://golang.org/dl/) for your platform. -### Linux/OSX - -GoCryptoTrader is built using [Go Modules](https://github.com/golang/go/wiki/Modules) and requires Go 1.11 or above -Using Go Modules you now clone this repository **outside** your GOPATH +### Linux/macOS ```bash git clone https://github.com/thrasher-corp/gocryptotrader.git @@ -125,11 +121,18 @@ cp config_example.json ~/.gocryptotrader/config.json git clone https://github.com/thrasher-corp/gocryptotrader.git cd gocryptotrader go build +mkdir %AppData%\GoCryptoTrader copy config_example.json %APPDATA%\GoCryptoTrader\config.json ``` +By default, GoCryptoTrader uses the [Sonic JSON](https://github.com/bytedance/sonic) library for improved performance unless compiling for a 32-bit architecture (GOARCH=386). To disable Sonic and revert to Go's encoding/json, build with the sonic_off tag: + +```bash +go build -tags=sonic_off +``` + + Make any necessary changes to the `config.json` file. -+ Run the `gocryptotrader` binary file inside your GOPATH bin folder. ++ Run the `gocryptotrader` binary file. {{template "donations" .}} diff --git a/cmd/exchange_wrapper_issues/main.go b/cmd/exchange_wrapper_issues/main.go index dd99db7b..6fb7983b 100644 --- a/cmd/exchange_wrapper_issues/main.go +++ b/cmd/exchange_wrapper_issues/main.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "errors" "flag" "fmt" @@ -19,6 +18,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/file" "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/engine" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" @@ -1028,7 +1028,7 @@ func testWrappers(e exchange.IBotExchange, base *exchange.Base, config *Config) } func jsonifyInterface(params []interface{}) json.RawMessage { - response, _ := json.MarshalIndent(params, "", " ") //nolint:errchkjson // TODO: ignore this for now + response, _ := json.MarshalIndent(params, "", " ") return response } diff --git a/cmd/exchange_wrapper_issues/types.go b/cmd/exchange_wrapper_issues/types.go index 156a1fa3..66a50050 100644 --- a/cmd/exchange_wrapper_issues/types.go +++ b/cmd/exchange_wrapper_issues/types.go @@ -1,10 +1,9 @@ package main import ( - "encoding/json" - "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" ) diff --git a/cmd/gctcli/main.go b/cmd/gctcli/main.go index 682e8750..7c170cea 100644 --- a/cmd/gctcli/main.go +++ b/cmd/gctcli/main.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "fmt" "log" "os" @@ -12,6 +11,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/core" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/gctrpc/auth" "github.com/thrasher-corp/gocryptotrader/signaler" diff --git a/cmd/gen_sqlboiler_config/main.go b/cmd/gen_sqlboiler_config/main.go index dbec3632..3a1b05c8 100644 --- a/cmd/gen_sqlboiler_config/main.go +++ b/cmd/gen_sqlboiler_config/main.go @@ -1,7 +1,6 @@ package main import ( - "encoding/json" "flag" "fmt" "os" @@ -12,6 +11,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/database" "github.com/thrasher-corp/gocryptotrader/database/repository" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) var ( diff --git a/cmd/websocket_client/main.go b/cmd/websocket_client/main.go index 769ff35b..24929bf0 100644 --- a/cmd/websocket_client/main.go +++ b/cmd/websocket_client/main.go @@ -1,7 +1,6 @@ package main import ( - "encoding/json" "errors" "fmt" "log" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/config" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" ) diff --git a/communications/slack/slack.go b/communications/slack/slack.go index 193f4c1a..1bd795f1 100644 --- a/communications/slack/slack.go +++ b/communications/slack/slack.go @@ -5,7 +5,6 @@ package slack import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/communications/base" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/communications/slack/slack_test.go b/communications/slack/slack_test.go index f7f307a5..6bc00da6 100644 --- a/communications/slack/slack_test.go +++ b/communications/slack/slack_test.go @@ -1,11 +1,11 @@ package slack import ( - "encoding/json" "testing" "github.com/thrasher-corp/gocryptotrader/communications/base" "github.com/thrasher-corp/gocryptotrader/config" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) type group struct { diff --git a/communications/telegram/telegram.go b/communications/telegram/telegram.go index bb826b94..1ddee6dd 100644 --- a/communications/telegram/telegram.go +++ b/communications/telegram/telegram.go @@ -6,7 +6,6 @@ package telegram import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/communications/base" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/config/config.go b/config/config.go index d9c600f7..89c3a1f9 100644 --- a/config/config.go +++ b/config/config.go @@ -4,7 +4,6 @@ import ( "bufio" "bytes" "context" - "encoding/json" "errors" "fmt" "io" @@ -25,6 +24,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/currency" "github.com/thrasher-corp/gocryptotrader/currency/forexprovider" "github.com/thrasher-corp/gocryptotrader/database" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" gctscript "github.com/thrasher-corp/gocryptotrader/gctscript/vm" "github.com/thrasher-corp/gocryptotrader/log" diff --git a/config/versions/v1.go b/config/versions/v1.go index 378d6c35..5d3dc165 100644 --- a/config/versions/v1.go +++ b/config/versions/v1.go @@ -2,11 +2,11 @@ package versions import ( "context" - "encoding/json" "github.com/buger/jsonparser" v0 "github.com/thrasher-corp/gocryptotrader/config/versions/v0" v1 "github.com/thrasher-corp/gocryptotrader/config/versions/v1" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Version1 is an ExchangeVersion to upgrade currency pair format for exchanges diff --git a/config/versions/v3.go b/config/versions/v3.go index b7773c9a..a8d52ce5 100644 --- a/config/versions/v3.go +++ b/config/versions/v3.go @@ -2,10 +2,10 @@ package versions import ( "context" - "encoding/json" "time" "github.com/buger/jsonparser" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Version3 is an ExchangeVersion to remove the publishPeriod from the exchange's orderbook config diff --git a/config/versions/versions.go b/config/versions/versions.go index 2335b8f1..cdaa6600 100644 --- a/config/versions/versions.go +++ b/config/versions/versions.go @@ -13,7 +13,7 @@ package versions import ( "bytes" "context" - "encoding/json" + "encoding/json" //nolint:depguard // Used instead of gct encoding/json so that we can ensure consistent library functionality between versions "errors" "fmt" "log" diff --git a/currency/code.go b/currency/code.go index f2717f37..f7b6489a 100644 --- a/currency/code.go +++ b/currency/code.go @@ -1,11 +1,12 @@ package currency import ( - "encoding/json" "errors" "fmt" "strings" "unicode" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) var ( diff --git a/currency/code_test.go b/currency/code_test.go index d1c9c257..714443cc 100644 --- a/currency/code_test.go +++ b/currency/code_test.go @@ -1,11 +1,11 @@ package currency import ( - "encoding/json" "errors" "testing" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestRoleString(t *testing.T) { diff --git a/currency/currencies.go b/currency/currencies.go index c5aa93ff..3a46053a 100644 --- a/currency/currencies.go +++ b/currency/currencies.go @@ -1,8 +1,9 @@ package currency import ( - "encoding/json" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // NewCurrenciesFromStringArray returns a Currencies object from strings diff --git a/currency/currencies_test.go b/currency/currencies_test.go index 97e0e9a0..81c25717 100644 --- a/currency/currencies_test.go +++ b/currency/currencies_test.go @@ -1,10 +1,10 @@ package currency import ( - "encoding/json" "testing" "github.com/stretchr/testify/assert" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestCurrenciesUnmarshalJSON(t *testing.T) { diff --git a/currency/manager.go b/currency/manager.go index 0c8f71d8..c7f1e234 100644 --- a/currency/manager.go +++ b/currency/manager.go @@ -1,7 +1,6 @@ package currency import ( - "encoding/json" "errors" "fmt" "slices" @@ -9,6 +8,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/convert" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" ) diff --git a/currency/manager_test.go b/currency/manager_test.go index 562b9062..6e7d5978 100644 --- a/currency/manager_test.go +++ b/currency/manager_test.go @@ -1,13 +1,13 @@ package currency import ( - "encoding/json" "errors" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/thrasher-corp/gocryptotrader/common/convert" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" ) diff --git a/currency/pair_methods.go b/currency/pair_methods.go index cc732b71..9c045515 100644 --- a/currency/pair_methods.go +++ b/currency/pair_methods.go @@ -1,10 +1,11 @@ package currency import ( - "encoding/json" "errors" "fmt" "unicode" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // EMPTYFORMAT defines an empty pair format diff --git a/currency/pair_test.go b/currency/pair_test.go index 5b19aee5..1ea45d47 100644 --- a/currency/pair_test.go +++ b/currency/pair_test.go @@ -1,13 +1,13 @@ package currency import ( - "encoding/json" "errors" "strconv" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) const ( diff --git a/currency/pairs.go b/currency/pairs.go index 99398cd1..9677c5e1 100644 --- a/currency/pairs.go +++ b/currency/pairs.go @@ -1,12 +1,13 @@ package currency import ( - "encoding/json" "errors" "fmt" "math/rand" "slices" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Public Errors diff --git a/currency/pairs_test.go b/currency/pairs_test.go index 4341bdbe..3a4ea8b7 100644 --- a/currency/pairs_test.go +++ b/currency/pairs_test.go @@ -1,13 +1,13 @@ package currency import ( - "encoding/json" "errors" "slices" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestPairsUpper(t *testing.T) { diff --git a/currency/storage.go b/currency/storage.go index 84788fa6..da3c1517 100644 --- a/currency/storage.go +++ b/currency/storage.go @@ -1,7 +1,6 @@ package currency import ( - "encoding/json" "errors" "fmt" "os" @@ -12,6 +11,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/currency/coinmarketcap" "github.com/thrasher-corp/gocryptotrader/currency/forexprovider" "github.com/thrasher-corp/gocryptotrader/currency/forexprovider/base" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/encoding/json/benchmark_test.go b/encoding/json/benchmark_test.go new file mode 100644 index 00000000..91898556 --- /dev/null +++ b/encoding/json/benchmark_test.go @@ -0,0 +1,12 @@ +package json + +import "testing" + +// BenchmarkUnmarshal-16 838503 1282 ns/op 816 B/op 24 allocs/op (encoding/json) +// BenchmarkUnmarshal-16 1859184 653.3 ns/op 900 B/op 18 allocs/op (bytedance/sonic) Usage: go test --tags=sonic -bench=BenchmarkUnmarshal -v +func BenchmarkUnmarshal(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + _ = Unmarshal([]byte(`{"Name":"Wednesday","Age":6,"Parents":["Gomez","Morticia"]}`), &map[string]interface{}{}) + } +} diff --git a/encoding/json/common.go b/encoding/json/common.go new file mode 100644 index 00000000..287217ae --- /dev/null +++ b/encoding/json/common.go @@ -0,0 +1,16 @@ +// json is an abstraction middleware package to allow switching between json encoder/decoder implementations +// The default implementation is sonic. +// Build with `sonic_off` or `386` tags to switch to golang.org/encoding/json. +package json + +import "encoding/json" //nolint:depguard // Acceptable use in gct json wrapper + +type ( + // RawMessage is a raw encoded JSON value. + // It implements [Marshaler] and [Unmarshaler] and can + // be used to delay JSON decoding or precompute a JSON encoding. + RawMessage = json.RawMessage + // An UnmarshalTypeError describes a JSON value that was + // not appropriate for a value of a specific Go type. + UnmarshalTypeError = json.UnmarshalTypeError +) diff --git a/encoding/json/json.go b/encoding/json/json.go new file mode 100644 index 00000000..66f5abb3 --- /dev/null +++ b/encoding/json/json.go @@ -0,0 +1,23 @@ +//go:build sonic_off || 386 + +package json + +import "encoding/json" //nolint:depguard // Acceptable use in gct json wrapper + +// Implementation is a constant string that represents the current JSON implementation package +const Implementation = "encoding/json" + +var ( + // Marshal returns the JSON encoding of v. See the "encoding/json" documentation for Marshal + Marshal = json.Marshal + // Unmarshal parses the JSON-encoded data and stores the result in the value pointed to by v. See the "encoding/json" documentation for Unmarshal + Unmarshal = json.Unmarshal + // NewEncoder returns a new encoder that writes to w. See the "encoding/json" documentation for NewEncoder + NewEncoder = json.NewEncoder + // NewDecoder returns a new decoder that reads from r. See the "encoding/json" documentation for NewDecoder + NewDecoder = json.NewDecoder + // MarshalIndent is like Marshal but applies Indent to format the output. See the "encoding/json" documentation for MarshalIndent + MarshalIndent = json.MarshalIndent + // Valid reports whether data is a valid JSON encoding. See the "encoding/json" documentation for Valid + Valid = json.Valid +) diff --git a/encoding/json/sonic.go b/encoding/json/sonic.go new file mode 100644 index 00000000..d3c74bc0 --- /dev/null +++ b/encoding/json/sonic.go @@ -0,0 +1,25 @@ +//go:build !sonic_off && !386 + +package json + +import ( + "github.com/bytedance/sonic" +) + +// Implementation is a constant string that represents the current JSON implementation package +const Implementation = "bytedance/sonic" + +var ( + // Marshal returns the JSON encoding of v. See the "github.com/bytedance/sonic" documentation for Marshal + Marshal = sonic.ConfigStd.Marshal + // Unmarshal parses the JSON-encoded data and stores the result in the value pointed to by v. See the "github.com/bytedance/sonic" documentation for Unmarshal + Unmarshal = sonic.ConfigStd.Unmarshal + // NewEncoder returns a new encoder that writes to w. See the "github.com/bytedance/sonic" documentation for NewEncoder + NewEncoder = sonic.ConfigStd.NewEncoder + // NewDecoder returns a new decoder that reads from r. See the "github.com/bytedance/sonic" documentation for NewDecoder + NewDecoder = sonic.ConfigStd.NewDecoder + // MarshalIndent is like Marshal but applies Indent to format the output. See the "github.com/bytedance/sonic" documentation for MarshalIndent + MarshalIndent = sonic.ConfigStd.MarshalIndent + // Valid reports whether data is a valid JSON encoding. See the "github.com/bytedance/sonic" documentation for Valid + Valid = sonic.ConfigStd.Valid +) diff --git a/engine/apiserver.go b/engine/apiserver.go index 34fcec02..487baad1 100644 --- a/engine/apiserver.go +++ b/engine/apiserver.go @@ -2,7 +2,6 @@ package engine import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -19,6 +18,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" "github.com/thrasher-corp/gocryptotrader/exchanges/ticker" diff --git a/engine/apiserver_test.go b/engine/apiserver_test.go index 736e1109..b0836ca3 100644 --- a/engine/apiserver_test.go +++ b/engine/apiserver_test.go @@ -1,7 +1,6 @@ package engine import ( - "encoding/json" "errors" "io" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/thrasher-corp/gocryptotrader/config" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestSetupAPIServerManager(t *testing.T) { diff --git a/engine/rpcserver.go b/engine/rpcserver.go index dd9b577b..33388751 100644 --- a/engine/rpcserver.go +++ b/engine/rpcserver.go @@ -2,7 +2,6 @@ package engine import ( "context" - "encoding/json" "errors" "fmt" "net" @@ -32,6 +31,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/database/models/sqlite3" "github.com/thrasher-corp/gocryptotrader/database/repository/audit" exchangeDB "github.com/thrasher-corp/gocryptotrader/database/repository/exchange" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" diff --git a/engine/rpcserver_test.go b/engine/rpcserver_test.go index 1d105dee..c80a9cdc 100644 --- a/engine/rpcserver_test.go +++ b/engine/rpcserver_test.go @@ -4,7 +4,6 @@ import ( "context" "crypto/tls" "crypto/x509" - "encoding/json" "errors" "fmt" "io" @@ -35,6 +34,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/database/repository" dbexchange "github.com/thrasher-corp/gocryptotrader/database/repository/exchange" sqltrade "github.com/thrasher-corp/gocryptotrader/database/repository/trade" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" diff --git a/exchanges/alphapoint/alphapoint.go b/exchanges/alphapoint/alphapoint.go index 03b99f95..83549fd1 100644 --- a/exchanges/alphapoint/alphapoint.go +++ b/exchanges/alphapoint/alphapoint.go @@ -3,7 +3,6 @@ package alphapoint import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common/crypto" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/alphapoint/alphapoint_test.go b/exchanges/alphapoint/alphapoint_test.go index 9630a8bd..0c18a3ee 100644 --- a/exchanges/alphapoint/alphapoint_test.go +++ b/exchanges/alphapoint/alphapoint_test.go @@ -2,7 +2,6 @@ package alphapoint import ( "context" - "encoding/json" "os" "testing" "time" @@ -10,6 +9,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/alphapoint/alphapoint_websocket.go b/exchanges/alphapoint/alphapoint_websocket.go index 93bc0d55..cd318c06 100644 --- a/exchanges/alphapoint/alphapoint_websocket.go +++ b/exchanges/alphapoint/alphapoint_websocket.go @@ -1,10 +1,10 @@ package alphapoint import ( - "encoding/json" "net/http" "github.com/gorilla/websocket" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/exchanges/asset/asset.go b/exchanges/asset/asset.go index b987e6dd..f5f372c2 100644 --- a/exchanges/asset/asset.go +++ b/exchanges/asset/asset.go @@ -1,10 +1,11 @@ package asset import ( - "encoding/json" "errors" "fmt" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Public errors related to assets diff --git a/exchanges/asset/asset_test.go b/exchanges/asset/asset_test.go index 775dda43..a83ffb89 100644 --- a/exchanges/asset/asset_test.go +++ b/exchanges/asset/asset_test.go @@ -1,13 +1,13 @@ package asset import ( - "encoding/json" "errors" "slices" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestString(t *testing.T) { diff --git a/exchanges/binance/binance.go b/exchanges/binance/binance.go index 789a71b0..8a3eee90 100644 --- a/exchanges/binance/binance.go +++ b/exchanges/binance/binance.go @@ -2,7 +2,6 @@ package binance import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/binance/binance_cfutures.go b/exchanges/binance/binance_cfutures.go index 80189845..3a66b75b 100644 --- a/exchanges/binance/binance_cfutures.go +++ b/exchanges/binance/binance_cfutures.go @@ -2,7 +2,6 @@ package binance import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -13,6 +12,7 @@ import ( "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/binance/binance_test.go b/exchanges/binance/binance_test.go index 78a2ca4d..b9173cb3 100644 --- a/exchanges/binance/binance_test.go +++ b/exchanges/binance/binance_test.go @@ -3,7 +3,6 @@ package binance import ( "bytes" "context" - "encoding/json" "errors" "fmt" "os" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/collateral" diff --git a/exchanges/binance/binance_ufutures.go b/exchanges/binance/binance_ufutures.go index 38bbfe6d..77630ee3 100644 --- a/exchanges/binance/binance_ufutures.go +++ b/exchanges/binance/binance_ufutures.go @@ -2,7 +2,6 @@ package binance import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/binance/binance_websocket.go b/exchanges/binance/binance_websocket.go index 89b00ee4..b8bd541c 100644 --- a/exchanges/binance/binance_websocket.go +++ b/exchanges/binance/binance_websocket.go @@ -2,7 +2,6 @@ package binance import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/binance/cfutures_types_test.go b/exchanges/binance/cfutures_types_test.go index 35366a76..7596c160 100644 --- a/exchanges/binance/cfutures_types_test.go +++ b/exchanges/binance/cfutures_types_test.go @@ -1,8 +1,9 @@ package binance import ( - "encoding/json" "testing" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestFuturesNewOrderRequest_Unmarshal(t *testing.T) { diff --git a/exchanges/binance/type_convert.go b/exchanges/binance/type_convert.go index c2c7a0bb..82fc3200 100644 --- a/exchanges/binance/type_convert.go +++ b/exchanges/binance/type_convert.go @@ -1,10 +1,10 @@ package binance import ( - "encoding/json" "strconv" "time" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/binanceus/binanceus.go b/exchanges/binanceus/binanceus.go index 0d43c4f6..34a35299 100644 --- a/exchanges/binanceus/binanceus.go +++ b/exchanges/binanceus/binanceus.go @@ -2,7 +2,6 @@ package binanceus import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/binanceus/binanceus_test.go b/exchanges/binanceus/binanceus_test.go index 4da02d56..8fd2333b 100644 --- a/exchanges/binanceus/binanceus_test.go +++ b/exchanges/binanceus/binanceus_test.go @@ -2,7 +2,6 @@ package binanceus import ( "context" - "encoding/json" "errors" "log" "os" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/binanceus/binanceus_websocket.go b/exchanges/binanceus/binanceus_websocket.go index 15101a0a..6a100798 100644 --- a/exchanges/binanceus/binanceus_websocket.go +++ b/exchanges/binanceus/binanceus_websocket.go @@ -2,7 +2,6 @@ package binanceus import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/binanceus/type_convert.go b/exchanges/binanceus/type_convert.go index 443bc52a..f75d1239 100644 --- a/exchanges/binanceus/type_convert.go +++ b/exchanges/binanceus/type_convert.go @@ -1,9 +1,9 @@ package binanceus import ( - "encoding/json" "time" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/bitfinex/bitfinex.go b/exchanges/bitfinex/bitfinex.go index 996ab3cb..2c3fae23 100644 --- a/exchanges/bitfinex/bitfinex.go +++ b/exchanges/bitfinex/bitfinex.go @@ -3,7 +3,6 @@ package bitfinex import ( "bytes" "context" - "encoding/json" "errors" "fmt" "io" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" diff --git a/exchanges/bitfinex/bitfinex_test.go b/exchanges/bitfinex/bitfinex_test.go index 35a53c9b..1340b7cb 100644 --- a/exchanges/bitfinex/bitfinex_test.go +++ b/exchanges/bitfinex/bitfinex_test.go @@ -3,7 +3,6 @@ package bitfinex import ( "bufio" "context" - "encoding/json" "errors" "log" "os" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/bitfinex/bitfinex_types.go b/exchanges/bitfinex/bitfinex_types.go index ef013496..c73e7a2b 100644 --- a/exchanges/bitfinex/bitfinex_types.go +++ b/exchanges/bitfinex/bitfinex_types.go @@ -1,13 +1,13 @@ package bitfinex import ( - "encoding/json" "errors" "sync" "time" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/bitfinex/bitfinex_websocket.go b/exchanges/bitfinex/bitfinex_websocket.go index 52234126..d5adeed6 100644 --- a/exchanges/bitfinex/bitfinex_websocket.go +++ b/exchanges/bitfinex/bitfinex_websocket.go @@ -2,7 +2,6 @@ package bitfinex import ( "context" - "encoding/json" "errors" "fmt" "hash/crc32" @@ -22,6 +21,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/bithumb/bithumb.go b/exchanges/bithumb/bithumb.go index 6ebfd284..89bc1872 100644 --- a/exchanges/bithumb/bithumb.go +++ b/exchanges/bithumb/bithumb.go @@ -3,7 +3,6 @@ package bithumb import ( "bytes" "context" - "encoding/json" "errors" "fmt" "math" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/bithumb/bithumb_types.go b/exchanges/bithumb/bithumb_types.go index 2d9e009e..3622f883 100644 --- a/exchanges/bithumb/bithumb_types.go +++ b/exchanges/bithumb/bithumb_types.go @@ -1,9 +1,8 @@ package bithumb import ( - "encoding/json" - "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/bithumb/bithumb_websocket.go b/exchanges/bithumb/bithumb_websocket.go index 35f8359d..2063be73 100644 --- a/exchanges/bithumb/bithumb_websocket.go +++ b/exchanges/bithumb/bithumb_websocket.go @@ -2,7 +2,6 @@ package bithumb import ( "context" - "encoding/json" "fmt" "net/http" "strings" @@ -13,6 +12,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/bithumb/bithumb_websocket_types.go b/exchanges/bithumb/bithumb_websocket_types.go index 5af5191b..a93cfda7 100644 --- a/exchanges/bithumb/bithumb_websocket_types.go +++ b/exchanges/bithumb/bithumb_websocket_types.go @@ -1,11 +1,11 @@ package bithumb import ( - "encoding/json" "sync" "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/bitmex/bitmex.go b/exchanges/bitmex/bitmex.go index 73bd5637..0a6073a0 100644 --- a/exchanges/bitmex/bitmex.go +++ b/exchanges/bitmex/bitmex.go @@ -2,7 +2,6 @@ package bitmex import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/request" ) diff --git a/exchanges/bitmex/bitmex_websocket.go b/exchanges/bitmex/bitmex_websocket.go index d322d5a6..0d667158 100644 --- a/exchanges/bitmex/bitmex_websocket.go +++ b/exchanges/bitmex/bitmex_websocket.go @@ -2,7 +2,6 @@ package bitmex import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/bitstamp/bitstamp.go b/exchanges/bitstamp/bitstamp.go index bfcb7ea0..bdd7f0de 100644 --- a/exchanges/bitstamp/bitstamp.go +++ b/exchanges/bitstamp/bitstamp.go @@ -3,7 +3,6 @@ package bitstamp import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/bitstamp/bitstamp_type_convert.go b/exchanges/bitstamp/bitstamp_type_convert.go index 2def3509..21ea0183 100644 --- a/exchanges/bitstamp/bitstamp_type_convert.go +++ b/exchanges/bitstamp/bitstamp_type_convert.go @@ -1,11 +1,11 @@ package bitstamp import ( - "encoding/json" "fmt" "strconv" "strings" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/order" ) diff --git a/exchanges/bitstamp/bitstamp_websocket.go b/exchanges/bitstamp/bitstamp_websocket.go index 8fe4f2fc..c8339963 100644 --- a/exchanges/bitstamp/bitstamp_websocket.go +++ b/exchanges/bitstamp/bitstamp_websocket.go @@ -2,7 +2,6 @@ package bitstamp import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/btcmarkets/btcmarkets.go b/exchanges/btcmarkets/btcmarkets.go index b8425d48..9f0e466a 100644 --- a/exchanges/btcmarkets/btcmarkets.go +++ b/exchanges/btcmarkets/btcmarkets.go @@ -3,7 +3,6 @@ package btcmarkets import ( "bytes" "context" - "encoding/json" "errors" "fmt" "io" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/btcmarkets/btcmarkets_websocket.go b/exchanges/btcmarkets/btcmarkets_websocket.go index 742d7f4b..ee615b99 100644 --- a/exchanges/btcmarkets/btcmarkets_websocket.go +++ b/exchanges/btcmarkets/btcmarkets_websocket.go @@ -2,7 +2,6 @@ package btcmarkets import ( "context" - "encoding/json" "errors" "fmt" "hash/crc32" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/btse/btse.go b/exchanges/btse/btse.go index 6e6ee546..86988236 100644 --- a/exchanges/btse/btse.go +++ b/exchanges/btse/btse.go @@ -3,7 +3,6 @@ package btse import ( "bytes" "context" - "encoding/json" "errors" "io" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/btse/btse_websocket.go b/exchanges/btse/btse_websocket.go index 1d9e5906..e372efe6 100644 --- a/exchanges/btse/btse_websocket.go +++ b/exchanges/btse/btse_websocket.go @@ -2,7 +2,6 @@ package btse import ( "context" - "encoding/json" "errors" "net/http" "strconv" @@ -13,6 +12,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/bybit/bybit.go b/exchanges/bybit/bybit.go index 6ff82ea5..708a34da 100644 --- a/exchanges/bybit/bybit.go +++ b/exchanges/bybit/bybit.go @@ -3,7 +3,6 @@ package bybit import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/bybit/bybit_convert.go b/exchanges/bybit/bybit_convert.go index d28816fa..cf1ea3d6 100644 --- a/exchanges/bybit/bybit_convert.go +++ b/exchanges/bybit/bybit_convert.go @@ -1,6 +1,6 @@ package bybit -import "encoding/json" +import "github.com/thrasher-corp/gocryptotrader/encoding/json" // UnmarshalJSON deserializes incoming data into orderbookResponse instance. func (a *orderbookResponse) UnmarshalJSON(data []byte) error { diff --git a/exchanges/bybit/bybit_options_websocket.go b/exchanges/bybit/bybit_options_websocket.go index e2e58363..5c47057e 100644 --- a/exchanges/bybit/bybit_options_websocket.go +++ b/exchanges/bybit/bybit_options_websocket.go @@ -2,12 +2,12 @@ package bybit import ( "context" - "encoding/json" "net/http" "strconv" "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/request" "github.com/thrasher-corp/gocryptotrader/exchanges/stream" diff --git a/exchanges/bybit/bybit_test.go b/exchanges/bybit/bybit_test.go index e2c9c940..d5fdbc3d 100644 --- a/exchanges/bybit/bybit_test.go +++ b/exchanges/bybit/bybit_test.go @@ -2,7 +2,6 @@ package bybit import ( "context" - "encoding/json" "errors" "fmt" "maps" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fundingrate" diff --git a/exchanges/bybit/bybit_types.go b/exchanges/bybit/bybit_types.go index 16114557..4f4671bb 100644 --- a/exchanges/bybit/bybit_types.go +++ b/exchanges/bybit/bybit_types.go @@ -1,12 +1,12 @@ package bybit import ( - "encoding/json" "sync" "time" "github.com/gofrs/uuid" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/bybit/bybit_websocket.go b/exchanges/bybit/bybit_websocket.go index 9d1b8426..2d4b54b5 100644 --- a/exchanges/bybit/bybit_websocket.go +++ b/exchanges/bybit/bybit_websocket.go @@ -2,7 +2,6 @@ package bybit import ( "context" - "encoding/json" "fmt" "net/http" "strconv" @@ -14,6 +13,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fill" diff --git a/exchanges/coinbasepro/coinbasepro.go b/exchanges/coinbasepro/coinbasepro.go index d62f24ef..446ba29e 100644 --- a/exchanges/coinbasepro/coinbasepro.go +++ b/exchanges/coinbasepro/coinbasepro.go @@ -3,7 +3,6 @@ package coinbasepro import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/coinbasepro/coinbasepro_websocket.go b/exchanges/coinbasepro/coinbasepro_websocket.go index e18f5255..b6388d57 100644 --- a/exchanges/coinbasepro/coinbasepro_websocket.go +++ b/exchanges/coinbasepro/coinbasepro_websocket.go @@ -2,7 +2,6 @@ package coinbasepro import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/coinut/coinut.go b/exchanges/coinut/coinut.go index 2f17789b..ba576261 100644 --- a/exchanges/coinut/coinut.go +++ b/exchanges/coinut/coinut.go @@ -3,7 +3,6 @@ package coinut import ( "bytes" "context" - "encoding/json" "errors" "fmt" "math/rand" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" diff --git a/exchanges/coinut/coinut_websocket.go b/exchanges/coinut/coinut_websocket.go index 7e1dece6..b0d5f66f 100644 --- a/exchanges/coinut/coinut_websocket.go +++ b/exchanges/coinut/coinut_websocket.go @@ -2,7 +2,6 @@ package coinut import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" diff --git a/exchanges/collateral/collateral.go b/exchanges/collateral/collateral.go index 0bdad2df..8ad0200f 100644 --- a/exchanges/collateral/collateral.go +++ b/exchanges/collateral/collateral.go @@ -1,9 +1,10 @@ package collateral import ( - "encoding/json" "fmt" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Valid returns whether the collateral mode is valid diff --git a/exchanges/collateral/collateral_test.go b/exchanges/collateral/collateral_test.go index 97b35eaf..61cf5217 100644 --- a/exchanges/collateral/collateral_test.go +++ b/exchanges/collateral/collateral_test.go @@ -1,10 +1,11 @@ package collateral import ( - "encoding/json" "errors" "strings" "testing" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestValidCollateralType(t *testing.T) { diff --git a/exchanges/deribit/deribit.go b/exchanges/deribit/deribit.go index c13c24fc..0504d0eb 100644 --- a/exchanges/deribit/deribit.go +++ b/exchanges/deribit/deribit.go @@ -2,7 +2,6 @@ package deribit import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -14,6 +13,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/deribit/deribit_test.go b/exchanges/deribit/deribit_test.go index 1696bf7e..b6087884 100644 --- a/exchanges/deribit/deribit_test.go +++ b/exchanges/deribit/deribit_test.go @@ -2,7 +2,6 @@ package deribit import ( "context" - "encoding/json" "fmt" "log" "os" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fundingrate" diff --git a/exchanges/deribit/deribit_types.go b/exchanges/deribit/deribit_types.go index 032bdfd4..3d553278 100644 --- a/exchanges/deribit/deribit_types.go +++ b/exchanges/deribit/deribit_types.go @@ -1,11 +1,11 @@ package deribit import ( - "encoding/json" "errors" "regexp" "time" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/deribit/deribit_websocket.go b/exchanges/deribit/deribit_websocket.go index 21e7088b..25490e5f 100644 --- a/exchanges/deribit/deribit_websocket.go +++ b/exchanges/deribit/deribit_websocket.go @@ -2,7 +2,6 @@ package deribit import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" diff --git a/exchanges/deribit/deribit_ws_endpoints.go b/exchanges/deribit/deribit_ws_endpoints.go index 5c761b2a..b28999d5 100644 --- a/exchanges/deribit/deribit_ws_endpoints.go +++ b/exchanges/deribit/deribit_ws_endpoints.go @@ -2,7 +2,6 @@ package deribit import ( "context" - "encoding/json" "errors" "fmt" "net/url" @@ -11,6 +10,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/gateio/gateio.go b/exchanges/gateio/gateio.go index a0658d44..086c1acc 100644 --- a/exchanges/gateio/gateio.go +++ b/exchanges/gateio/gateio.go @@ -5,7 +5,6 @@ import ( "crypto/hmac" "crypto/sha512" "encoding/hex" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/gateio/gateio_test.go b/exchanges/gateio/gateio_test.go index af11fdbe..40222de3 100644 --- a/exchanges/gateio/gateio_test.go +++ b/exchanges/gateio/gateio_test.go @@ -2,7 +2,6 @@ package gateio import ( "context" - "encoding/json" "errors" "fmt" "log" @@ -19,6 +18,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fundingrate" "github.com/thrasher-corp/gocryptotrader/exchanges/futures" diff --git a/exchanges/gateio/gateio_types.go b/exchanges/gateio/gateio_types.go index 36b8a6a0..ec75c7e1 100644 --- a/exchanges/gateio/gateio_types.go +++ b/exchanges/gateio/gateio_types.go @@ -1,11 +1,11 @@ package gateio import ( - "encoding/json" "strconv" "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/gateio/gateio_websocket.go b/exchanges/gateio/gateio_websocket.go index cb593a30..c9d4f8e4 100644 --- a/exchanges/gateio/gateio_websocket.go +++ b/exchanges/gateio/gateio_websocket.go @@ -5,7 +5,6 @@ import ( "crypto/hmac" "crypto/sha512" "encoding/hex" - "encoding/json" "errors" "fmt" "net/http" @@ -19,6 +18,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fill" diff --git a/exchanges/gateio/gateio_websocket_delivery_futures.go b/exchanges/gateio/gateio_websocket_delivery_futures.go index eeb1a706..fd3ce062 100644 --- a/exchanges/gateio/gateio_websocket_delivery_futures.go +++ b/exchanges/gateio/gateio_websocket_delivery_futures.go @@ -2,7 +2,6 @@ package gateio import ( "context" - "encoding/json" "errors" "net/http" "strconv" @@ -10,6 +9,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/gateio/gateio_websocket_futures.go b/exchanges/gateio/gateio_websocket_futures.go index fced165a..244afc56 100644 --- a/exchanges/gateio/gateio_websocket_futures.go +++ b/exchanges/gateio/gateio_websocket_futures.go @@ -2,7 +2,6 @@ package gateio import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -13,6 +12,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fill" diff --git a/exchanges/gateio/gateio_websocket_option.go b/exchanges/gateio/gateio_websocket_option.go index 7ec39737..938ec208 100644 --- a/exchanges/gateio/gateio_websocket_option.go +++ b/exchanges/gateio/gateio_websocket_option.go @@ -2,7 +2,6 @@ package gateio import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fill" diff --git a/exchanges/gateio/gateio_websocket_request_spot.go b/exchanges/gateio/gateio_websocket_request_spot.go index 25ac1ea1..4069c3a2 100644 --- a/exchanges/gateio/gateio_websocket_request_spot.go +++ b/exchanges/gateio/gateio_websocket_request_spot.go @@ -2,7 +2,6 @@ package gateio import ( "context" - "encoding/json" "errors" "fmt" "strconv" @@ -11,6 +10,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/gateio/gateio_websocket_request_types.go b/exchanges/gateio/gateio_websocket_request_types.go index 165eea41..c4bc766f 100644 --- a/exchanges/gateio/gateio_websocket_request_types.go +++ b/exchanges/gateio/gateio_websocket_request_types.go @@ -1,9 +1,8 @@ package gateio import ( - "encoding/json" - "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/gemini/gemini.go b/exchanges/gemini/gemini.go index e6cce565..4c646d23 100644 --- a/exchanges/gemini/gemini.go +++ b/exchanges/gemini/gemini.go @@ -2,7 +2,6 @@ package gemini import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -14,6 +13,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/gemini/gemini_websocket.go b/exchanges/gemini/gemini_websocket.go index cecf8bba..8c41eb50 100644 --- a/exchanges/gemini/gemini_websocket.go +++ b/exchanges/gemini/gemini_websocket.go @@ -4,7 +4,6 @@ package gemini import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/hitbtc/hitbtc_websocket.go b/exchanges/hitbtc/hitbtc_websocket.go index 7b384d3b..a672485f 100644 --- a/exchanges/hitbtc/hitbtc_websocket.go +++ b/exchanges/hitbtc/hitbtc_websocket.go @@ -2,7 +2,6 @@ package hitbtc import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/huobi/huobi.go b/exchanges/huobi/huobi.go index 9f9b7986..d592496f 100644 --- a/exchanges/huobi/huobi.go +++ b/exchanges/huobi/huobi.go @@ -3,7 +3,6 @@ package huobi import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/huobi/huobi_futures.go b/exchanges/huobi/huobi_futures.go index ff1ffd60..5deddd97 100644 --- a/exchanges/huobi/huobi_futures.go +++ b/exchanges/huobi/huobi_futures.go @@ -3,7 +3,6 @@ package huobi import ( "bytes" "context" - "encoding/json" "errors" "fmt" "io" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/huobi/huobi_websocket.go b/exchanges/huobi/huobi_websocket.go index c9a78e8e..c4efdbdb 100644 --- a/exchanges/huobi/huobi_websocket.go +++ b/exchanges/huobi/huobi_websocket.go @@ -2,7 +2,6 @@ package huobi import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/kraken/kraken.go b/exchanges/kraken/kraken.go index f85f8431..e2c4652f 100644 --- a/exchanges/kraken/kraken.go +++ b/exchanges/kraken/kraken.go @@ -2,7 +2,6 @@ package kraken import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" diff --git a/exchanges/kraken/kraken_futures.go b/exchanges/kraken/kraken_futures.go index b2b17eb6..a58d73ce 100644 --- a/exchanges/kraken/kraken_futures.go +++ b/exchanges/kraken/kraken_futures.go @@ -3,7 +3,6 @@ package kraken import ( "context" "encoding/base64" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/kraken/kraken_test.go b/exchanges/kraken/kraken_test.go index 2babae23..234ac536 100644 --- a/exchanges/kraken/kraken_test.go +++ b/exchanges/kraken/kraken_test.go @@ -2,7 +2,6 @@ package kraken import ( "context" - "encoding/json" "errors" "log" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common/key" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fundingrate" @@ -1680,7 +1680,7 @@ func TestErrorResponse(t *testing.T) { func TestGetFuturesErr(t *testing.T) { t.Parallel() - assert.ErrorContains(t, getFuturesErr(json.RawMessage(`unparsable rubbish`)), "invalid character", "Bad JSON should error correctly") + assert.ErrorContains(t, getFuturesErr(json.RawMessage(`unparsable rubbish`)), "invalid char", "Bad JSON should error correctly") assert.NoError(t, getFuturesErr(json.RawMessage(`{"candles":[]}`)), "JSON with no Result should not error") assert.NoError(t, getFuturesErr(json.RawMessage(`{"Result":"4 goats"}`)), "JSON with non-error Result should not error") assert.ErrorIs(t, getFuturesErr(json.RawMessage(`{"Result":"error"}`)), common.ErrUnknownError, "JSON with error Result should error correctly") diff --git a/exchanges/kraken/kraken_types.go b/exchanges/kraken/kraken_types.go index 68256c30..44aceea7 100644 --- a/exchanges/kraken/kraken_types.go +++ b/exchanges/kraken/kraken_types.go @@ -1,7 +1,6 @@ package kraken import ( - "encoding/json" "errors" "fmt" "strings" @@ -9,6 +8,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/kraken/kraken_websocket.go b/exchanges/kraken/kraken_websocket.go index 5b276055..bb1c3711 100644 --- a/exchanges/kraken/kraken_websocket.go +++ b/exchanges/kraken/kraken_websocket.go @@ -3,7 +3,6 @@ package kraken import ( "bytes" "context" - "encoding/json" "errors" "fmt" "hash/crc32" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/convert" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/kraken/mock_ws_test.go b/exchanges/kraken/mock_ws_test.go index 09df7b74..80e04cdb 100644 --- a/exchanges/kraken/mock_ws_test.go +++ b/exchanges/kraken/mock_ws_test.go @@ -1,7 +1,6 @@ package kraken import ( - "encoding/json" "fmt" "strings" "testing" @@ -9,6 +8,7 @@ import ( "github.com/buger/jsonparser" "github.com/gorilla/websocket" "github.com/stretchr/testify/assert" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func mockWsServer(tb testing.TB, msg []byte, w *websocket.Conn) error { diff --git a/exchanges/kucoin/kucoin.go b/exchanges/kucoin/kucoin.go index 74d97a34..78a4c06f 100644 --- a/exchanges/kucoin/kucoin.go +++ b/exchanges/kucoin/kucoin.go @@ -3,7 +3,6 @@ package kucoin import ( "bytes" "context" - "encoding/json" "fmt" "io" "net/http" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" diff --git a/exchanges/kucoin/kucoin_convert.go b/exchanges/kucoin/kucoin_convert.go index 83b8bd5d..807c4ef9 100644 --- a/exchanges/kucoin/kucoin_convert.go +++ b/exchanges/kucoin/kucoin_convert.go @@ -1,8 +1,9 @@ package kucoin import ( - "encoding/json" "fmt" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // UnmarshalJSON valid data to SubAccountsResponse of return nil if the data is empty list. diff --git a/exchanges/kucoin/kucoin_test.go b/exchanges/kucoin/kucoin_test.go index 930c1f32..d8bf6ec2 100644 --- a/exchanges/kucoin/kucoin_test.go +++ b/exchanges/kucoin/kucoin_test.go @@ -2,7 +2,6 @@ package kucoin import ( "context" - "encoding/json" "errors" "fmt" "log" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/fundingrate" diff --git a/exchanges/kucoin/kucoin_types.go b/exchanges/kucoin/kucoin_types.go index 41409080..957f813a 100644 --- a/exchanges/kucoin/kucoin_types.go +++ b/exchanges/kucoin/kucoin_types.go @@ -1,13 +1,13 @@ package kucoin import ( - "encoding/json" "errors" "fmt" "strconv" "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/orderbook" "github.com/thrasher-corp/gocryptotrader/types" ) diff --git a/exchanges/kucoin/kucoin_websocket.go b/exchanges/kucoin/kucoin_websocket.go index fce85c29..210bf0f4 100644 --- a/exchanges/kucoin/kucoin_websocket.go +++ b/exchanges/kucoin/kucoin_websocket.go @@ -2,7 +2,6 @@ package kucoin import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -17,6 +16,7 @@ import ( "github.com/gorilla/websocket" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" diff --git a/exchanges/lbank/lbank.go b/exchanges/lbank/lbank.go index b5e88d03..068e7ba9 100644 --- a/exchanges/lbank/lbank.go +++ b/exchanges/lbank/lbank.go @@ -7,7 +7,6 @@ import ( "crypto/rand" "crypto/rsa" "crypto/x509" - "encoding/json" "encoding/pem" "errors" "fmt" @@ -18,6 +17,7 @@ import ( "time" gctcrypto "github.com/thrasher-corp/gocryptotrader/common/crypto" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/order" "github.com/thrasher-corp/gocryptotrader/exchanges/request" diff --git a/exchanges/lbank/lbank_types.go b/exchanges/lbank/lbank_types.go index dc6e0328..62b5d945 100644 --- a/exchanges/lbank/lbank_types.go +++ b/exchanges/lbank/lbank_types.go @@ -1,10 +1,10 @@ package lbank import ( - "encoding/json" "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Ticker stores the ticker price data for a currency pair diff --git a/exchanges/margin/margin.go b/exchanges/margin/margin.go index 91ccb5b7..ce6386e7 100644 --- a/exchanges/margin/margin.go +++ b/exchanges/margin/margin.go @@ -1,9 +1,10 @@ package margin import ( - "encoding/json" "fmt" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Valid returns whether the margin type is valid diff --git a/exchanges/margin/margin_test.go b/exchanges/margin/margin_test.go index b5dc245b..32fbe561 100644 --- a/exchanges/margin/margin_test.go +++ b/exchanges/margin/margin_test.go @@ -1,12 +1,12 @@ package margin import ( - "encoding/json" "strings" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestValid(t *testing.T) { diff --git a/exchanges/mock/common.go b/exchanges/mock/common.go index 0f77a193..4f8c34ee 100644 --- a/exchanges/mock/common.go +++ b/exchanges/mock/common.go @@ -1,7 +1,6 @@ package mock import ( - "encoding/json" "errors" "fmt" "log" @@ -9,6 +8,8 @@ import ( "reflect" "strconv" "strings" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // MatchURLVals matches url.Value query strings diff --git a/exchanges/mock/common_test.go b/exchanges/mock/common_test.go index ae7ede80..4703655c 100644 --- a/exchanges/mock/common_test.go +++ b/exchanges/mock/common_test.go @@ -1,9 +1,10 @@ package mock import ( - "encoding/json" "net/url" "testing" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestMatchURLVals(t *testing.T) { diff --git a/exchanges/mock/recording.go b/exchanges/mock/recording.go index a8bc37be..f009c1bd 100644 --- a/exchanges/mock/recording.go +++ b/exchanges/mock/recording.go @@ -1,7 +1,6 @@ package mock import ( - "encoding/json" "errors" "fmt" "io" @@ -16,6 +15,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // HTTPResponse defines expected response from the end point including request diff --git a/exchanges/mock/recording_test.go b/exchanges/mock/recording_test.go index 5b612295..01de889a 100644 --- a/exchanges/mock/recording_test.go +++ b/exchanges/mock/recording_test.go @@ -1,11 +1,12 @@ package mock import ( - "encoding/json" "net/http" "net/url" "strings" "testing" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestGetFilteredHeader(t *testing.T) { diff --git a/exchanges/mock/server.go b/exchanges/mock/server.go index 1881fec7..9cdbeec7 100644 --- a/exchanges/mock/server.go +++ b/exchanges/mock/server.go @@ -1,7 +1,6 @@ package mock import ( - "encoding/json" "errors" "fmt" "io" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/common/file" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // DefaultDirectory defines the main mock directory diff --git a/exchanges/mock/server_test.go b/exchanges/mock/server_test.go index 5b9cb8cf..27c197c4 100644 --- a/exchanges/mock/server_test.go +++ b/exchanges/mock/server_test.go @@ -3,13 +3,13 @@ package mock import ( "bytes" "context" - "encoding/json" "net/http" "os" "strings" "testing" "github.com/thrasher-corp/gocryptotrader/common" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) type responsePayload struct { diff --git a/exchanges/okx/okx.go b/exchanges/okx/okx.go index 252af3fb..7fccaaae 100644 --- a/exchanges/okx/okx.go +++ b/exchanges/okx/okx.go @@ -3,7 +3,6 @@ package okx import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net" @@ -19,6 +18,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" diff --git a/exchanges/okx/okx_business_websocket.go b/exchanges/okx/okx_business_websocket.go index 83ca7e9c..5056c40d 100644 --- a/exchanges/okx/okx_business_websocket.go +++ b/exchanges/okx/okx_business_websocket.go @@ -2,7 +2,6 @@ package okx import ( "context" - "encoding/json" "fmt" "net/http" "strconv" @@ -12,6 +11,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/request" "github.com/thrasher-corp/gocryptotrader/exchanges/stream" diff --git a/exchanges/okx/okx_test.go b/exchanges/okx/okx_test.go index 981aec68..e3494a29 100644 --- a/exchanges/okx/okx_test.go +++ b/exchanges/okx/okx_test.go @@ -2,7 +2,6 @@ package okx import ( "context" - "encoding/json" "errors" "fmt" "log" @@ -18,6 +17,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/collateral" diff --git a/exchanges/okx/okx_type_convert.go b/exchanges/okx/okx_type_convert.go index ae8efeed..d46fcf15 100644 --- a/exchanges/okx/okx_type_convert.go +++ b/exchanges/okx/okx_type_convert.go @@ -1,9 +1,9 @@ package okx import ( - "encoding/json" "strings" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/order" ) diff --git a/exchanges/okx/okx_types.go b/exchanges/okx/okx_types.go index 82e11a5c..5232785d 100644 --- a/exchanges/okx/okx_types.go +++ b/exchanges/okx/okx_types.go @@ -1,7 +1,6 @@ package okx import ( - "encoding/json" "errors" "reflect" "strconv" @@ -9,6 +8,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/okx/okx_websocket.go b/exchanges/okx/okx_websocket.go index 8bf0e9fc..224203fd 100644 --- a/exchanges/okx/okx_websocket.go +++ b/exchanges/okx/okx_websocket.go @@ -3,7 +3,6 @@ package okx import ( "bytes" "context" - "encoding/json" "errors" "fmt" "hash/crc32" @@ -17,6 +16,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/order/order_test.go b/exchanges/order/order_test.go index 59a62429..d78a61ef 100644 --- a/exchanges/order/order_test.go +++ b/exchanges/order/order_test.go @@ -1,7 +1,6 @@ package order import ( - "encoding/json" "errors" "fmt" "reflect" @@ -15,6 +14,7 @@ import ( "github.com/stretchr/testify/require" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/protocol" "github.com/thrasher-corp/gocryptotrader/exchanges/validate" diff --git a/exchanges/order/orders.go b/exchanges/order/orders.go index f8983af7..08190165 100644 --- a/exchanges/order/orders.go +++ b/exchanges/order/orders.go @@ -2,7 +2,6 @@ package order import ( "bytes" - "encoding/json" "errors" "fmt" "reflect" @@ -13,6 +12,7 @@ import ( "github.com/gofrs/uuid" "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/protocol" "github.com/thrasher-corp/gocryptotrader/exchanges/validate" diff --git a/exchanges/poloniex/poloniex.go b/exchanges/poloniex/poloniex.go index 4f95e53d..d5286c4a 100644 --- a/exchanges/poloniex/poloniex.go +++ b/exchanges/poloniex/poloniex.go @@ -3,7 +3,6 @@ package poloniex import ( "bytes" "context" - "encoding/json" "errors" "fmt" "net/http" @@ -15,6 +14,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" exchange "github.com/thrasher-corp/gocryptotrader/exchanges" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/poloniex/poloniex_types.go b/exchanges/poloniex/poloniex_types.go index e28c2791..ede3fa8b 100644 --- a/exchanges/poloniex/poloniex_types.go +++ b/exchanges/poloniex/poloniex_types.go @@ -1,10 +1,10 @@ package poloniex import ( - "encoding/json" "time" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) // Ticker holds ticker data diff --git a/exchanges/poloniex/poloniex_websocket.go b/exchanges/poloniex/poloniex_websocket.go index 2d2ce08c..0a7d85d2 100644 --- a/exchanges/poloniex/poloniex_websocket.go +++ b/exchanges/poloniex/poloniex_websocket.go @@ -2,7 +2,6 @@ package poloniex import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -14,6 +13,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/crypto" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/account" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/order" diff --git a/exchanges/request/request.go b/exchanges/request/request.go index 2d9ce82f..db4a10b6 100644 --- a/exchanges/request/request.go +++ b/exchanges/request/request.go @@ -2,7 +2,6 @@ package request import ( "context" - "encoding/json" "errors" "fmt" "io" @@ -13,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/common/timedmutex" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/mock" "github.com/thrasher-corp/gocryptotrader/exchanges/nonce" "github.com/thrasher-corp/gocryptotrader/log" diff --git a/exchanges/stream/websocket_connection.go b/exchanges/stream/websocket_connection.go index 55fd7168..63118f34 100644 --- a/exchanges/stream/websocket_connection.go +++ b/exchanges/stream/websocket_connection.go @@ -6,7 +6,6 @@ import ( "compress/gzip" "context" "crypto/rand" - "encoding/json" "errors" "fmt" "io" @@ -19,6 +18,7 @@ import ( "time" "github.com/gorilla/websocket" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/request" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/exchanges/stream/websocket_test.go b/exchanges/stream/websocket_test.go index b6f3a762..d434c250 100644 --- a/exchanges/stream/websocket_test.go +++ b/exchanges/stream/websocket_test.go @@ -5,7 +5,6 @@ import ( "compress/flate" "compress/gzip" "context" - "encoding/json" "errors" "net/http" "net/http/httptest" @@ -21,6 +20,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/protocol" "github.com/thrasher-corp/gocryptotrader/exchanges/request" "github.com/thrasher-corp/gocryptotrader/exchanges/subscription" diff --git a/exchanges/subscription/subscription_test.go b/exchanges/subscription/subscription_test.go index edc828a8..d34cb70e 100644 --- a/exchanges/subscription/subscription_test.go +++ b/exchanges/subscription/subscription_test.go @@ -1,11 +1,11 @@ package subscription import ( - "encoding/json" "testing" "github.com/stretchr/testify/assert" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/exchanges/asset" "github.com/thrasher-corp/gocryptotrader/exchanges/kline" ) diff --git a/go.mod b/go.mod index 028b36b1..9a935add 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.23.0 require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/buger/jsonparser v1.1.1 + github.com/bytedance/sonic v1.12.7 github.com/d5/tengo/v2 v2.17.0 github.com/gofrs/uuid v4.4.0+incompatible github.com/gorilla/mux v1.8.1 @@ -39,6 +40,8 @@ require ( github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/boombuler/barcode v1.0.1 // indirect + github.com/bytedance/sonic/loader v0.2.2 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/friendsofgo/errors v0.9.2 // indirect @@ -46,6 +49,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -60,11 +64,13 @@ require ( github.com/spf13/cast v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.6.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/volatiletech/inflect v0.0.1 // indirect github.com/volatiletech/sqlboiler v3.7.1+incompatible // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect + golang.org/x/arch v0.13.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index 16a42db7..2652434c 100644 --- a/go.sum +++ b/go.sum @@ -28,9 +28,17 @@ github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyX github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= +github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= +github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -121,6 +129,10 @@ github.com/kat-co/vala v0.0.0-20170210184112-42e1d8b61f12/go.mod h1:u9MdXq/QageO github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -222,6 +234,7 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= @@ -235,6 +248,8 @@ github.com/thrasher-corp/goose v2.7.0-rc4.0.20191002032028-0f2c2a27abdb+incompat github.com/thrasher-corp/sqlboiler v1.0.1-0.20191001234224-71e17f37a85e h1:4kYBo2YhqqFY7aZPPEhrtPTMoAq4iCsoDITd3jseRbY= github.com/thrasher-corp/sqlboiler v1.0.1-0.20191001234224-71e17f37a85e/go.mod h1:JfJE+3gijF30ZJbUCzxGkU0+ymQxBfBOVp4XDObmJBE= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= @@ -275,6 +290,8 @@ go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= +golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -391,3 +408,4 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/log/logger_multiwriter.go b/log/logger_multiwriter.go index 308051ba..794ae912 100644 --- a/log/logger_multiwriter.go +++ b/log/logger_multiwriter.go @@ -1,12 +1,13 @@ package log import ( - "encoding/json" "errors" "fmt" "io" "log" "time" + + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) var ( diff --git a/log/logger_test.go b/log/logger_test.go index 0f2c91b6..f0cae757 100644 --- a/log/logger_test.go +++ b/log/logger_test.go @@ -1,7 +1,6 @@ package log import ( - "encoding/json" "errors" "io" "log" @@ -12,6 +11,7 @@ import ( "github.com/gofrs/uuid" "github.com/thrasher-corp/gocryptotrader/common/convert" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) var ( diff --git a/main.go b/main.go index 86575a81..1811dee4 100644 --- a/main.go +++ b/main.go @@ -12,6 +12,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/dispatch" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/engine" "github.com/thrasher-corp/gocryptotrader/exchanges/alert" "github.com/thrasher-corp/gocryptotrader/exchanges/request" @@ -140,6 +141,8 @@ func main() { gctscript.Setup() + gctlog.Infof(gctlog.Global, "JSON encoding is set to package `%s`", json.Implementation) + engine.Bot.Settings.PrintLoadedSettings() if err = engine.Bot.Start(); err != nil { diff --git a/portfolio/portfolio.go b/portfolio/portfolio.go index e91d61f8..a3a4b6ba 100644 --- a/portfolio/portfolio.go +++ b/portfolio/portfolio.go @@ -2,7 +2,6 @@ package portfolio import ( "context" - "encoding/json" "errors" "fmt" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/currency" + "github.com/thrasher-corp/gocryptotrader/encoding/json" "github.com/thrasher-corp/gocryptotrader/log" ) diff --git a/types/time_test.go b/types/time_test.go index 45636389..c5dc5a73 100644 --- a/types/time_test.go +++ b/types/time_test.go @@ -1,13 +1,13 @@ package types import ( - "encoding/json" "strconv" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/thrasher-corp/gocryptotrader/encoding/json" ) func TestUnmarshalJSON(t *testing.T) {