* Improved test setup for logger, improved test coverage for database
* removed some new lines
* add new line
* removed database config detailS
* removed lines
* code cleanup
* renamed package to log to stop side import requirement
* reverted comment changes
* reverted comment changes
* one more reverting wording back to logger
* wording changes on comments
* Bugfix, remove non-needed code and cleanup some code
* Run go mod tidy
* Remove non-needed test and fix tautological err
* Fix Huobi interim var reference
* Add exchange manager to engine
* Several improvements for engine and friends
1) New file.Exists func
2) gRPC TLS cert expiration date check and regeneration
3) New donation var for use across the codebase
4) Use Go log package until the logger is initialised
* Add cert tests and create dir tree if it doesn't exist for file.Write
* Link up donation address to documentation tool plus minor adjustments
* Fix remaining donation addrs
* Move non-needed reload exchange funcs
* Revert accidental config_example.json changes 🕯️
* Use go logger for logging until the logger has initiliased, otherwise no output will be seen
* Link up portfolio delay val and other fixes
* Run go mod tidy after dependabot PR
* Address nitterinos
* Bittrex GetDepositHistory method return new DepositHistory struct type
* Id field of DepositHistory type changed to int64
* check exchange (exist and enabled) before calling methods on, to avoid program crashes
* Update bittrex_types.go
* t2
* Program always uses the DefaultSyncerTimeout because c.SyncTimeout in engine/syncer.go newer set in code
* gofmt file
Co-authored-by: Ryan O'Hara-Reid <oharareid.ryan@gmail.com>
* Initial rework of rework of requester - WIP
* Implementing and checking rate limits - WIP
* implemented coinbene rate limiting shenanigans
* add in remaining WIP
* fixy
* use authenticated rate limit
* drop ceiling as this can be done with a counter later
* add functionality to struct
* purge config options for rate limiting so as to keep things minimal
* prepare futures and swap rate limiting for implementation
* Address linter issues
* Addressed nits, fixed race
* fix linter issue
* remove global var as this was only setting when newrequester was called
* moved rate limit functionality into its own file
* Update Bitfinex with correct rate limit and test endpoints (WIP)
* finish off bitfinex adjustments
* fixes
* fix linter issues
* slowed rate for coinbasepro
* drop rate limit for huobi as the doc times have intermittent 429 issues.
* Set MACOSX_DEPLOYMENT_TARGET to remove linking warning
* Addr Thrasher nits
* Addr glorious nits
* unexport do request function
* fixed nitorinos
* Fixed something I missed
* move disabled rate limiter into loadexchange and use interface functionality
* Add temp quick fix
* expose auth validator functionality for wrapper
* Add REST validation after keys set, package account types for future syncing
* Add transient error checking for initial creddemtial validation
* fix command types
* Addressed nits from glorious person
* Amalgamate body within error when not between 2xx status, added btcmarket specific auth error check
* nit fix for glorious person
* Format fix
* removed unused code
* check transient first then validate if its an exchange specific authentication error, all others will be disregarded
* Addressed glorious nits
* Addressed glorious nits
* Moved account processing to updateaccountinfo func and added in fetch account info
* Add GRPC Account streaming (NOTE: could not complete until sync item added)
* RM exchange check
* Address xtda nits
* RM comment code
* Fix linter issues
* used most recent protoc version
* lbank linter issues fixed
* Addressed nits and changed len check to range in for loops
* Fixed timeout issue
* thrasher nits addressed
* add string holdings
* Added config option for SetMutexProfileFraction() to profiler increased test coverage and made tests runnable standalone
* Removed duplicate host and no longer const
* Added pprof endpoint to log
* GCTCLI param and linter fixes
* Linter fixes
* Add more basic validation and address codelingo nits
* Add arg number support to cancelOrder and more validity checks
* initial wiring to providegethistoricalcandles
* initial wiring to providegethistoricalcandles
* initial wiring to providegethistoricalcandles
* gethistriccandles work from cli using hard coded inputs
* gethistoriccandles RPC service and CLI working fine for coinbasepro
* fixed unit test
* input check on grpc for gethistoriccandles
* updated deps
* fixed the return value when a method is not yet implemented
* code review: fixed CLI input check and int32->int64
* code review: handling wrong exchange name
* added check on granularity and allowing start and end being empty
* code review: removed currency2
* code review: dependency reverted
* improved func comment
* typo in func comment
* get historic values tests
* unit tests for get historical rates on coinbasepro
* using time format time.RFC3339
* names to camel case and improved comments
* test cleanup
* changed to camel case
* added InArray tests
* dropped not needed string time
* enforced use of int64
* fixed make check
* cleaned up code organisation to be consistent
* fixed Travis remarks
* more Travis remarks
* added comments
* regenerated proto files after merge
* linter fix
* started adding basic lru cache system
* Added basic LRU cache including Add Get Remove Contains ContainsOrAdd Clear
* wording changes on comments
* removed exported var's in strut as they are not required
* Added README
* README updates
* rm line :D
* swapped to mutex over rwmutex updated comments
* unexported getNewest & getOldest
* unexported getNewest & getOldest
* Updated comments and cited references in source
* updated comments
* WIP
* updated appveyor and increased deadline 5 seconds due to increased linters being added
* revert files to upstream/engine
* WIP
* WIP
* mod file changes
* added script manager
* Added manager/and cli interfaces to scripting
* Added script task handler
* WIP - Added timer/repeat support and fleshed out wrapper further
* autoload support added + WIP
* WIP commit
* added account balance info
* btc markets temp work around
* WIP - merged with upstream for new order package BTC Markets responses broken
* Cancel order wrapper WIP
* order wrapper update
* Added test coverage for VM
* moved to map for VM List shutdown of all VM now handled added gctcli commands for list and stop of running scripts
* added override to load/execute for path
* fixed incorrect channel shutdown added further test coverage and restructured gctcli commands into sub commands
* increased test coverage for packages
* Added docs cleaned up tests and example scripts
* Test coverage increased for module/gct/exchange package
* windows fixes
* merged upstream/engine
* WIP
* logger fixes - removed pointer to bool check removed duplicate test check for logger
* remove unused mutex
* added inital upload support
* fix linter issues for go-fmt
* added zip support for uploading and added base for fund withdrawing
* changed error return types and also log errors, fix zip path issue
* improved error outputs and code flow
* pairs response fix added protobuf defs for stop all and list all
* added stop all running scripts general clean up and moved across to OrderManager
* linter fixes (gofmt)
* added list all command
* rewrote zip handler to be cleaner also fixed file overwrite on upload
* added query command reworked tests
* added further error checking to compileandrun corrected use of pointers for accountinfo
* bumped tengo version
* Removed named returns reworded log messages removed unused falseptr
* WIP
* Added virutal machine limit improved config options
* added model for script event added upload validation
* script_event table has been completed, tests for wrapper functions implemented
* README updates
* reverted changes opened new PR to move withdraw struct outs
* intial work on adding withdraw support after merger of withdraw package
* started work on examples
* Added crypto withdraw support
* fix switch case assignment and gofmt project
* Reworking Fiat withdraw request pending #402
* removed double pointer call
* added withdraw support for fiat currencies
* added tests for withdraw methods increased readme
* removed local tengo require and also fix linter issues
* Added default log size const added basic test for invalid script execution
* First pass at moving wrapper to validator package to allow proper validation of uploaded scripts
* Added script details to README added config test added test for no file extension
* moved tests to const and fixed incorrect pathing
* added test coverage to withdraw package
* corrected file close handling
* point to included configtest.json
* extended validator support when a script is uploaded
* Bug fix on bool logic
* Added mutex
* Don't create autit events on test execution
* reverted common to master
* moved file rename to unix timestamp format
* converted logger enabled back to pointer as i need nilness check also moved scriptid to text over blob
* started work on autoload add/remove support
* First round of PR fixes (mostly commented exports)
* Moved GCTScript load to last, removed unneeded error from cleanup()
* Comment clairty for AuitEventID
* added autoload add/remove command to cli
* added tests for autoload
* Test updates for Exchanges
* linter fixes (gofmt)
* Removed double check of engine pointer
* remove possible nil pointer on GetSpecificTicker
* Fixed not closing file handler on write that causes archive removal to fail
* file handler Close clean ups
* corrected spelling on error return and return invalid name n autoload
* moved strings to cosnt moved bool pointer creation to convert package
* new zip extractor added
* Validation has been added to archive uploads
* removed shadow var on err
* added ok check to conversion
* converted condition check
* basic test for zip extract added
* new zip handler
* reverted back to old atomic loading system
* removed shadow err
* lets add a new line
* added space to error return
* command line toggle for script now works properly
* readme updated
* set configLoaded to true
* check for configLoaded condition
* added mutex to allow for multiple access on virtual machine increased test coverage disable script manager if scripting is disabled
* linked up to enable/disablesubsystem commands
* added start/stop example to readme
* reworked logic on test as check should be done on Load()
* updated to tengo v2
* linters
* lower time on ntp client to stop slippage
* remove all fails if any fail validtion from an archive
* remove vm from list if timer is invalid
* removed shadow on err
* remove config creation from NTPCheck test
* WIP testing DB changes
* add unique constraint
* WIP: created has many model
* linters run
* basic sqlite3 support added for new database format
* linters run
* Added test coverage for script repo
* removed unused print
* updated env vars for CI instances
* updated env vars for CI instances
* Updated test packages
* Test updates for postgresql
* removed invalid tests from postgres
* remove duplication of struct and improved code flow
* general cleanup
* wording changes on log output
* use databasemgr logger and add support for autoload without file extension
* corrected test naming
* return correct error
* return correct error again version 82
* store scriptdata on creation
* Hello
* Errorln -> Errorf
* Removed unused vars
* Read me updates
* testing without parallel
* comment on exported type
* added nil check against VM for test
* add debugging information
* gofmt
* remove verbose and data sent to channel
* Added debug information
* linter fixes (gofmt)
* remove unused CompileAndRun() call
* test sleep to see if issue is timing related
* semi-concurrent map fixes
* one day i will run gofmt or setup precommit hooks
* new line :D
* increased test coverage
* added correct sleep time
* Moved over to sync map
* linter fixes (gofmt)
* goimports
* moved VM related methods to vm.go
* new line at end of file
* trying increased timeout on golangci-lint for appveyor
* add debugging information
* removed timeout
* reworked timeout logic
* linter fixes (gofmt)
* increased test coverage
* increased test coverage
* one day i will run gofmt or setup precommit hooks
* removed unused exchange test
* increased golangci-lint timeout
* Added nil check on shutdown and test coverage for it lowered timeout back to 1:30
* reworked ID system
* removed script hash as it was unused
* added comments on exported methods and read me update
* reorder code
* removed to atomic.value for test execution flag
* increased test coverage
* move add further up execution
* point to correct script file
* Bittrex GetDepositHistory method return new DepositHistory struct type
* Id field of DepositHistory type changed to int64
* check exchange (exist and enabled) before calling methods on, to avoid program crashes
* Update bittrex_types.go
* Added Zip archive support
* extended test coverage
* extended test coverage for unzip and zip
* cleaned up Zip() and moved walk to non-exported method increased test coverage
* underscore unused params
* remove unneeded var
* check against correct error and return after
* Errorf
* z -> f
* fixed wording on tests
* handle fine handler close error
* Renames func. Creates new func to setup pinghander either via gorilla style or our own
* Cleans up all ping pong handlers.......
* Clears up issues, makes naming a bit better
* Adds tests
* Adds ping support to binance
* Cleans up ping pongs and adds a comment
* Cleans up waitgroup stuff.
* DISCREETLY cleans up woeful function
* Fixes Kraken ping message type. Removes unnecessary test property. Adds `if err == websocket.ErrCloseSent {` to ping func
* +1 for +v
* Adds new optional log field. Adds padding to the fields to make it have a consistent output
* Line space and correct err message
* Removes padding code
* Moves `ShowLogSystemName` to advanced settings
* Uppers the names. Prevents pointer crash. Adds to config_example.json
* Adds test scenario for nil and true ShowLogSystemName
* buffer reset
* bug fix for websocket orderbook processing
* Fix more panics
* fix linter issue
* kick panic can down the road
* temp fix for issue with a 404 returned error as chainz.cryptoid dropped eth support
* Address nits and fixed orderbook updating
* Fix trade data, rm'd event time from struct
* fix time conversion for huobi
* Actually process kline data and fix time stamps
* btse time conversion fix and RM log, as it seems that the gain is reflecting transaction side. Drop ticker fetching support because there does not seem to be support on docs. And added trade fetching support.
* revert huobi println
* Adressed suggestion
* rm unnecessary assignment
* rm unnecessary check and assign
* fix conversion mishap
* fix currency conversion bug
* update websocket logging
* RM websocket type which stops conversion and copy
* fix linter issue, add in unknown side type
* Start Coinbene SWAP implementation
* Flesh out more API endpoints
* Code cleanup
* Add more endpoints, bug fixes and order validation checks
* More endpoints, tests and bugfixes
* Remove omitempty for enabled/available pairs
* added id field to bank struct
* fixed casing on error message
* whitespace :D
* turns out you shouldn't turn multiple tests at the same time that modify a var
* moved to getticekers endpoint
* add support for tickerbatching
* const and things
* moved openOrders to bool
* gofmt and clean up test logs
* revert canManipulateRealOrders to false
* corrected param order Side -> Type, also corrected condition check for IsOrderPlaced
* send open status for GetActiveOrders
* GetActiveOrder() changes to include OrderID and status matching
* BTC Markets batch order limit fixes & SplitStringSliceByLimit method
BTC markets batch end points have limits (20 for cancel 50 for query) adds new method SplitStringSliceByLimit in common to split a slice by limit and return slice of slice
* rm line :D
* Added test for SplitStringSliceByLimit and moved to const
* ntp client reworked to not return error if no valid time servers are found but default to system
* clean up
* new line added
* use TimeMgr sublogger and wording correction on output
* Moved to DialTimeout() & Removed SetDeadline call
* removed line
* added setdeadline fix
* goimport file
* removed unused error from NTPClient as we now default to system time if no server can be reached
* Added checks for number overflows
* converted to uint as you should not be passing a negative number in
* Increased test cases for NTPClient
* Removed Helper call as no longer outputting any data from function
* removed unused param