* Initial codes for a trade tracker
* Moving everything in a broken fashion
* Removes tradetracker. Removes some errors for subsystems
* Cleans up some subsystems, renames stuttering types. Removes some global Bot usage
* More basic subsystem renaming and file moving
* Removes engine dependency from events,ntpserver,ordermanager,comms manager
* Exports eventManager, fixes rpcserver. puts rpcserver back for now
* Removes redundant error message, further removes engine dependencies
* experimental end of day interface usage
* adds ability to build the application
* Withdraw and event manager handling
* cleans up apiserver and communications manager
* Cleans up some start/setup processes. Though should separate
* More consistency with Setup Start Stop IsRunning funcs
* Final consistency pass before testing phase
* Fixes engine tests. Fixes stop nil issue
* api server tests
* Communications manager testing
* Connection manager tests and nilsubsystem error
* End of day currencypairsyncer tests
* Adds databaseconnection/databaseconnection_test.go
* Adds withdrawal manager tests
* Deposit address testing. Moved orderbook sync first as its more important
* Adds test for event manager
* More full eventmanager testing
* Adds testfile. Enables skipped test.
* ntp manager tests
* Adds ordermanager tests, Extracts a whole new subsystem from engine and fanangles import cycles
* Adds websocket routine manager tests
* Basic portfolio manager testing
* Fixes issue with currency pair sync startup
* Fixes issue with event manager startup
* Starts the order manager before backtester starts
* Fixes fee tests. Expands testing. Doesnt fix races
* Fixes most test races
* Resolves data races
* Fixes subsystem test issues
* currency pair syncer coverage tests
* Refactors portfolio. Fixes tests. Withdraw validation
Portfolio didn't need to exist with a portfolio manager. Now the porfolio manager
is in charge how the portfolio is handled and all portfolio functions are attached
to the base instead of just exported at the package level
Withdrawal validation occurred at the exchange level when it can just be run at the
withdrawal manager level. All withdrawal requests go through that endpoint
* lint -fix
* golang lint fixes
* lints and comments everything
* Updates GCT logo, adds documentation for some subsystems
* More documentation and more logo updates
* Fixes backtesting and apiserver errors encountered
* Fixes errors and typos from reviewing
* More minor fixes
* Changes %h verb to %w
* reverbs to %s
* Humbly begins reverting to more flat engine package
The main reasoning for this is that the subsystem split doesn't make sense
in a golang environment. The subsystems are only meant to be used with engine
and so by placing them in a non-engine area, it does not work and is
inconsistent with the rest of the application's package layout.
This will begin salvaging the changes made by reverting to a flat
engine package, but maintaining the consistent designs introduced.
Further, I will look to remove any TestMains and decrease the scope
of testing to be more local and decrease the issues that have been
caused from our style of testing.
* Manages to re-flatten things. Everything is within its own file
* mini fixes
* Fixes tests and data races and lints
* Updates docs tool for engine to create filename readmes
* os -> ioutil
* remove err
* Appveyor version increase test
* Removes tCleanup as its unsupported on appveyor
* Adds stuff that I thought was in previous merge master commit
* Removes cancel from test
* Fixes really fun test-exclusive data race
* minor nit fixes
* niterinos
* docs gen
* rm;rf test
* Remove typoline. expands startstop helper. Splits apiserver
* Removes accidental folder
* Uses update instead of replace for order upsert
* addresses nits. Renames files. Regenerates documentation.
* lint and removal of comments
* Add new test for default scenario
* Fixes typo
* regen docs
* port orderbook binance management from draft singular asset (spot) processing add additional updates to buffer management
* integrate port
* shifted burden of proof to exchange and remove repairing techniques that obfuscate issues and could caause artifacts
* WIP
* Update exchanges, update tests, update configuration so we can default off on buffer util.
* Add buffer enabled switching to all exchanges and some that are missing, default to off.
* lbtc set not aggregate books
* Addr linter issues
* EOD wip
* optimization and bug fix pass
* clean before test and benchmarking
* add testing/benchmarks to sorting/reversing functions, dropped pointer to slice as we aren't changing slice len or cap
* Add tests and removed ptr for main book as we just ammend amount
* addr exchange test issues
* ci issues
* addr glorious issues
* Addr MCB nits, fixed funding rate book for bitfinex and fixed potential panic on nil book return
* addr linter issues
* updated mistakes
* Fix more tests
* revert bypass
* Addr mcb nits
* fix zero price bug caused by exchange. Filted out bid result rather then unsubscribing. Updated orderbook to L2 so there is no aggregation.
* Allow for zero bid and ask books to be loaded and warn if found.
* remove authentication subscription conflicts as they do not have a channel ID return
* WIP - Batching outbound requests for kraken as they do not give you the partial if you subscribe to do many things.
* finalised outbound request for kraken
* filter zero value due to invalid returned data from exchange, add in max subscription amount and increased outbound batch limit
* expand to max allowed book length & fix issue where they were sending a zero length ask side when we sent a depth of zero
* Updated function comments and added in more realistic book sizing for sort cases
* change map ordering
* amalgamate maps in buffer
* Rm ln
* fix kraken linter issues
* add in buffer initialisation
* increase timout by 30seconds
* Coinbene: Add websocket orderbook length check.
* Engine: Improve switch statement for orderbook summary dissplay.
* Binance: Added tests, remove deadlock
* Exchanges: Change orderbook field -> IsFundingRate
* Orderbook Buffer: Added method to orderbookHolder
* Kraken: removed superfluous integer for sleep
* Bitmex: fixed error return
* cmd/gctcli: force 8 decimal place usage for orderbook streaming
* Kraken: Add checksum and fix bug where we were dropping returned data which was causing artifacts
* Kraken: As per orderbook documentation added in maxdepth field to update to filter depth that goes beyond current scope
* Bitfinex: Tracking down bug on margin-funding, added sequence and checksum validation websocket config on connect (WIP)
* Bitfinex: Complete implementation of checksum
* Bitfinex: Fix funding book insertion and checksum - Dropped updates and deleting items not on book are continuously occuring from stream
* Bitfinex: Fix linter issues
* Bitfinex: Fix even more linter issues.
* Bitmex: Populate orderbook base identification fields to be passed back when error occurrs
* OkGroup: Populate orderbook base identification fields to be passed back when error occurrs
* BTSE: Change string check to 'connect success' to capture multiple user successful strings
* Bitfinex: Updated handling of funding tickers
* Bitfinex: Fix undocumented alignment bug for funding rates
* Bitfinex: Updated error return with more information
* Bitfinex: Change REST fetching to Raw book to keep it in line with websocket implementation. Fix woopsy.
* Localbitcoins: Had to impose a rate limiter to stop errors, fixed return for easier error identification.
* Exchanges: Update failing tests
* LocalBitcoins: Addr nit and bumped time by 1 second for fetching books
* Kraken: Dynamically scale precision based on str return for checksum calculations
* Kraken: Add pair and asset type to validateCRC32 error reponse
* BTSE: Filter out zero amount orderbook price levels in websocket return
* Exchanges: Update orderbook functions to return orderbook base to differentiate errors.
* BTSE: Fix spelling
* Bitmex: Fix error return string
* BTSE: Add orderbook filtering function
* Coinbene: Change wording
* BTSE: Add test for filtering
* Binance: Addr nits, added in variables for buffers and worker amounts and fixed error log messages
* GolangCI: Remove excess 0
* Binance: Reduces double ups on asset and pair in errors
* Binance: Fix error checking
* End of day commit moving packages and setting foundation into how trade processing will go
* Conformity
* tdd candle generation based on received trade data, renames orderbookbuffer back to buffer for now...
* Formalises test functions and designs the trade processor
* Theoretical amending old candles to allow any trades that were part of an old processed candle to be more accurate. Saving of candles will only occur on previous cycles, extending memory usage a bit longer
* Figures out sqlboiler for sqlite. Updates websocket entries to process trade data
* One more trade data
* Adds more exchange support
* Adds PSQL stuff
* Begins creating sql implementation
* End of day commit. Helper functions and understanding sql usage in GCT
* Adds delete and cleans up table design
* Finishes trades conceptually. Awaits candle data update in order to translate trades to candles
* Initial handling of trades in coinbene
* Proto
* Fixing of some bugs, attempting to address coinbene asset type ws issues
* Fixes up coinbene websocket implementation for the most part
* finalises coinbene websocket implementation. Adds new ability to parse currencies without a delimiter
* Implements rpc commands and adds testing
* updates the following to be compatible with trade data update: Theoretical amending old candles to allow any trades that were part of an old processed candle to be more accurate. Saving of candles will only occur on previous cycles, extending memory usage a bit longer
* Changes trade to be its own entity rather than attached to a websocket.
* Adds coverage to trades. Changes signature of `AddTradesToBuffer` to return error. Now automatically shuts down without need for channel listening. Will automatically start up again if it gets data
* Implements trade fetching at the wrapper level for a bunch of exchanges. Adds trade id to script updoot. Probably breaking change
* Implements trade fetching for all wrappers hurray hurrah. Updates all the tests
* Adds new interface func to get recent trades. Ensures GetExchangeHistory continues until conditions are met
* Adds new readme, tests all new wrapper endpoints, updates exchange_wrapper_issues to test new endpoints. Updates exchange_wrapper_coverage with new coverage... Fixes lame bug causing wrapper tests to fail from being poorly setup. Adds loopy loop to ensure that all data is captured when requesting exchange history
* Bugfix on psql migrations. Rebases latest changes, updates table design to use base and quote, updates trades to use exchange_name_id
* Adds new config field for saving trades to the database per exchange. Now exits trade processing when trade saving is not enabled. Similarly for wrapper, does not save if not enabled
* Minor bitfinex trade fixes. continues on buffer processing errors, now saves transactionid to the db
* Adds support for generating candles from candlesextended. May extend it further, idk
* Updates trade candles to be able to fill missing data with trades. Adds more tests. Also does a thing where you can forcefully override a candle based on internal trade data instead of API data
* Fixes bug where force deletions did not follow up with insertions. Adds force to candle commands
* Fixes specific exchange based issues. Extends recent trades to 24 hours where possible
* Fixes issue with saved tests. Fixes tests for trades. Adds parallel to tests. Pre-fixes people's nits
* Adds new GRPC functions to find out what data is missing from trades and candles. Fixes some assumptions from missing period code.
* Adds unique constraint. Fixes up niggling issues for wrappers and websockets
* Fixes issues with using unix times in the database trying to retrieve data via the CLI. Reduces save time to 15 seconds
* Updates trades to use timestamps instead of int64 unix
* Adds missing FTX wrapper implementation. Regens docs
* Linting the linters. Updating readme
* Adds new command to set whether an exchange can process trades
* Doc update
* Adds recent trades and historic trade endpoints to grpc
* formats pair_test.go to appease linter gods
* Addresses data race. Removes logging of missing intervals on unrelated function (now that it has its own rpc command). The buffer time isnt customisable, but I don't feel it needs to be at a config level at all really.
* Fixes a few niterinos regarding spacing, type conversion, a weird Bitmex 0 trade value error, unsubscriptions and cli command references
* Reduces map lookups. Adds base func and moves wrappers to use it
* Uses better currency formatter. Adds time based validation to trade history. Reverts configtest.json
* Reverts config and updates test names. Also WAYYYYY LESS SPAMMY
* oopsie doopsie missed a whoopsie
* mint flavoured lint
* Fixes issues caused by rebase
* Fixes issue with timestamps not converting properly from command to RPCServer. Adds new error type. Adds shorthand entries to some commands. Removes os.Exit from tests. Makes Gemini test rolling. Adds enabled exchange check to RPC function. Escapes timestamp on bitstamp. Renames var
* fixes whoopsie oopsie doopsie I forgot to remove code shoopsie
* missed a line
* 🎉🎉 :tada:Breaks everything in an end of day commit 🎉🎉🎉
* Modifies function 'createlocaloffset' to return a string instead. Uses strings for all time based start and end commands. Uses UTC times in RPC server and updates SQLITE to use formatted time based queries
* Adds concurrency-safe way of changing SaveTradeData and checking it. Fixes embarrassing typo
* End of day fix, adds bitfinex update to loop until either the return trades shows no new dates, or meets specifications. Fixes egregious typo
* Improves testing and handling of historical trades function
* Fixes tests after latest changes
* Fix potential fatal err now that db is enabled in test config now
* Fixes up some database settings to use a local engine instead of global var
* DELICIOUS LINT CHOCOLATE FIXES
* Fixes data race by slashing competitor's tyres
* Adds mock test fixes to allow for live and stored data test
* Removes verbosity in engine level tests. Adds new timezone format to highlight the timezone for RPC functions. Removes reference to Preix index fund
* Oopsie doopsie, fixed a whoopsie
* Loggers can no longer do data drag races on my lawn 👴
* Removes bad lock
* Addresses command nits. End of day conceptual commit, trying to calculate spans of time in the context of missing periods. Tests will fail
* Adds new stream response for retrieving trade history as it can take time to do. Unsuccessfully attempts to simplify time range calculation for missing trades response
* Adds new timeperiods package to calculate time periods, time ranges and whether data is in those ranges. Removes kline basic implementation of same concept
* Fixes lint issues. Fixes test. Moves trade cli commands to their own trade subcommands
* Updates lakebtc to no longer have gethistorictrades as it is unsupported. Adds more validation to rpc functions
* Removes requirement to have trades when testing trade wrapper functions. Doesn't really prove it works if there are no trades for a given currency in a time period.
* Addresses nits, runs linting fix and ensures a test is consistent
* Fix merge issues
* Moves sort to timeperiods. Adds test coverage. Fixes typo
* Removes log package in CLI
* Fixes `GetTrades` url
* Reorders all instances of validation occuring after settingup RPC connection
* Fixes test to ensure that it is setup before testing that it is setup
* Fixed issue with bool retrieval. Removes double append
* Fixes Binance times, fixes bitfinex sell sides, fixes huobi times, sorts all responses
* Fixes poloniex trade id consistency. Makes recent trade for poloniex consistent with others (15 minutes). Fixes coinbene. Fixes localbitcoins to use quote currency. Fixes coinut times. Updates huobi trade id, saves okgroup trades. Fixes bid and ask to buy and sell
* Removes websocket trades for lakebtc as it did not meet our requirements for processing. Adds new constraints to the database to ensure we have uniqueness on trades where ID doesn't exist and doesn't trigger errors for trades where the tid does
* Fixes migration for postgres to downscale properly
* Really really fixes the psql index changes
* Fixes broken tests
* Now with working tests and no pocket lint
* Makes the side column nullable with no more constraint for it. adds migrations and runs generation. comments lakebtc
* Lint & Sprüngli
* Updates zb to use more appropriate side
* Fixes oopsie
* Attempts to address a data race from globals
* Fixes build
* Fixes missed regen rpc files
* Updates readme to point to trade readme. Fixes exchange_wrapper_coverage wrapper count and untested panics, tests bitfinex funding pair test for `fUSD`, adds shiny new param `tradeprocessinginterval`
* mint flavoured lint
* Uses the real default to set the default value by default
* Fixes some extra tests surrounding email sending and number incompatibility
* Reverts test config
* re-adds gom2/usdt currency
* Fixes typo, don't look!
* Fixes minor codelingo pickups
* Adds more precision to handling of trade data from Kraken. Expands test
* interface christmas tree
* lint
* Remove pointer reference
* Fix portfolio withdraw tests
* Add nil protection in validator method to reduce prospective panics and for future outbound checking
* Updated tests
* ch order var to not ref package
* rm comparison
* Add order ID validation check
* Add exchange name validation check
* Add in test details
* fix tests
* fix linter issues
* linter issues strikes again
* linter rabbit hole
* Addr nitterinos
* Add validation variadic interface to define sets of functionality check POC
* didn't want to add an amount other than 0, didn't want to add address to exchange withdraw, didn't want to whitlist, can change if need be
* add coverage
* Add validation method options for exchange wrappers and abstracted validation into its own package
* Add validation code for structs in exchange template generation
* remove extra validation call as this is done in wrapper
* fix niterinos for examplerinos
* Add template to documentation tool and regenerated documentation
* Addr niticles
* Fix tests due to validation update
* Add more validation checks for modify/submit orders
* update tests
* fix more tests
* Add asset type to submit variable in tests and rpc call. Regen funcs.
* Add field to modify struct in tests
* applied field asset to cancel struct across project
* fix woopsy
* Initial changes, removing exchange name as an arg and puts it in the pointer struct. Adds case to ws routines
* Adds CancelAllOrders func, adds GetByExchangeAndID. Adds modify handler in routines.go
* initial poor attempts to have bitmex work with new datahandler handlers. fixes ordersides
* bitmex Completes new order
* Better bitmex handling, but not complete. Begins a gargantuan task of unifying order data structs. Sometimes an order update will contain lot's of information, so its best to be able to update all fields of our orders, rather than just an arbitrary subset. As a result, everything will be broken for the foreseeable future :glitch_crab:
* Removes old order handler which did nothing. Updates order properties for everything everywhere - now consistent. Changes order status. Adds asset type and wallet address to all order types
* Adds order updater to update only relevant fields since the object is generic, we don't know what fields are passed from what exchanges. Adds "lastupdated" field to order.Detail. Expands order cancellation for engine orders.
* Ensures that new orders are added to the ordermanager's order store. Saaa many comments. Internalises orderStore get func. Adds internalOrderID to orderdetail and adds websocket support for it
* Fixes a cancelAllOrders oopsie doopsie
* Adds potential func to update orderdetails from an orderdetail struct. Unsure if will keep.
* Begins btcmarkets implementation. Expands order "stringToOrder" funcs to allow for some more flexible string coversions. Removes order.Submit via websocket as it would cause unlimited order place issues :D
* Finishes btc markets without testing
* Adds untested ws auth func to btse
* Finises btse, fixes btcmarkets bug
* Adds coinbasepro support
* Fixes a few more fields in coinbase pro and readds the extra subs
* Begins work on coinbene. Plus theyve added a new ws connection yeee
* Wasted a bunch of time adding support to an additional websocket that isn't needed ;_; Fixed a bug in coinbasepro. Fully kitted out coinbene support. Updates order types with all fields
* Removes extra websocket connection ;_;
* Finishes gemini. Fixes order side unknown
* Adds okgroup support. Moves byte reading to another function to allow for unit testing. Updates routines to use pointers. Updates date update handling for order details
* Finishes order data for okgroup websocket, but starts the STRANGE process of converting all other websocket endpoints to be a little less silly
* Cleans up okroup websocket implementation. Fixes bug in Gemini
* Adds poloniex support. Updates ws order handling
* new bitmex support. Adds some tests now that its all in its own func. Fixes poloniex bug
* Begins work on authenticated binance websocket
* Attempts to track user data via binance websocket
* Maybe finishes Binance websocket support
* Begins adding test coverage to orders.go. Updates names of script properties to match updated
* Begins an experiment with code coverage. Fixes more rebase issues
* Completes orders coverage. Botches a few other things though. Fixes more scripting stuff
* All tests in engine package pass
* Adds some loevely routine tests
* Moves ordermanager to test Bot ordermanager
Adds lovely routine tests to ensure things that get sent to be handled the data handler are handled by the data handler by handling them
* Replaces "wsHandleData" with "wsReadData" as that's what its going to do now.
* Splits all wsHandleData into wsReadData and wsHandleData to allow for easy testing via sending []byte json examples to test proper functionality. Breaks so many tests
* Fixes majority of test issues. But data races which are tough on the engine package
* "Fixes" test by removing shutdown test. It interferes with too many things. Requires some thought
* Tests all the binance websocket points
* Adds better bitfinex websocket support.
* Adds testing for bitfinex, bitstamp and btcmarkets. Fixes websocket bugs encountered
* Adds BTSE ws tests. Fixes bugs in ws
* Adds coinbase pro tests. Fixes any issues
* Coinbene tests
* Starts to handle coinut. Runs into a problem conceptually regarding websocket roundtrip and orders. Both events need to happen without impacting eachother/racing
* Addresses a data race issue regarding websocket and bot order management submission - order submission locks at an earlier point to prevent routines.go from creating an order before order submission creates it. Updates rpcserver to use order management bot to submit orders.
* Finishes the hectic coinut testing
* Adds tests for gateio
* Fixes rebase issues. Updates tests to work without being overloaded
* Begins testing of gemini. fixes up minor issues
* ginishes gemini tests and fixes
* Adds hitbtc tests. Fixes all the many issues with hitbtc websocket
* Adds remaining tests. Increases default test channel limit again
* Begins work towards huobi tests
* Finishes huobi tests
* Fixed all mythical rebase adventures
* Begins kraken transformation
* Finishes kraken. Fixes coinbene leverage now that its changed
* Begins okgroup testing
* Adds okgroup ws tests
* Does some poloniex
* Fixes basic curreny issue by extracting to func
* Begins redesign of poloniex websocket datahandling. Completes authenticated handling, now onto unauth
* Finishes poloniex revision
* Finishes ZB additions
* Fixes data races
* Fixes rebase issues. Fixes bad kraken logic
* Fixes after reviewing code
* lint everywhere
* Fixes lingering lints
* lint
* Adds test coverage to order detail and modify updating
* Fixes linting
* Fixes huge int, fixes date tests
* Adds GetByExchange, adds test for it. Protects fakepass echange. Renames DisplayQty to DisplayQuantity. Removes verbose. Adds some websocket properties. Updates bitmex asset type in test
* Addresses timestamps, type abbreviations, verbosity. Expands binance kline switch cases. Updates some websocket capabilities.
* Adds coverage to the stringToOrderType/Status functions introduced in PR
* Minor fixes addressing some time, error text and use of StringDataCompareInsensitive
* Introduces shiny new system which checks if there is an awaiting ID, if found, processes via wrapper method, else, goes through wsHandleData method. Removes weird locking system from wrapper/websocket data race. Updates bitfinex to properly handle websocket order requests and notifications
* Moves fakePassingExchange to test_helper. Fixes some order side implementations for trades. Botches a new error type
* Adds new error type to track and handle order classification errors separately
* Fully fleshes out ClassificationError for all instances of status conversion. Even in order trades and some wrapper functions
* Introduces common.SimpleTimeFormat for "2006-01-02 15:04:05". Fixes binance and bitfinex issues with auth endpoint use, map casting. Expands more order.ClassificationError usage. Fixes some more generic websocket response errors
* Future proofs order updating by utilising asset types. Expands testing to accomodate. Adds shiny new time type. Expands wrapper websocket functionality definitions
* minty linty
* Broken end of day code addressing basic nits on comments, returns and currency conversion
* Adds testing to btcmarkets websocket. Also updates websocket orderbook to use update instead
* Fixes fun rebase fun fun so fun
* Addresses minor nits regarding changed interface and comments
* Creates new function `GetRequestFormattedPairAndAssetType` to retrieve a currency pair and asset type based on a string. It will iterate over enabled pairs and compare them to formatted pairs and then return that pair if found.
* Fixes test
* Adds a single line to the end of the file, because that would be really bad if it wasn't there
* Updates fakepassexchange to not use params, updates test params, uses fatal in some tests where its important, updates order manager to have a rwmutex, removes some returns, improves ws key test for binance, updates properties to reflect their actual values, adds some more websocket properties
* Addresses binance switch linting
* Updates leverage property to int64
* Fixes what was broken
* reworked request struct and exchange response started work on validation system
* removed import cycle until work around
* Added intial withdraw support via CLI added
* Added Crypto command to gctcli
* moved var declartion to single line
* Test updates for binance and anx
* All exchange tests have been updated test coverage added to validate
* First pass at adding withdrawl select from database
* 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
* corrected ID on commands
* rm line :D
* merged in origin/cache
* linter fixes (gofmt)
* Added basic cache lookup to events
* swapped to mutex over rwmutex updated comments
* unexported getNewest & getOldest
* unexported getNewest & getOldest
* Updated comments and cited references in source
* updated comments
* WIP
* Migrated exchange WithdrawFiat wrapper to new struct response
* Migrated exchange WithdrawFiat wrapper to new struct response
* started work on bank management
* Added exchange level banking details back with migration to banking package
* Removed broken tests for now
* Added validation to bank accounts
* removed duplicate bank details from withdraw struct
* Test coverage increased
* gofmt
* merged upstream/master with clean up
* First pass at adding command line linking to gctcli
* added validation for crypto address, added gctcli support to retreive previous withdrawal requests
* general cleanup
* general cleanup
* reordered imports
* Increased test coverage moved to database sublogger
* Pass incorrect currency no longer return error from c.CheckBankAccountConfig
* remove TestMain() for now as other tests in this package will need to be reworked
* Happy little race car
* Reverted to upstream tests
* Added test covarege for validation method, corrected response on cli protobuf
* query clean up and removal of duplicated code
* cleaned up queries into singlem ethod increased test coverage
* Migrated international fund withdraw to new exchange response and added cache size override
* Migrated international fund withdraw to new exchange response and added cache size override
* Extended gctcli commands
* lowered default cache to 25
* small code clean up
* added get by date method
* add returned error
* cli commands cleaing return error on nil results to fix out of bounds
* merged write & read helpers into one for test coverage and increased engine/withdraw test coverage
* gofmt
* Added test coverage for valid ID
* removed unused param
* converted to use timestamp package from protobuf
* gofmt
* use built in RFC3339 timestamp
* remove setting of CreatedAt & UpdatedAt and allow ORm to take care of it
* also use ptype on byid
* code flow improvements
* remove inverse conditional check and linters run
* removed test data
* removed comment
* removed comment
* also write failures to database for auditing
* converted to use default time for start & end
* Default to time.Now() minus 30 days
* Default to time.Now() minus 30 days
* small code clean up
* fixed missing semicolon on migrations, code clean up
* updated sqlite migrations
* Added additonal check for exchange level bank account if global is not found
* case sensativity fix for currency names
* use correct compare
* test coverage fixed
* removed space
* return pointer to banking.Account
* return pointer to banking.Account
* added else check back to validate()
* Added empty string as default to migration over NULL due to retrivial of data
* 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
* 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
* Basic concept commit
* Initial changes to support bitfinex v2. Reverts linter changes as they suck. Exports bitfinex ws types
* Adds ticker, trade and orderbook support
* Candles sub that returns no data COMPLETE
* Adds authenticated ws support
* Adds the barebones endpoints to support
* Adds more endpoints
* Even more endpoints
* minicommit to switch and test
* All the interactive types
* Adds support for simultaneous connections. Updates tests. Nothing is working
* Successfully adds place order. Moves all authenticated endpoints to new switch case
* Cancel order and modify order
* Cancel all orders, cancel multi orders
* Finalises implementation. Uses testMain
* Adds WS wrapper support for some funcs
* Fixing rebasing issues
* Replaces use of currency as a variable. Updates a lot of coinut websocket auth endpoint stuff
* Fixes some fun for loops with GetEnabledPairs
* Fixes tests impacted by currency var change
* Adds coinut support for WS functions. Replaces `order` vars with `ord`. Fixes some for loops too. Removes verbose from bitfinex
* So many panics
* I'm fixing a hole, where the panics get in, and stops my mind from wandering, where it will go
* Moves func `CanUseAuthenticatedWebsocketEndpoint` to Websocket package as it fits better. Adds test coverage of `CanUseAuthenticatedWebsocketEndpoint`
* Finishes up all of coinuts ws implementations.
* GateIO implementation
* Adds some helper funcs for types, sides and status. Adds support for huobi. Removes unnecessary type
* Adds forgotten huobi endpoint
* Fixes cancel order endpoint
* go hates my formatting and so do I
* The process to get authenticated kraken websocket to work. Uses testmain. Adds new auth channel, auth subscriptions, auth data handling. Not working yet
* Finishes open orders handling
* Mini update for status only updates
* Fixes some kraken points
* Finishes WS kraken since it doesn't work
* Unfinished commit, cleaning up types
* Finishes the const replacing
* Fixes extra GetNAmes after rebase
* An end to the cleanup. testmain for gateio
* Adds ZB support
* Bitfinex cleanup. Renamed func
* Testmain-47s for everyone!!! yayaaaaaaa
* Adds kraken websocket wrapper support
* Fixes rebase issues
* Fixes tests from rebase
* Adds test for conversion. Fixes for loop. Updates test order pricing. Fixes some poor made tests. Adds proper error handling for ws responses instead of logging them. Fixed issue where commented code ruined kraken ws.
* Fixes secret linting issues. Prioritises bitfinex channelID responses over authorised
* Fixes sloppy error/var declarations
* Fixes crazy bad logic where submit order errors weren't really considered. Parralols alphapoint/alphapoint_test.go. Removes buffer for multi-websocket comms channel.
* Removal of inline string and removal of redundant nil checkerinos
* Fixes err checks. Checks whether float has decimal. Fixes append. Drops omitempties. Parallel to some tests. Moves var declarations
* Replaces my lazy sprintfs with strconv.FormatInt(time.Now().Unix(), 10)
* Adds shiny new FullyMatched bool. Fixes coinbene buy sell consts
* Fixes oopsie with coinbene const replacement
* Fixes currency issue
* Cleans up new places that use JSONDecode
* Fixes huge panic bug from string int conversion. Adds large testtable for strings to order types
* Fixes some more strconversion issues. Fixes table test var usage. Changes mapperino name
* Added some new scenarios for number splitting
* Fixes lint issues
* negative num fix
* Typo fix
* Accuracy warning comment
* Attempts to update orderbook so it doesn't need to sort
* Reverts the ws ob stuff. Gets rid of sorting because it happens later. Adds some exchange features
* update existing feature lists. Expands list definition to match my emotions
* Adds bithumb bitmex and bitstamp. adds a couple more types
* Features for you, features for me, features for bittrex, btcmarkets, btse, coinbasepro, coinut, exmo, gateio and gemini
* Features for hitbtc, huobi, itbit, kraken, lakebtc, lbank, localbitcoins, okcoin, okex, poloniex, yobit, zb
* Who can forget good old alphapoint?
* Adds btcmarksets websocket :glitch_crab: fixes alphapoint features
* Adds extra data not in the documentation :/
* Replaces websocket features by using protocol features. However, it breaks it due to import cycles. I'm not sure what I'll do just yet
* Removes import cycle via duplicate structs.
* Increases coverage of config with `TestCheckCurrencyConfigValues`. Moves all currency pair package types into their own files or places it at the bottom of files if necessary
* Increase coverage in code.go
* One way of determining a test has failed, is when to it fails. Removed redundant explanation
* Increases code coverage of conversion
* Lint fixes
* Fixes orderbook tests
* Re-adds sorting because its important to still have the internal pre-processed orderbook to be representative of a real orderbook
* Secret lints that did not show up via Windows linting
* Adds protocol package to contain exchange features
* Fixes protocol implementation
* Fixes ws tests
* Addresses the following: Removes st-st-stutters in config types, changes GetAvailableForexProviders -> GetSupportedForexProviders, removes errors from tests where error is nil, removes orderbook setup when not necessary, removes import newlines, removes false bools from declaration, changes should of to should have
* imports and casing
* Fixes two more nil error checks
* Fix bug where on parsing an alternate new config it will overwrite main config.json in gct dir
* Stop movement of config.json file from root dir when a new config is parsed in
* Stop overiding config.json at gct dir with new config.json from root directory
* RM LN :D
* Fix bug where promptforconfig in config_encryption.go overwrites default config
Ensure periphery command packages do not interact or save over configuration
Ensure tests to not save over or change current testdata/config
* Really basic getSimulated fee function everywhere
* Worst case fees for all exchanges
* Adds tests, fixes comment spacing. Adds wrapper logic. Makes test api key var name consistent. Removes some okcoin ETT tests
* Removes redundant functions
* linting issues. Fixes introduces huobi issues
* More linting
* Stops trying to hide ETT problems, uses iota
* Skips ETT tests for now
* updated golangci config to enable hugeparam linter
* ModifyOrder struct usage converted to a pointer
* OrderBook conversion to struct
* More conversion of large structs to pointers
* updated golangci config to enable hugeparam linter
* ModifyOrder struct usage converted to a pointer
* OrderBook conversion to struct
* More conversion of large structs to pointers
* disabled hugeParam check for golang again
* changed based on suggested feedback and fix for no default provider
* fixed typing
* Updated SetAPIURL() & UpdateConfig() to use pointers
* Withdraw functions now take a pointer to withdrawrequest struct
* Fund Withdraw is now a pointer
* Moved GetFee functions to use a pointer due to large size of feebuilder struct
* OrderCancellation usage converted to pointer due to size of struct
* merged up upstream/master and changes made to OKgroup code
* GetOrdersRequest usage converted to a pointer
* okgroup pointer migration
* reverted golangci config back to master
* removed old anx benchmark typo
* Initial currency overhaul before service system implementation
* Remove redundant currency string in orderbook.Base
Unexport lastupdated field in orderbook.Base as it was being instantiated multiple times
Add error handling for process orderbook
* Remove redundant currency string in ticker.Price
Unexport lastupdated field in ticker.Price
Add error handling for process ticker function and fix tests
* Phase Two Update
* Update translations to use map type - thankyou to kempeng for spotting this
* Change pair method name from Display -> Format for better readability
* Fixes misspelling and tests
* Implement requested changes from GloriousCode
* Remove reduntant function and streamlined return in currency_translation.go
* Revert pair method naming conventions
* Change currency naming conventions
* Changed code type to exported Item type with underlying string to reduce complexity
* Added interim orderbook process method to orderbook.Base type
* Changed feebuilder struct field to currency.Pair
* Adds fall over system for backup fx providers
* deprecate function and children and fix linter issue with btcmarkets
* Fixed requested changes
* Fix bug and move mtx for rates
* Fixed after rebase oopsies
* Fix linter issues
* Fixes race conditions in testing functions
* Final phase coinmarketcap update
* fix linter issues
* Implement requested changes
* Adds configuration variables to increase/decrease time durations between updating currency file and fetching new currency rates
* Add a collection of tests to improve codecov
* After rebase oopsy fixes for btse
* Fix requested changes
* fix after rebase oopsies and add more efficient comparison checks within currency pair
* Fix linter issues
* Adds signature to all exchange wrappers
* Adds funky new OrderHistoryRequest type. Updates signature for GetOrderHistory to use funky new type. Adds tests for GetOrderHistory on all exchanges. Implements GetOrderHistory for ANX
* Fixes alphapoint, bitstamp, itbit, zb tests. Adds exchange functions FilterOrdersByStatusAndType, FilterOrdersByTickRange, FilterOrdersByCurrencies to easily filter returned orders. Adds tests for filters. Implements GetOrderHistory wrapper for Binance, bitfinex, bithumb, bitmex. Adds new filter funcs to implementations.
* Adds bitstamp wrapper support
* Splits up GetOrderHistory into GetOpenOrders and GetOrderHistory wraapper functions to distinguish between active and past. Renames exchange.GetOrderHistoryRequest to exchange.GetOrdersRequest. Renames any API exchange method named GetOpenOrders to GetActiveOrders. Adds test function TestGetOpenOrders for each exchange
* Reimplements the split GetOrders and GetOrderHistory for alphapoint, anx, binance, bitfinex, bithumb, bitmex, bitstamp and bittrex. Renames orderType, orderStatus constants. Adds new exchange.FilterOrdersBySide and exchange.FilterOrdersByType and removes old exchange.FilterOrdersByStatusAndType.
* Changes orderHistoryRequest to use currencypair array instead of strings, also adds fees and trade breakdown. Removes if statement preventing ANX/BTCMarkets testing. Implements Active order + Order history retrieval for Bittrex and BTCMarkets.
* Adds support for coinut and coinbasepro
* Adds Exmo support
* Adds GateIO support
* Adds Gemini support
* Adds hitbtc, huobi, hadax, itbit, kraken support for open orders & order history. Fixes switch case break and fallthroughs. Adds filtering to gateio and gemini results
* Adds support for LakeBTC, Liqui, Localbitcoin, OKCoin, OKEX
* Adds poloniex support
* Adds Wex support
* Adds Yobit support. Updates Wex support
* Adds ZB support. Removes ArrangeActAssert from tests
* Changes baseCurrency + quoteCurrency exchange.OrderDetail properties to a pair.CurrencyPair. Adds exchange name to all implementations. Fixes EXMO TestSetup
* Removes verbose setting from tests as verbosity increases the amount of noise return when testing. Noise is only helpful when debugging tests to get more helpful information to resolve the issue and so it is unnecessary to have such lengthy output when testing in bulk or via Travis CI. This commit therefore improves readability when there are no issues
* Fixes issue where gemini test sandbox api url was overridden. Handles blank response from Gemini
* Fixes verbose typo
* Removes spacing for old act assert test comments. Limits previous infinite loop to 10
* Fixes issue with filtering where orderside is never specified
* Uses proper capitalisation for ServerOrderID and OpenOrders. Reverts commenting out orde_id param for bithumb.GetOrderDetails. Removes unnecessary int logic
* Removes JSON ID fields. Uses map where appropriate for exchange order side/type. Updates OrderDetail/GetOrdersRequest type to use time fields. Remvoes comments. Removes inappropriate variable name. Adds AccountID field for alphapoint. Fixes log message formatting. Lowers errorfs to warnfs for time conversion
* Adds missed files
* Removes blank line
* Adds sorting options for orders. Adds concurrency warnings in comments. Adds test for NewCurrencyPairWithDelimiter. Removes (e *Base) from filter funcs. Updates references to filter funcs
* Fixes rebase issues. Condenses append loops.
* Fixes more receive typos. Removes some inline strings. Adds AskOrderSide and BidOrderSide. Removes hypothetical infinite loop
* Fixes issue where allTrades wasn't used in loop. Fixes assignment/typing issues
* Fixes formatting
* Add get deposit address and fix authentication issue for ZB exchange
* Add get deposit address for Yobit exchange
* Add get deposit address for Poloniex exchange
* Add get deposit address for LocalBitcoins exchange
* Remove support for deposit address on Liqui exchange
* Add get deposit address for LakeBTC exchange
* Add notes as to the reason of non implementation
* Add get deposit address for Kraken exchange
* Add get deposit address for HitBTC exchange
* Add get deposit address for GateIO exchange
* Add get deposit address for Exmo exchange
* Remove support for deposit address on Coinut exchange
* Add test case for BTC Markets function still not supported yet.
* Add get deposit address for Bittrex exchange
* Add get deposit address for Bitstamp exchange
* Add get deposit address for Bitmex exchange
Rm unused swagger.json file in Bitmex exchange
* Add get deposit address for Bithumb exchange
* Add get deposit address for Binance exchange
Fix bug in Authenticated requests, concatenates sig string on end of query
* Remove support for deposit address on ANX exchange
* Updated account type to segregate multiple accounts on an exchange.
* Fix requested changes
* Add get deposit address for Bitfinex exchange
Add parameter for getting deposit address to wrapper
* Add get deposit address for ANX exchange
* Fix misspelling in Poloniex
* Drop working field and initialisation of zero value for Account Type
* Change switch to symbol package currency code
* Adds tests for withdrawFiat and withdrawFiat to international bank to all exchanges
* Sets unsupported where FIAT withdrawal not allowed
* Updates test signatures. Adds support for bitfinex FIAT withdrawals. Adds withdrawal type of NoFiatWithdrawals. Updates exchange wrapper implementations to return errnotsupported when... not supported. Updates withdraw permissions tests to reflect nofiatwithdrawals. Adds intermediary bank support in withdrawRequest type struct
* Adds bithumb and bistamp fiat withdrawl wrapper support
* Adds BTCMarkets withdrawal support
* Adds kraken withdraw support (uses existing methods)
* Fixes line issue from rebase
* Updates notsupported for localbitcoins and okex. Updates withdraw permissions for liqui
* Adds coinbasePro withdraw support. Fixes withdraw permissions tests for liqui and localbitcoins
* Removes unnecessary data from test structs for fiat withdrawal tests
* Readds intermediary bank flag
* Removes reference
* Improves bitfinex testing, improves withdraw fiat error handling
* Reverts Kraken hardcoded testing value
* Initial commit
* Updates signature for all withdrawal methods to use new withdrawRequest struct type
* Implements crypto withdraw features & tests for Alphapoint, ANX, Binance, Bitfinex, Bitflyer, Bithumb, Bitmex, Bitstamp, Bittrex, BTCC, BTCmarkets, CoinbasePro, Coinut. Updates WithdrawRequest type with more members. Breaking change to update real order testing for increased code coverage
* Updates all realOrder tests to run when no API key is present. Updates exchange functions to handle errors better
* Implements crypto withdrawals for Exmo, GateIO, Gemini, HitBTC, Huobi, HuobiHadax, Kraken, LakeBTC, Liqui, Localbitcoins, OKCoin, OKEX, Poloniex, Wex, Yobit and ZB. Updates real order test formatting for all real order tests
* Update alphapoint. Fixes anx typos. Adds function WithdrawFiatFundsToInternationalBank to exchange wrapper interface. Adds WithdrawFiatFundsToInternationalBank to alphapoint, bitmex, coinbasepro. Updates Kraken to use TradePassword property
* Reverts alphapoint to use ErrNotYetImplemented
* Fixes line spacing and removes unnecessary line
* Changed IBotExchange interface ModifyOrder function paramater and return value to exchange type for easier addition or retraction of variables.
* Function ModifyOrder for Binance not supported via API
* Change to unsupported function for exchange ZB
* Change to unsupported function for exchange Yobit
* Add modify order support for Poloniex
* Change to unsupported function for exchange Okex
* Change to unsupported function for exchange Localbitcoins
* Change to unsupported function for exchange Liqui
* Change to unsupported function for exchange LakeBTC
* Change to unsupported function for exchange Kraken
* Change to unsupported function for exchange Itbit
* Change to unsupported function for exchange HuobiHadax
* Change to unsupported function for exchange Huobi
* Change to unsupported function for exchange HitBTC
* Change to unsupported function for exchange Gemini
* Change to unsupported function for exchange GateIO
* Change to unsupported function for exchange Exmo
* Change to unsupported function for exchange Coinut
* Change to unsupported function for exchange Coinbase
* Change to unsupported function for exchange BTCMarkets
* Change to unsupported function for exchange Bittrex
* Change to unsupported function for exchange Bitstamp
* Add modify order support for Bitmex
* Add verbose header information in request package
* Add modify order support for Bithumb exchange
* Change to unsupported function for exchange Bitflyer
* Change to unsupported function for exchange Bitfinex
* Change to unsupported function for exchange ANX
* Change interface function signature
* Rm redundant code for authenticated requests in Bithumb
* Add error check if decimal values supplied for create or modifying an order on Bitmex
* Added test functions across the exchanges
* Rm comment for modify order on Alphapoint exchange
* Update tmpl file for exchange wrapper
* Changes method signature for cancelling all orders (experitmental). Implements cancelAllOrders wrapper for alphapoint, anx, binance
* Implements cancel all wrapper for bitfinex, bitmex, bitstamp, bittrex, btcmarkets, coinbasepro and hilariously coinut
* Changes method signature to only use one OrderCancellation type. Adds support for Exmo, gateio, gemini, itbit, lakebtc
* Adds/updates support for hitbtc, huobi, hadax, itbit and kraken
* Adds support for liqui, localbitcoins, okcoin, poloniex, wex and yobit. Splits up open order methods for poloniex
* Adds bithumb, okex and zb support. BTCC for another PR
* Updates bitflyer, bithumb, bitmex, coinut, okex and zb cancelAllOrders method to cancel via enabled currency pairs rather than a singular currency
* Adds tests to all exchanges to test wrapper function CancelAllOrders
* Fixes OKEX and huobi, btcmarkets, kraken, okCoin cancel order implementations
* Fixes coinut, hitbtc and okex api for authenticated requests
* Fixes comment and spacing
* Changes the CancelAllOrders signature to return orderids and errors along with a generic error.
* Fixes OKEX delimiter
* Removes spacing and test verbosity
* Removes more spacing
* Removes space
* Fixes okex rebasing issue. Also makes the maps instead of assuming they just work
* Added untested [cloudflare issue] changes to accountinfo for ANX
* Add alphapoint comment for future implementation
* Adds GetAccountInfo for Binance
* Adds GetAccountInfo update for Bithumb
* Updates GetAccountInfo for GateIO.
Adds error handling feature for authenticated requests.
* Updates GetAccountInfo function for Huobi.
Adds function for getting account ID.
* Updates GetAccountInfo function
Adds GetAccountID function
* Updates GetAccountInfo [un-tested, no access to keys at this time]
* Updates GetAccountInfo for Kraken
* Updates GetAccountInfo func for OKEX
* Updates GetAccountInfo for exchange ZB
* Updates GetAccountInfo func for Bitmex
* Updates GetAccountInfo func for Coinut
* Updates GetAccountInfo for ANX exchange
* Fixes incorrect hold currency issue
* Fixes type name
* Fixes issue with unneeded code in wrapper for Bithumb
* Change strings to type symbol string
* Fixes nit for Gateio
* Fixes GetAccountInfo issue
Fixes SpotCancelOrder issue
* Reimplements order cancellation for alphapoint, anx, binance, bitfinex, bithumb, bitmex, bitstamp, bittrex, btcmarkets, coinbasepro, coinut, exmo, gateio, gemini, gitbtc, huobi, hadax, itbit, kraken, lakebtc, liqui, okcoin, okex, poloniex, wex, yobit and zb wrappers. Adds new order cancellation struct type. Updates old tests that pointed to the wrong unrenamed methods
* Sets up tests for all supported exchanges. request.DoRequest errors when response status is not 200
* Updates alphapoint, coinut, hitbtc, lakebtc cancel order implementations. Finishes testing
* Adds localbitcoin cancel order wrapper support
* Fixes tests and build issues. Adds WexIssue flag for tests
* Changes CancelOrder signature to only return error. Allows exchange to format currency pairs with delimiters
* Sets up Alphapoint and ANX wrappers to use exchange implementations of submit orders
Creates const types for orderType and orderSides
* Changes wrapper func SubmitExchangeOrder return type to string to account for GUID order ID responses
* Adds binance and bitfinex new order wrapper support. Fixes alphapoint order wrapper.
* Adds bitflyer type for exchange order. Adds bithumb and bitmex wrapper support for SubmitExchangeOrder
* Fixes bitmex typo. Adds bitstamp, bittrex, coinbasePro, coinut SubmitExchangeOrder wrapper support
* Maps exchange wrapper function 'SubmitExchangeOrder' to exchange methods for exmo, gateio, gemini, hitbtc, huobi, huobihadax and itbit
* Maps exchange wrapper function 'SubmitExchangeOrder' to exchange methods for kraken, lakebtc, liqui, okcoin, okex, poloniex, wex, yobit and zb
* Updates interface, fixes wrapper type mismatch and fixes tests from changed parameters
* Adds generic support for SubmitExchangeOrder for localbitcoins_wrapper
* Updates wrappers tests and submit order implementations for anx, binance, bitfinex, bitflyer (cannot test), bitmex, bitstamp
* Fixes bitstamp tests
* Adds tests for submitting orders with bittrex, btcmarkets, coinbasepro and coinut
* Adds tests for exmo, gatio, gemini and hitbtc
Makes adjustments where necessary
* Adds tests and updates order implementations for huobi, huobiHadax, itbit, kraken, lakebtc, liqui, okcoin, okex, poloniex, wex, yobit and zb. Not all have been verified due to exchange issues
* Fixes variable names and symbol usages
* Fixes HitBTC order API implementation
* Removes formatting code. Adds error handling for unsupported order types. Fixes typo
* Fixes missed replace for new ToString function. Removes unused functions
* Changes report of unknown withdrawal type with bitshift approximation.
Improved code cov
* Updates wrapper SubmitExchangeOrder return to use a fancy new SubmitOrderResponse struct type to clarify if an order submission is successful or not
* Initial broken commit for updating exchanges to store data on whether withdrawals can be handled completely by the API
* Changes to use base exchange method to determine withdrawal permissions using bitshifting
* Adds withdrawal capabilities for alphapoint, anx, binance, bitfinex, bitflyer, bithumb, bitmex, bitstamp, bittrex exchanges
* Adds withdraw capabilities for btcmarkets, coinbasepro, coinut, exmo, gateio, gemini, hitbtc, huobi, hadax
* Adds withdraw capabilities for itbit, kraken, lakebtc, liqui, localbitcoins, okcoin, okex, poloniex, wex, yobit, zb
* Titillating tests & Wonderful wrappers
* Fixes typo, double checks all apis and corrects permissions
* Fixes gemini test
* Fixes incorrect log placement. Removes breaks
* Addresses PR comments. Changes readable function to: FormatWithdrawPermissions, adds new function 'GetWithdrawPermissions' and 'SupportsWithdrawPermissions'. Adds three functions to interface
* Removes unnecessary config_example.json additions
* Fixes bitwise comparisons. Adds more tests to highlight expected outcomes
* Adds some constants for fee types
Adds some fee calculation in an attempt to be generic
Adds fee stuff to Bittrex
Adds fee stuff to bitstamp
* Fixes bitstamp fee calculation
* Tests
Tests all scenarios for GetFeeByType
* Adds method to wrapper
Adds err to response
Checks for err
* Adds support for Bittrex fees
* Adds maker/taker dynamic to fees
Updates tests
Adds bitmex fee support
Removes unused switch case scenarios to not waste space
* Adds bithumb support for fee calculation
* Adds Bitfinex fee support
Adds list of currencies as const strings
Sets up bitflyer
* Fixes arguments
* Greatly expands symbols
Adds Binance fee calculation support
Cleans up previous exchanges
* Fixes errors for fee calculations
* Adds ANX fee support
* Adds btcc fee support
Adds alphapoint fee wrapper support
Renames method to match "enum"
Uses symbols in tests, not inline strings
* Adds support for BTCMarkets fee calculation
Adds new method to retrieve fee amount from BTCMarkets
Adds new fee type struct: FeeBuilder
Updates ANX and BTCMarkets to use new FeeBuilder type struct
Standardises the tests to run when it comes to fee calculation
* Migrates all existing exchange fee to use new feebuilder type struct
Uses standard testing model
* Fixes unit tests
* Updates maker taker fees in test config
* Removes parallel from fee testing
* Removes more parallel from tests
* Adds coinbasepro fee support
* Adds Coinut fee support
* Adds Exmo fee support
Adds maker fee support to coinut
Introduces a type for fees and bank transfers to prevent random strings being used
* Adds partial bitflyer support
Moves bitflyer to feeBuilder struct
* Adds gateio fee support
* Adds Gemini fee support
* Adds hitbtc fee support
* Adds huobi fee support
* Adds HuobiHadax fee support
* Adds itbit fee support
* Adds partial kraken fee support with trading fees
* Finishes basic Kraken fee support
* Adds basic LakeBTC fee support
* Adds basic liqui fee support
* Adds localbitcoins fee support.......
* Adds basic okcoin fee support
* Adds simple OKEX fee support
Adds many new currency symbols
Fixes liqui's fees
* Adds poloniex fee support
* Adds fee support for Yobit
* Adds WEX fee support
* Adds ZB fee support
* Removes bad reference
* Improves accuracy of variable name
* trading fee method names are now consistent
(cherry picked from commit 21c82e8b90cae590cfd73d365d7be39e1a00e973)
* Fixes rebasing issues
* Fixes issues from rebase
Removes "IsTaker" as IsMaker bool can imply taker
Updates tests to actually work.
* Adds a zero to the test
* Fixes bitfinex api endpoints and fixes fee calculations
* Updates btcmarkets trading fee calculation
* Verifies tests with apis for all exchanges except coinbasepro, itbit and bitflyer
Removes taker fee test as taker is default
* Removes redundant all exchange wrapper error checks due to the error checks being redundant
* Addresses review comments:
- Renames variables
- Changes how functions return data
- Fixes typo