DhanHQ 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -1
- data/CODE_REVIEW_ISSUES.md +2 -2
- data/GUIDE.md +2 -2
- data/README.md +194 -741
- data/REVIEW_SUMMARY.md +2 -2
- data/{README1.md → docs/ARCHIVE_README.md} +4 -4
- data/docs/AUTHENTICATION.md +116 -2
- data/docs/CONFIGURATION.md +109 -0
- data/docs/SUPER_ORDERS.md +284 -0
- data/docs/TESTING_GUIDE.md +8 -8
- data/docs/TROUBLESHOOTING.md +117 -0
- data/docs/WEBSOCKET_PROTOCOL.md +154 -0
- data/docs/live_order_updates.md +2 -2
- data/docs/rails_integration.md +7 -7
- data/docs/standalone_ruby_websocket_integration.md +24 -24
- data/docs/technical_analysis.md +1 -1
- data/docs/websocket_integration.md +4 -4
- data/examples/comprehensive_websocket_examples.rb +2 -2
- data/examples/instrument_finder_test.rb +2 -2
- data/examples/market_depth_example.rb +2 -2
- data/examples/market_feed_example.rb +2 -2
- data/examples/order_update_example.rb +2 -2
- data/examples/trading_fields_example.rb +2 -2
- data/lib/DhanHQ/auth/token_generator.rb +33 -0
- data/lib/DhanHQ/auth/token_manager.rb +88 -0
- data/lib/DhanHQ/auth/token_renewal.rb +25 -0
- data/lib/DhanHQ/auth.rb +91 -31
- data/lib/DhanHQ/client.rb +42 -2
- data/lib/DhanHQ/configuration.rb +2 -2
- data/lib/DhanHQ/contracts/order_contract.rb +0 -23
- data/lib/DhanHQ/contracts/trade_by_order_id_contract.rb +12 -0
- data/lib/DhanHQ/contracts/trade_contract.rb +0 -65
- data/lib/DhanHQ/contracts/trade_history_contract.rb +52 -0
- data/lib/DhanHQ/core/auth_api.rb +21 -0
- data/lib/DhanHQ/helpers/request_helper.rb +1 -1
- data/lib/DhanHQ/models/alert_order.rb +22 -0
- data/lib/DhanHQ/models/edis.rb +110 -0
- data/lib/DhanHQ/models/kill_switch.rb +22 -0
- data/lib/DhanHQ/models/margin.rb +49 -0
- data/lib/DhanHQ/models/pnl_exit.rb +130 -0
- data/lib/DhanHQ/models/position.rb +22 -0
- data/lib/DhanHQ/models/postback.rb +123 -0
- data/lib/DhanHQ/models/token_response.rb +88 -0
- data/lib/DhanHQ/resources/kill_switch.rb +8 -0
- data/lib/DhanHQ/resources/margin_calculator.rb +9 -0
- data/lib/DhanHQ/resources/pnl_exit.rb +37 -0
- data/lib/DhanHQ/resources/positions.rb +8 -0
- data/lib/DhanHQ/version.rb +1 -1
- data/lib/dhan_hq.rb +31 -81
- metadata +46 -4
- data/lib/DhanHQ/config.rb +0 -33
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: DhanHQ
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shubham Taywade
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-02-
|
|
11
|
+
date: 2026-02-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -150,6 +150,34 @@ dependencies:
|
|
|
150
150
|
- - ">="
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: rotp
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - ">="
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0'
|
|
160
|
+
type: :runtime
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - ">="
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: zeitwerk
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - ">="
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '0'
|
|
174
|
+
type: :runtime
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - ">="
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0'
|
|
153
181
|
description: DhanHQ is a simple CLI for DhanHQ API.
|
|
154
182
|
email:
|
|
155
183
|
- shubhamtaywade82@gmail.com
|
|
@@ -168,7 +196,6 @@ files:
|
|
|
168
196
|
- GUIDE.md
|
|
169
197
|
- LICENSE.txt
|
|
170
198
|
- README.md
|
|
171
|
-
- README1.md
|
|
172
199
|
- RELEASING.md
|
|
173
200
|
- REVIEW_SUMMARY.md
|
|
174
201
|
- Rakefile
|
|
@@ -184,11 +211,16 @@ files:
|
|
|
184
211
|
- diagram.html
|
|
185
212
|
- diagram.md
|
|
186
213
|
- docs/API_VERIFICATION.md
|
|
214
|
+
- docs/ARCHIVE_README.md
|
|
187
215
|
- docs/AUTHENTICATION.md
|
|
216
|
+
- docs/CONFIGURATION.md
|
|
188
217
|
- docs/DATA_API_PARAMETERS.md
|
|
189
218
|
- docs/PR_2.2.0.md
|
|
190
219
|
- docs/RELEASE_GUIDE.md
|
|
220
|
+
- docs/SUPER_ORDERS.md
|
|
191
221
|
- docs/TESTING_GUIDE.md
|
|
222
|
+
- docs/TROUBLESHOOTING.md
|
|
223
|
+
- docs/WEBSOCKET_PROTOCOL.md
|
|
192
224
|
- docs/live_order_updates.md
|
|
193
225
|
- docs/rails_integration.md
|
|
194
226
|
- docs/rails_websocket_integration.md
|
|
@@ -204,8 +236,10 @@ files:
|
|
|
204
236
|
- examples/trading_fields_example.rb
|
|
205
237
|
- exe/DhanHQ
|
|
206
238
|
- lib/DhanHQ/auth.rb
|
|
239
|
+
- lib/DhanHQ/auth/token_generator.rb
|
|
240
|
+
- lib/DhanHQ/auth/token_manager.rb
|
|
241
|
+
- lib/DhanHQ/auth/token_renewal.rb
|
|
207
242
|
- lib/DhanHQ/client.rb
|
|
208
|
-
- lib/DhanHQ/config.rb
|
|
209
243
|
- lib/DhanHQ/configuration.rb
|
|
210
244
|
- lib/DhanHQ/constants.rb
|
|
211
245
|
- lib/DhanHQ/contracts/alert_order_contract.rb
|
|
@@ -220,7 +254,10 @@ files:
|
|
|
220
254
|
- lib/DhanHQ/contracts/place_order_contract.rb
|
|
221
255
|
- lib/DhanHQ/contracts/position_conversion_contract.rb
|
|
222
256
|
- lib/DhanHQ/contracts/slice_order_contract.rb
|
|
257
|
+
- lib/DhanHQ/contracts/trade_by_order_id_contract.rb
|
|
223
258
|
- lib/DhanHQ/contracts/trade_contract.rb
|
|
259
|
+
- lib/DhanHQ/contracts/trade_history_contract.rb
|
|
260
|
+
- lib/DhanHQ/core/auth_api.rb
|
|
224
261
|
- lib/DhanHQ/core/base_api.rb
|
|
225
262
|
- lib/DhanHQ/core/base_model.rb
|
|
226
263
|
- lib/DhanHQ/core/base_resource.rb
|
|
@@ -235,6 +272,7 @@ files:
|
|
|
235
272
|
- lib/DhanHQ/helpers/validation_helper.rb
|
|
236
273
|
- lib/DhanHQ/json_loader.rb
|
|
237
274
|
- lib/DhanHQ/models/alert_order.rb
|
|
275
|
+
- lib/DhanHQ/models/edis.rb
|
|
238
276
|
- lib/DhanHQ/models/expired_options_data.rb
|
|
239
277
|
- lib/DhanHQ/models/forever_order.rb
|
|
240
278
|
- lib/DhanHQ/models/funds.rb
|
|
@@ -249,9 +287,12 @@ files:
|
|
|
249
287
|
- lib/DhanHQ/models/option_chain.rb
|
|
250
288
|
- lib/DhanHQ/models/order.rb
|
|
251
289
|
- lib/DhanHQ/models/order_update.rb
|
|
290
|
+
- lib/DhanHQ/models/pnl_exit.rb
|
|
252
291
|
- lib/DhanHQ/models/position.rb
|
|
292
|
+
- lib/DhanHQ/models/postback.rb
|
|
253
293
|
- lib/DhanHQ/models/profile.rb
|
|
254
294
|
- lib/DhanHQ/models/super_order.rb
|
|
295
|
+
- lib/DhanHQ/models/token_response.rb
|
|
255
296
|
- lib/DhanHQ/models/trade.rb
|
|
256
297
|
- lib/DhanHQ/rate_limiter.rb
|
|
257
298
|
- lib/DhanHQ/requests/optionchain/nifty.json
|
|
@@ -271,6 +312,7 @@ files:
|
|
|
271
312
|
- lib/DhanHQ/resources/market_feed.rb
|
|
272
313
|
- lib/DhanHQ/resources/option_chain.rb
|
|
273
314
|
- lib/DhanHQ/resources/orders.rb
|
|
315
|
+
- lib/DhanHQ/resources/pnl_exit.rb
|
|
274
316
|
- lib/DhanHQ/resources/positions.rb
|
|
275
317
|
- lib/DhanHQ/resources/profile.rb
|
|
276
318
|
- lib/DhanHQ/resources/statements.rb
|
data/lib/DhanHQ/config.rb
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "logger"
|
|
4
|
-
|
|
5
|
-
# DhanHQ Ruby SDK for trading and market data
|
|
6
|
-
module DhanHQ
|
|
7
|
-
class << self
|
|
8
|
-
# keep whatever you already have; add these if missing:
|
|
9
|
-
attr_accessor :client_id, :access_token, :base_url, :ws_version
|
|
10
|
-
|
|
11
|
-
# default logger so calls like DhanHQ.logger&.info never explode
|
|
12
|
-
def logger
|
|
13
|
-
@logger ||= Logger.new($stdout, level: Logger::INFO)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
attr_writer :logger
|
|
17
|
-
|
|
18
|
-
# same API style as your README
|
|
19
|
-
def configure
|
|
20
|
-
yield self
|
|
21
|
-
# ensure a logger is present even if user didn’t set one
|
|
22
|
-
self.logger ||= Logger.new($stdout, level: Logger::INFO)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# if you support env bootstrap
|
|
26
|
-
def configure_with_env
|
|
27
|
-
self.client_id = ENV.fetch("CLIENT_ID", nil)
|
|
28
|
-
self.access_token = ENV.fetch("ACCESS_TOKEN", nil)
|
|
29
|
-
self.base_url = ENV.fetch("DHAN_BASE_URL", "https://api.dhan.co/v2")
|
|
30
|
-
self.ws_version = ENV.fetch("DHAN_WS_VERSION", 2).to_i
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|