{"push_id":2484749944,"size":9,"distinct_size":3,"ref":"refs/heads/all-error-classes-now-have-an-error-cause-property","head":"49f808ebc65756fe4e18e356570a21c88e0a7679","before":"34180f53da90a22958babd79f0f20984bcd19ae3","commits":[{"sha":"8c82aa97d00c86c603e98b67eabfc865ff3feaa7","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Use side type everywhere (#176)\n\n* Rename: s/Side/BitmexSide/g.\r\n\r\nThis is to make space for a new global Side type has type 'buy' |\r\n'sell', that is, with lowercase letters.\r\n\r\n* Add a Side type and constructor and use them everywhere.\r\n\r\nAdd SIDES which is a ReadonlyArray<Side> that can be iterated\r\nthrough and keep type correctness.\r\n\r\nAlso add isSide().\r\n\r\n* GDAXExchangeAPI: delete some unnecessary Side related code.","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/8c82aa97d00c86c603e98b67eabfc865ff3feaa7"},{"sha":"da0df0e43a9e3ddad0c61526c1c4316e05aa85b1","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Yarn upgrade ccxt (#211)\n\n* Update ccxt to the latest version and drop local types.\r\n\r\n$ yarn upgrade -E ccxt@1.12.137\r\n\r\nNotable changes:\r\n\r\n- fetchHistTrades(), fetchTrades() and fetchOHLCV() arguments changed\r\n  from a free-form parameter object to having some key parameters then\r\n  followed by a free-form parameter object.\r\n\r\n- Refresh the list of exchanges using the name from the exchange's\r\n  name property, munging the output of `grep \"'name': \" js/*js`.\r\n\r\n- Remove some type assertions that have changed that broke the tsc\r\n  compile.\r\n\r\n* Use ccxt.Foo instead of importing ccxt.Foo as CCXTFoo.","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/da0df0e43a9e3ddad0c61526c1c4316e05aa85b1"},{"sha":"fe89dcb9e0011ad30ebcccb13f9df8f0edd362a1","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Clean up error handling (#206)\n\n* Return a Promise.reject instead of throwing an Error.\r\n\r\n* Add GDAXExchangeAPI error handling unit tests.\r\n\r\nThese describe the current state.\r\n\r\n* Return a Promise.reject() instead of throwing an HTTPError.\r\n\r\n* Rename GTTError's cause parameter.\r\n\r\n* SimpleRateCalculator.ts: fix indentation.\r\n\r\n* Clean up code involving Promise.reject().","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/fe89dcb9e0011ad30ebcccb13f9df8f0edd362a1"},{"sha":"e6c3e6e815053c4629bb2fcc486b3877f10006c8","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Add readonly property modifier everywhere the property isn't modified. (#192)\n\n* Add readonly property modifier everywhere the property isn't modified.\r\n\r\n* BookBuilder: don't set default property values when clear() resets them.\r\n\r\nThis is more of a do not repeat yourself best practice to not set the\r\nintial property values twice.\r\n\r\n* OrderbookDiff: removed unused property.","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/e6c3e6e815053c4629bb2fcc486b3877f10006c8"},{"sha":"32d5e8e5ba11d72cf37fe384e115b570c68c174f","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Discriminated unions (#203)\n\n* GDAXFeed#mapMessage: do not set the 'extra' property.\r\n\r\nThe 'origin' property is already set by handleMessage() and\r\nUnknownMessage's documentation says that\r\n\r\n  Any context-rich information can be extracted into the `extra`\r\n  field, and the original message should be attached to the `origin`\r\n  field as usual.\r\n\r\n* GDAXMessage: switch to discriminated unions types.\r\n\r\nAdd a new GDAXMessage that is a union type and rename the old\r\nGDAXMessage to OptionalUserId, dropping the 'GDAX' and the 'Message'\r\nbecause the 'type property was removed since all sub-interfaces define\r\nit exactly and the since the OptionalUserId super-interface isn't\r\nmeant to be publically used now.\r\n\r\nAdd GDAXHeartbeatMessage and GDAXReceivedMessage which is required to\r\navoid compiler errors with the current code.\r\n\r\n* GDAXMatchMessage: add maker_user_id and taker_user_id properties.\r\n\r\n* Move error handling out GDAXFeed#mapMessage.\r\n\r\nThis is so the GDAXErrorMessage type is consistently handled between\r\nmapMessage and mapAuthMessage, useful for discriminated union.\r\n\r\n* GDAXFeed#mapFullFeed: simplify.\r\n\r\n* GDAXFeed#mapUnknown: new method to consistently handle messages.\r\n\r\n* GDAXFeed#handleMessage: use isGDAXMessage.\r\n\r\nAdd attachSequence() to attach the incoming sequence number to an\r\nStreamMessage that the Writables will receive.\r\n\r\n* GDAXFeed: remove many type assertions.\r\n\r\nhttp://www.typescriptlang.org/docs/handbook/advanced-types.html\r\n\r\nThis is made possible by TypeScript's discriminated unions. For\r\nexample, handleMessage() calls isGDAXMessage(feedMessage) which means\r\nthat tsc knows that feedMessage is a GDAXMessage after the if\r\nblock. So switching on its type property means that the compiler knows\r\nexactly the sub-interface in the case clause. So no downcasts needd.\r\n\r\nNow that GDAXMessage is a union type, in a switch statement, the\r\nTypeScript compiler knows the GDAXMessage specific type so no type\r\nassertions are needed.\r\n\r\n* GDAXFeed#mapMessage: remove duplicate variable.\r\n\r\n* GDAXFeed#map*: tighten the input argument type.\r\n\r\nDo this for mapFullFeed(), mapMessage() and mapAuthMessage().\r\n\r\n* GDAXFeed#mapMessage: statically assert that all types are handled.\r\n\r\nIf one were to comment out a case statement in mapMessage() then tsc\r\nwould generate a compile error. See\r\n\r\nhttps://www.typescriptlang.org/docs/handbook/advanced-types.html\r\n\r\n* GDAXFeed#mapAuthMessage: explicitly handle all message types.\r\n\r\nThis is to generate a compile error if any new message types show up\r\nin the future, tsc will tell the developer that the new type needs to\r\nbe handled.\r\n\r\n* GDAXFeed#mapAuthMessage: remove a type assertion to any.\r\n\r\nThis is possible because of the stronger types, no need to check for a\r\nproperty if the compiler tells you it exists.\r\n\r\n* GDAXFeed#mapTicker: do not type assert the return object.\r\n\r\nSee https://palantir.github.io/tslint/rules/no-object-literal-type-assertion/ .\r\n\r\nThis showed that TickerMessage was missing a sequence property so add\r\nit, however, make it optional since it appears only the GDAX exchange\r\nhas sequence numbers in ticker messages.\r\n\r\n* GDAXFeed#mapUnknown: set the origin property.\r\n\r\nThis adds the origin property to the returned object. This fixes a\r\nbug where handleMessage() would receive a non-GDAXMessage and the\r\nUnknownMessage instance it pushes wouldn't have the origin property\r\nset.","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/32d5e8e5ba11d72cf37fe384e115b570c68c174f"},{"sha":"fdb7fd7e92d20e04229171aad69e0a79e59e26cf","author":{"name":"Jordan Baczuk","email":"0d73cd522c10fcf622eea829c1f76bca96a71f85@users.noreply.github.com"},"message":"Add api-key detection script (#109)","distinct":false,"url":"https://api.github.com/repos/blair/gdax-tt/commits/fdb7fd7e92d20e04229171aad69e0a79e59e26cf"},{"sha":"73e5d5f23c4489f326cec0c6da948464a5f63d7c","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"Messages clean up ordertype property (#170)\n\n* Messages.ts: documentation improvements.\r\n\r\nRemove documentation on the orderType property which NewOrderMessage\r\ndoesn't have.\r\n\r\norderType only appears in PlaceOrderMessage and TradeExecutedMessage,\r\nso add it there.\r\n\r\nAlso add comments on TradeFinalizedMessage and MyOrderPlacedMessage.\r\n\r\n* Remove MyOrderPlacedMessage's orderType field.\r\n\r\nGDAX's 'open' feed message doesn't contain an order type:\r\n\r\n  { type: 'open',\r\n    side: 'buy',\r\n    price: '10015.99000000',\r\n    order_id: '3c551481-c7c1-48e9-a820-d7287348f861',\r\n    remaining_size: '0.01000000',\r\n    product_id: 'BTC-USD',\r\n    sequence: 16899268,\r\n    user_id: '59c806a6e71206025e1e274c',\r\n    profile_id: '12ad580d-81b8-4ee1-b4dc-ad6d02206412',\r\n    time: '2018-03-11T00:26:16.842000Z' } }\r\n\r\nAdditionally, the code as it currently stands always sets the\r\norderType field to 'open' which has no meaning, so delete the\r\nproperty.\r\n\r\n* Add OrderType type and use it in {PlaceOrder,TradeExecuted}Message.","distinct":true,"url":"https://api.github.com/repos/blair/gdax-tt/commits/73e5d5f23c4489f326cec0c6da948464a5f63d7c"},{"sha":"29b42e1d312de8c06b2e5593a4d08fbf5c2a9f07","author":{"name":"Blair Zajac","email":"410e3f8cd79c7135bfba103a941a32a2ee15ded9@orcaware.com"},"message":"getAuthFromEnv: use the local env variable. (#221)","distinct":true,"url":"https://api.github.com/repos/blair/gdax-tt/commits/29b42e1d312de8c06b2e5593a4d08fbf5c2a9f07"},{"sha":"49f808ebc65756fe4e18e356570a21c88e0a7679","author":{"name":"Felix Böhm","email":"b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@feedic.com"},"message":"Merge branch 'master' into all-error-classes-now-have-an-error-cause-property","distinct":true,"url":"https://api.github.com/repos/blair/gdax-tt/commits/49f808ebc65756fe4e18e356570a21c88e0a7679"}]}
{"actor":{"display_login":"fb55"}}