{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":673108916,"defaultBranch":"master","name":"hyperliquid-rust-sdk","ownerLogin":"hyperliquid-dex","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-07-31T22:30:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/129421375?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708457144.0","currentOid":""},"activityList":{"items":[{"before":"44c0beb582396d71f3cfe63e539a2d96b3c9313e","after":"741d54182b11fa5d8a1843d5b17137021cbb9862","ref":"refs/heads/master","pushedAt":"2024-09-19T17:15:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add missing fee field to UserFillsResponse (#56)\n\nSee\r\nhttps://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills\r\n\r\n\r\n![image](https://github.com/user-attachments/assets/0f7a3920-6b11-406f-ba85-c580ec55bd72)","shortMessageHtmlLink":"Add missing fee field to UserFillsResponse (#56)"}},{"before":"8c6550901bc7f207aa70ab6765ca035e53747a74","after":"44c0beb582396d71f3cfe63e539a2d96b3c9313e","ref":"refs/heads/master","pushedAt":"2024-09-04T17:51:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"feat(ExchangeClient): Add market open and close methods (#55)\n\n## Description\r\n\r\nThis PR introduces `market_open` and `market_close` methods to the\r\n`ExchangeClient`, aligning the Rust SDK's functionality with the\r\nexisting Hyperliquid Python SDK.\r\n\r\n## Key Changes\r\n\r\n- Added `market_open` method for placing market buy/sell orders\r\n- Added `market_close` method for closing positions with market orders\r\n- Implemented price slippage calculation with respect to asset-specific\r\ndecimal requirements\r\n- Added helper functions for rounding to significant figures and decimal\r\nplaces\r\n\r\n## Implementation Details\r\n\r\n- Mirrors the functionality of the Python SDK's `market_open` and\r\n`market_close` methods\r\n- Uses the existing `InfoClient` to fetch asset metadata and current\r\nmid-prices\r\n- Simulates market orders using IOC (Immediate-or-Cancel) limit orders\r\n- Respects Hyperliquid's tick size and lot size rules for each asset\r\n\r\n## Usage Example\r\n\r\n```rust\r\nlet market_open_params = MarketOrderParams {\r\n asset: \"ETH\",\r\n is_buy: true,\r\n sz: 0.01,\r\n px: None,\r\n slippage: Some(0.01),\r\n cloid: None,\r\n wallet: None,\r\n};\r\n\r\nlet response = exchange_client.market_open(market_open_params).await?;\r\n```\r\n\r\n## Testing\r\n\r\n- Manually tested against Hyperliquid testnet\r\n- Verified behavior matches Python SDK output for equivalent inputs\r\n\r\n\"Screenshot\r\n\r\n\r\n## Related Issues\r\n\r\nCloses #44","shortMessageHtmlLink":"feat(ExchangeClient): Add market open and close methods (#55)"}},{"before":"562cc4e759d9cc71e84132ebc01acf5b8b2f5c69","after":"8c6550901bc7f207aa70ab6765ca035e53747a74","ref":"refs/heads/master","pushedAt":"2024-08-26T20:19:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Fix #47: Handle WsManager Drop and close the ping and reader tasks (#51)\n\nFixing #47 to make sure no tasks are orphaned once the WsManager is\r\ndropped.","shortMessageHtmlLink":"Fix #47: Handle WsManager Drop and close the ping and reader tasks (#51)"}},{"before":"bc972aa8ad08fe7a509693af15f889221dd39b76","after":"562cc4e759d9cc71e84132ebc01acf5b8b2f5c69","ref":"refs/heads/master","pushedAt":"2024-08-19T23:03:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Fix #45: Send errors as Messages over subscription sender channel (#46)\n\nFixes issue #45\r\n\r\nThis allows the developer to react to any changes in the websocket\r\nconnection or handle any errors received from hyperliquid. Example:\r\nDynamically closing and opening the websocket upon errors.\r\n\r\nPreviously the errors would just get logged and the thread would\r\ncontinue running.\r\n\r\nPossible an AtomicBool to start and stop the sender thread too?","shortMessageHtmlLink":"Fix #45: Send errors as Messages over subscription sender channel (#46)"}},{"before":"ff1e9fbeb0d22bf56b5843236c48620f63aa7257","after":"bc972aa8ad08fe7a509693af15f889221dd39b76","ref":"refs/heads/master","pushedAt":"2024-07-15T20:21:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add set_referrer action to set referral codes for a wallet (#42)","shortMessageHtmlLink":"Add set_referrer action to set referral codes for a wallet (#42)"}},{"before":"80a000b69cc09934ad7c86bcbdaf219ee3824400","after":"ff1e9fbeb0d22bf56b5843236c48620f63aa7257","ref":"refs/heads/master","pushedAt":"2024-07-15T18:20:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"traderben","name":"Ben","path":"/traderben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95141121?s=80&v=4"},"commit":{"message":"Version 0.5.0","shortMessageHtmlLink":"Version 0.5.0"}},{"before":"9a2d1e307f2a1f47af5f22e4e58cc157620d62b6","after":"80a000b69cc09934ad7c86bcbdaf219ee3824400","ref":"refs/heads/master","pushedAt":"2024-07-08T11:30:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add a NAME/USDC to spot index mapping to the coin_to_asset HashMap (#41)\n\nTo allow spot ordering with NAME/USDC when placing spot orders","shortMessageHtmlLink":"Add a NAME/USDC to spot index mapping to the coin_to_asset HashMap (#41)"}},{"before":"fbd7075bac575b33aeaa9695647cfc534b119fa2","after":"9a2d1e307f2a1f47af5f22e4e58cc157620d62b6","ref":"refs/heads/master","pushedAt":"2024-07-03T02:11:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add userfees, userfundings, and spotclearinghousestate to info client (#39)\n\nAlso, fix github workflow to use the master branch instead of main.\r\n\r\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add userfees, userfundings, and spotclearinghousestate to info client ("}},{"before":"fb1b8f4ca09e35cbf8b85ea9dbff5f7521b524eb","after":"fbd7075bac575b33aeaa9695647cfc534b119fa2","ref":"refs/heads/master","pushedAt":"2024-07-02T03:06:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add support for spot, vault, and class transfers to exchange client (#40)\n\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add support for spot, vault, and class transfers to exchange client (#40"}},{"before":"13c531c36043bd284dcf13b91ec5d6f3e6eae87b","after":"fb1b8f4ca09e35cbf8b85ea9dbff5f7521b524eb","ref":"refs/heads/master","pushedAt":"2024-06-21T02:50:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add CI for unit tests, fmt, and linting (#36)\n\nfixes #25\r\n\r\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add CI for unit tests, fmt, and linting (#36)"}},{"before":"0f3b3377ace7dd7a9c7c0255254efdf97e9180d9","after":"13c531c36043bd284dcf13b91ec5d6f3e6eae87b","ref":"refs/heads/master","pushedAt":"2024-06-21T02:48:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add notification and more user events to ws (#37)\n\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add notification and more user events to ws (#37)"}},{"before":"9de32c5feaae0b9f80a64ca008c6707bd5fd1920","after":"0f3b3377ace7dd7a9c7c0255254efdf97e9180d9","ref":"refs/heads/master","pushedAt":"2024-06-20T05:02:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Update ethers rs version (#24)\n\nIt is currently very hard to use this sdk and ethers rs in tandem due to\r\nthe version of ethers being very outdated and types mismatching. This PR\r\nupdates the ethers version to the latest version.\r\n\r\nAlso, run cargo fmt, run cargo clippy, and ignore Cargo.lock as this is\r\na library.\r\n\r\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Update ethers rs version (#24)"}},{"before":"280694e5780f009665eed8567e61c0dac57eebd3","after":"9de32c5feaae0b9f80a64ca008c6707bd5fd1920","ref":"refs/heads/master","pushedAt":"2024-06-20T04:11:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add support for WS UserNonFundingLedgerUpdates (#19)\n\nfixes #18\r\n\r\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add support for WS UserNonFundingLedgerUpdates (#19)"}},{"before":"5a134498baa87a18b9b17bb14705261fc9cf63e3","after":"280694e5780f009665eed8567e61c0dac57eebd3","ref":"refs/heads/master","pushedAt":"2024-06-20T04:01:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add support for sending pings to the WS server (#23)\n\nSend pings every 50 seconds so that the connections don't close.\r\n\r\nfixes #22\r\n\r\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add support for sending pings to the WS server (#23)"}},{"before":"40cf8d30ec87c754ab94570a062b8666de239794","after":"5a134498baa87a18b9b17bb14705261fc9cf63e3","ref":"refs/heads/master","pushedAt":"2024-06-20T02:22:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add functionality to withdraw from Hyperliquid bridge (#32)\n\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add functionality to withdraw from Hyperliquid bridge (#32)"}},{"before":"a609ea030167eddb5564381d24c2e085cfca39cf","after":"40cf8d30ec87c754ab94570a062b8666de239794","ref":"refs/heads/master","pushedAt":"2024-06-20T02:09:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add WsUserFundings to websocket (#28)\n\nCo-authored-by: Sree Revoori ","shortMessageHtmlLink":"Add WsUserFundings to websocket (#28)"}},{"before":"95fcb960b51d0349b35ccc46a7d89811420683d9","after":"a609ea030167eddb5564381d24c2e085cfca39cf","ref":"refs/heads/master","pushedAt":"2024-06-18T06:17:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Fixed wrong signature for Trigger Order requests (#31)\n\nSwapped is_market and trigger_px in clientTrigger & Trigger struct.To\r\navoid wrong eip712 signatures while placing a trigger order","shortMessageHtmlLink":"Fixed wrong signature for Trigger Order requests (#31)"}},{"before":"16467e3603f1970c3bc3bff7778686ce853508d6","after":"95fcb960b51d0349b35ccc46a7d89811420683d9","ref":"refs/heads/master","pushedAt":"2024-06-18T02:38:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"traderben","name":"Ben","path":"/traderben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95141121?s=80&v=4"},"commit":{"message":"Add spot ordering (#29)\n\nAdded the ability to place orders for spot assets","shortMessageHtmlLink":"Add spot ordering (#29)"}},{"before":"15e23caa9f20c751da7dc7999a2e982e18471805","after":"16467e3603f1970c3bc3bff7778686ce853508d6","ref":"refs/heads/master","pushedAt":"2024-05-23T07:07:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"traderben","name":"Ben","path":"/traderben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95141121?s=80&v=4"},"commit":{"message":"Update expected signature in UsdSend signing test","shortMessageHtmlLink":"Update expected signature in UsdSend signing test"}},{"before":"ee46191fef789ab2921887a06aef5a99dab4d4b5","after":"15e23caa9f20c751da7dc7999a2e982e18471805","ref":"refs/heads/master","pushedAt":"2024-05-23T03:47:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"traderben","name":"Ben","path":"/traderben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95141121?s=80&v=4"},"commit":{"message":"Version 0.4.0\n\nAdds support for new user signed actions (usdSend and approveAgent)","shortMessageHtmlLink":"Version 0.4.0"}},{"before":"10076230d098c5b2a81b65e43b4e9482f8096582","after":"ee46191fef789ab2921887a06aef5a99dab4d4b5","ref":"refs/heads/master","pushedAt":"2024-04-01T18:57:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add `cloid` to fills and add `UserFills` event type (#16)","shortMessageHtmlLink":"Add cloid to fills and add UserFills event type (#16)"}},{"before":"e8bd6423bf74b0865670f3d478848bda1c5967c4","after":"10076230d098c5b2a81b65e43b4e9482f8096582","ref":"refs/heads/master","pushedAt":"2024-02-21T20:27:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add cloid to order and cancel requests (#10)\n\nTested using the updated order and cancel script. I think the cloid was\r\ncausing signing issues with the request in #6, and this should allow us\r\nto add the modify requests.","shortMessageHtmlLink":"Add cloid to order and cancel requests (#10)"}},{"before":"06835d74e9aeeb25a8a993816ee1aebfd15d845d","after":"e8bd6423bf74b0865670f3d478848bda1c5967c4","ref":"refs/heads/master","pushedAt":"2024-02-20T19:28:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Add more unit tests (#13)","shortMessageHtmlLink":"Add more unit tests (#13)"}},{"before":null,"after":"5d1787c5c6bb0cd77455273216d8561dce40656a","ref":"refs/heads/tests","pushedAt":"2024-02-20T19:25:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"add tests","shortMessageHtmlLink":"add tests"}},{"before":"a430a4167852ecc9b555168ca96a961e22b5579f","after":"06835d74e9aeeb25a8a993816ee1aebfd15d845d","ref":"refs/heads/master","pushedAt":"2024-02-08T23:03:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"Integrate new action hashing scheme based on MsgPack (#11)\n\nAlso goes through and deletes unnecessary boilerplate now that hashing\r\nis simplified\r\nHolding on merging this until after the next network upgrade","shortMessageHtmlLink":"Integrate new action hashing scheme based on MsgPack (#11)"}},{"before":"972e60f5ef98151f32765adc996e2bc2759a4ae9","after":"14c2f7756a5eb5d1d331f669a249ea8d05c3d4a2","ref":"refs/heads/new-hashing","pushedAt":"2024-02-08T23:02:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"bump minor version","shortMessageHtmlLink":"bump minor version"}},{"before":"b546d1662a7f28fe70acd70b81581f63f00460ec","after":"972e60f5ef98151f32765adc996e2bc2759a4ae9","ref":"refs/heads/new-hashing","pushedAt":"2024-02-08T22:55:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"ignore lint","shortMessageHtmlLink":"ignore lint"}},{"before":"523f6e4648831f25b489122715c8075f08a271e7","after":"b546d1662a7f28fe70acd70b81581f63f00460ec","ref":"refs/heads/new-hashing","pushedAt":"2024-02-08T16:40:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"add global nonce tracker","shortMessageHtmlLink":"add global nonce tracker"}},{"before":null,"after":"523f6e4648831f25b489122715c8075f08a271e7","ref":"refs/heads/new-hashing","pushedAt":"2024-02-08T00:37:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lmlmt","name":"lmlmt","path":"/lmlmt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/112962729?s=80&v=4"},"commit":{"message":"new hashing scheme","shortMessageHtmlLink":"new hashing scheme"}},{"before":"2c3dc1b8f12f452bb2b32a0124133c912e620c0e","after":"a430a4167852ecc9b555168ca96a961e22b5579f","ref":"refs/heads/master","pushedAt":"2024-02-06T18:51:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"traderben","name":"Ben","path":"/traderben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95141121?s=80&v=4"},"commit":{"message":"Version 0.2.3","shortMessageHtmlLink":"Version 0.2.3"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNzoxNToyMC4wMDAwMDBazwAAAAS7Im1C","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNzoxNToyMC4wMDAwMDBazwAAAAS7Im1C","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMi0wNlQxODo1MToyNi4wMDAwMDBazwAAAAPzsEHY"}},"title":"Activity · hyperliquid-dex/hyperliquid-rust-sdk"}