dexbot 1.6.3 → 1.6.5
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.
- package/CHANGELOG.md +78 -2
- package/README.md +23 -19
- package/analysis/README.md +26 -13
- package/analysis/account_resolver.ts +171 -0
- package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +2 -5
- package/analysis/ama_fitting/package.json +1 -1
- package/analysis/analyze_dynamic_weight.ts +9 -3
- package/analysis/bot_usage/discover_bot_accounts.ts +20 -27
- package/analysis/chain_pool.ts +47 -0
- package/analysis/chart_utils.ts +33 -20
- package/analysis/derivative_chart_generator.ts +2 -3
- package/analysis/fills_source.ts +234 -0
- package/analysis/grid_correction_check.ts +38 -251
- package/analysis/trade_profitability.ts +169 -304
- package/analysis/tradingview/README.md +2 -2
- package/analysis/tradingview/analyze_tradingview.ts +5 -0
- package/analysis/tradingview/tradingview_uplot_chart_generator.ts +5 -6
- package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +35 -2
- package/analysis/trend_detection/dynamic_weight_chart_generator.ts +84 -13
- package/analysis/trend_detection/kalman_chart_generator.ts +2 -3
- package/analysis/trend_detection/package.json +1 -1
- package/analysis/trend_detection/regime_chart_generator.ts +2 -3
- package/analysis/trend_detection/volatility_chart_generator.ts +2 -3
- package/claw/modules/dexbot_profiles.ts +4 -3
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/claw/tests/test_dexbot_profiles.ts +18 -1
- package/dist/analysis/account_resolver.d.ts +43 -0
- package/dist/analysis/account_resolver.d.ts.map +1 -0
- package/dist/analysis/account_resolver.js +137 -0
- package/dist/analysis/account_resolver.js.map +1 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -1
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +2 -4
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -1
- package/dist/analysis/analyze_dynamic_weight.js +9 -3
- package/dist/analysis/analyze_dynamic_weight.js.map +1 -1
- package/dist/analysis/bot_usage/discover_bot_accounts.js +20 -28
- package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -1
- package/dist/analysis/chain_pool.d.ts +10 -0
- package/dist/analysis/chain_pool.d.ts.map +1 -0
- package/dist/analysis/chain_pool.js +47 -0
- package/dist/analysis/chain_pool.js.map +1 -0
- package/dist/analysis/chart_utils.d.ts +14 -1
- package/dist/analysis/chart_utils.d.ts.map +1 -1
- package/dist/analysis/chart_utils.js +32 -22
- package/dist/analysis/chart_utils.js.map +1 -1
- package/dist/analysis/derivative_chart_generator.d.ts.map +1 -1
- package/dist/analysis/derivative_chart_generator.js +2 -3
- package/dist/analysis/derivative_chart_generator.js.map +1 -1
- package/dist/analysis/fills_source.d.ts +79 -0
- package/dist/analysis/fills_source.d.ts.map +1 -0
- package/dist/analysis/fills_source.js +186 -0
- package/dist/analysis/fills_source.js.map +1 -0
- package/dist/analysis/grid_correction_check.d.ts +1 -21
- package/dist/analysis/grid_correction_check.d.ts.map +1 -1
- package/dist/analysis/grid_correction_check.js +30 -257
- package/dist/analysis/grid_correction_check.js.map +1 -1
- package/dist/analysis/trade_profitability.d.ts +18 -19
- package/dist/analysis/trade_profitability.d.ts.map +1 -1
- package/dist/analysis/trade_profitability.js +136 -280
- package/dist/analysis/trade_profitability.js.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.js +5 -0
- package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +5 -6
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -1
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +84 -13
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -1
- package/dist/analysis/trend_detection/kalman_chart_generator.js +2 -3
- package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -1
- package/dist/analysis/trend_detection/regime_chart_generator.js +2 -3
- package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -1
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -1
- package/dist/analysis/trend_detection/volatility_chart_generator.js +2 -3
- package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -1
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +27 -68
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.d.ts +2 -2
- package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.js +15 -12
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
- package/dist/market_adapter/interval_utils.d.ts +1 -1
- package/dist/market_adapter/interval_utils.js +1 -1
- package/dist/market_adapter/lp_chart_core.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_core.js +2 -3
- package/dist/market_adapter/lp_chart_core.js.map +1 -1
- package/dist/modules/account_bots.d.ts +51 -18
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +258 -117
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.d.ts +1 -84
- package/dist/modules/bitshares-native/serial/operations.d.ts.map +1 -1
- package/dist/modules/bitshares-native/serial/operations.js +1 -38
- package/dist/modules/bitshares-native/serial/operations.js.map +1 -1
- package/dist/modules/bot_defaults.d.ts +98 -0
- package/dist/modules/bot_defaults.d.ts.map +1 -0
- package/dist/modules/bot_defaults.js +169 -0
- package/dist/modules/bot_defaults.js.map +1 -0
- package/dist/modules/bot_settings.d.ts.map +1 -1
- package/dist/modules/bot_settings.js +4 -1
- package/dist/modules/bot_settings.js.map +1 -1
- package/dist/modules/cli_colors.d.ts +0 -1
- package/dist/modules/cli_colors.d.ts.map +1 -1
- package/dist/modules/config.d.ts +1 -0
- package/dist/modules/config.d.ts.map +1 -1
- package/dist/modules/config.js +1 -0
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/constants.d.ts +11 -2
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +45 -32
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/credential_policy.d.ts +1 -25
- package/dist/modules/credential_policy.d.ts.map +1 -1
- package/dist/modules/credential_policy.js +1 -1
- package/dist/modules/credential_policy.js.map +1 -1
- package/dist/modules/credential_runtime.d.ts +1 -6
- package/dist/modules/credential_runtime.d.ts.map +1 -1
- package/dist/modules/credential_runtime.js +1 -1
- package/dist/modules/credential_runtime.js.map +1 -1
- package/dist/modules/credential_session_cache.d.ts +1 -5
- package/dist/modules/credential_session_cache.d.ts.map +1 -1
- package/dist/modules/credential_session_cache.js +1 -1
- package/dist/modules/credential_session_cache.js.map +1 -1
- package/dist/modules/crypto/pure_secp256k1.d.ts +1 -2
- package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
- package/dist/modules/crypto/pure_secp256k1.js +1 -1
- package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +8 -7
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +9 -8
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +7 -6
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +8 -7
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +1 -17
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +1 -1
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +2 -2
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +24 -8
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts +1 -7
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +1 -1
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/launcher/adapter_requirement.d.ts +1 -5
- package/dist/modules/launcher/adapter_requirement.d.ts.map +1 -1
- package/dist/modules/launcher/adapter_requirement.js +2 -2
- package/dist/modules/launcher/adapter_requirement.js.map +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts +1 -6
- package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
- package/dist/modules/launcher/bot_supervisor.js +1 -1
- package/dist/modules/launcher/bot_supervisor.js.map +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.d.ts +1 -3
- package/dist/modules/launcher/foreign_cred_daemon.d.ts.map +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.js +1 -1
- package/dist/modules/launcher/foreign_cred_daemon.js.map +1 -1
- package/dist/modules/launcher/launch_modes.d.ts +17 -2
- package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
- package/dist/modules/launcher/launch_modes.js +18 -1
- package/dist/modules/launcher/launch_modes.js.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -3
- package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/market_adapter_runtime.js +1 -1
- package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.d.ts +1 -5
- package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.js +9 -2
- package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
- package/dist/modules/launcher/status_reporting.d.ts +1 -2
- package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
- package/dist/modules/launcher/status_reporting.js +1 -1
- package/dist/modules/launcher/status_reporting.js.map +1 -1
- package/dist/modules/market_adapter_whitelist.d.ts +40 -1
- package/dist/modules/market_adapter_whitelist.d.ts.map +1 -1
- package/dist/modules/market_adapter_whitelist.js +161 -11
- package/dist/modules/market_adapter_whitelist.js.map +1 -1
- package/dist/modules/order/export.d.ts +1 -8
- package/dist/modules/order/export.d.ts.map +1 -1
- package/dist/modules/order/export.js +1 -1
- package/dist/modules/order/export.js.map +1 -1
- package/dist/modules/order/grid.d.ts +16 -0
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +75 -103
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts +1 -10
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +2 -2
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/manager.d.ts +10 -2
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +20 -8
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +8 -15
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +1 -10
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +1 -1
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +5 -16
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +7 -4
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/process_discovery.d.ts +0 -3
- package/dist/modules/process_discovery.d.ts.map +1 -1
- package/dist/modules/process_discovery.js +1 -1
- package/dist/modules/process_discovery.js.map +1 -1
- package/dist/modules/settings_merge.d.ts +10 -1
- package/dist/modules/settings_merge.d.ts.map +1 -1
- package/dist/modules/settings_merge.js +27 -17
- package/dist/modules/settings_merge.js.map +1 -1
- package/dist/modules/utils/chain_logs.d.ts +1 -2
- package/dist/modules/utils/chain_logs.d.ts.map +1 -1
- package/dist/modules/utils/chain_logs.js +1 -1
- package/dist/modules/utils/chain_logs.js.map +1 -1
- package/dist/modules/validate_profiles.d.ts.map +1 -1
- package/dist/modules/validate_profiles.js +4 -3
- package/dist/modules/validate_profiles.js.map +1 -1
- package/dist/scripts/analyze-git.js +2 -2
- package/dist/scripts/analyze-git.js.map +1 -1
- package/dist/scripts/chart_command.d.ts +48 -0
- package/dist/scripts/chart_command.d.ts.map +1 -0
- package/dist/scripts/chart_command.js +504 -0
- package/dist/scripts/chart_command.js.map +1 -0
- package/dist/scripts/dw.d.ts +3 -0
- package/dist/scripts/dw.d.ts.map +1 -0
- package/dist/scripts/dw.js +30 -0
- package/dist/scripts/dw.js.map +1 -0
- package/dist/scripts/tv.d.ts +1 -31
- package/dist/scripts/tv.d.ts.map +1 -1
- package/dist/scripts/tv.js +10 -463
- package/dist/scripts/tv.js.map +1 -1
- package/dist/scripts/update.js +145 -93
- package/dist/scripts/update.js.map +1 -1
- package/dist/scripts/update_dist_freshness.d.ts +46 -0
- package/dist/scripts/update_dist_freshness.d.ts.map +1 -0
- package/dist/scripts/update_dist_freshness.js +115 -0
- package/dist/scripts/update_dist_freshness.js.map +1 -0
- package/dist/unlock.js +1 -1
- package/dist/unlock.js.map +1 -1
- package/docs/BITSHARES_ONBOARDING.md +117 -44
- package/docs/COPY_ON_WRITE_MASTER_PLAN.md +10 -207
- package/docs/COW_INVARIANTS.md +16 -10
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +76 -30
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +9 -9
- package/docs/GRID_RECALCULATION.md +34 -30
- package/docs/GRID_RECONCILE.md +30 -27
- package/docs/LIFECYCLE.md +12 -11
- package/docs/LOGGING.md +1 -0
- package/docs/README.md +58 -52
- package/docs/WORKFLOW.md +1 -2
- package/docs/architecture.md +21 -32
- package/docs/developer_guide.md +4 -3
- package/market_adapter/README.md +36 -60
- package/modules/README.md +2 -1
- package/package.json +1 -2
- package/scripts/README.md +18 -25
- package/scripts/git-viewer.sh +1 -1
- package/scripts/reset-settings.sh +1 -1
- package/tests/README.md +10 -1
- package/dist/scripts/generate_market_adapter_whitelist.d.ts +0 -15
- package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +0 -1
- package/dist/scripts/generate_market_adapter_whitelist.js +0 -191
- package/dist/scripts/generate_market_adapter_whitelist.js.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* SHARED CHAIN POOL (analysis)
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth for the node list and the ephemeral read-only
|
|
6
|
+
* connection used by analysis tools for small on-chain lookups (account name
|
|
7
|
+
* resolution, asset precision resolution).
|
|
8
|
+
*
|
|
9
|
+
* Analysis tools deliberately do NOT use the production singleton client
|
|
10
|
+
* (modules/bitshares_client.ts): they are short-lived processes and must never
|
|
11
|
+
* disturb a running bot's connection state. Instead each lookup opens a fresh
|
|
12
|
+
* read-only client over the built-in node pool, which the native transport
|
|
13
|
+
* races in parallel and then retries sequentially — so one dead node is not
|
|
14
|
+
* fatal.
|
|
15
|
+
*/
|
|
16
|
+
import * as C from '../modules/constants.js';
|
|
17
|
+
/** Nodes for ephemeral read-only analysis connections (node management pool). */
|
|
18
|
+
function defaultNodePool() {
|
|
19
|
+
return [...C.NODE_MANAGEMENT.DEFAULT_NODES];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run `fn` against a fresh read-only client connected over the built-in pool.
|
|
23
|
+
* Transport INFO logging is silenced for the duration of the short-lived
|
|
24
|
+
* connection and the client is always disconnected afterwards.
|
|
25
|
+
*/
|
|
26
|
+
async function withReadOnlyClient(fn) {
|
|
27
|
+
const { createReadOnlyClient } = await import('../modules/bitshares-native/index.js');
|
|
28
|
+
const client = createReadOnlyClient({ nodes: defaultNodePool() });
|
|
29
|
+
// Suppress transport INFO logs during ephemeral connection:
|
|
30
|
+
// bitshares-native transport logger (new Logger('Transport')) writes
|
|
31
|
+
// "[timestamp] [INFO] [Transport] ..." — silence by raising log level.
|
|
32
|
+
const prevLevel = process.env.LOG_LEVEL;
|
|
33
|
+
process.env.LOG_LEVEL = 'warn';
|
|
34
|
+
try {
|
|
35
|
+
await client.connect();
|
|
36
|
+
return await fn(client);
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
client.disconnect();
|
|
41
|
+
}
|
|
42
|
+
catch (_) { /* best-effort cleanup */ }
|
|
43
|
+
process.env.LOG_LEVEL = prevLevel;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export { defaultNodePool, withReadOnlyClient };
|
|
47
|
+
//# sourceMappingURL=chain_pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain_pool.js","sourceRoot":"","sources":["../../analysis/chain_pool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,CAAC,MAAM,yBAAyB,CAAC;AAE7C,iFAAiF;AACjF,SAAS,eAAe;IACpB,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAI,EAA+B;IAChE,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;IAClE,4DAA4D;IAC5D,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACP,IAAI,CAAC;YAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IACtC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline <style>/<script> tags carrying the vendored uPlot runtime. Embedding
|
|
3
|
+
* the source (not a relative <script src>) makes a chart portable: it keeps
|
|
4
|
+
* rendering after being copied, mailed, or reopened on a machine without a
|
|
5
|
+
* DEXBot2 installation. The inline script must be the first script that runs,
|
|
6
|
+
* placed before any chart-initialization code, since uPlot must exist first.
|
|
7
|
+
* Both the minified JS (no `</script>`) and CSS (no `</style>`) are safe to
|
|
8
|
+
* embed verbatim.
|
|
9
|
+
*/
|
|
10
|
+
declare function uplotInlineTags({ css, js }?: {
|
|
11
|
+
css?: boolean | undefined;
|
|
12
|
+
js?: boolean | undefined;
|
|
13
|
+
}): string;
|
|
1
14
|
declare function escapeHtml(str: string): string;
|
|
2
15
|
declare function serializeJsonForScript(value: any): string;
|
|
3
16
|
declare function toEpochSeconds(ts: any, fallbackIdx: any): number;
|
|
@@ -21,5 +34,5 @@ declare function embedFunctionSources(fns: Array<Function>): string;
|
|
|
21
34
|
* before embedding this script block.
|
|
22
35
|
*/
|
|
23
36
|
declare const UPLOT_SHARED_SCRIPT = "\nfunction clampXRange(min, max) {\n let nextMin = min, nextMax = max;\n if (!Number.isFinite(nextMin) || !Number.isFinite(nextMax) || nextMax <= nextMin) {\n return { min: xMin, max: xMax };\n }\n if (nextMin < xMin) { nextMax += xMin - nextMin; nextMin = xMin; }\n if (nextMax > xMax) { nextMin -= nextMax - xMax; nextMax = xMax; }\n if (nextMin < xMin) nextMin = xMin;\n if (nextMax > xMax) nextMax = xMax;\n if (nextMax <= nextMin) return { min: xMin, max: xMax };\n return { min: nextMin, max: nextMax };\n}\n\nfunction syncXRange(min, max) {\n pendingRange = clampXRange(min, max);\n if (pendingRangeRaf) return;\n const raf = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame.bind(window) : (fn) => setTimeout(fn, 0);\n pendingRangeRaf = raf(() => {\n const next = pendingRange;\n pendingRange = null;\n pendingRangeRaf = 0;\n if (!next) return;\n charts.forEach(c => c && c.batch(() => c.setScale('x', next)));\n });\n}\n\nfunction bindWheelZoom(chart) {\n chart.root.addEventListener('wheel', (e) => {\n if (e.ctrlKey || e.metaKey || e.altKey) return;\n e.preventDefault();\n e.stopPropagation();\n const rect = chart.root.getBoundingClientRect();\n \n // Correctly calculate plot-relative 'left' for accurate centering\n const left = e.clientX - rect.left - (chart.bbox.left / (chart.pxRatio || 1));\n const center = chart.posToVal(left, 'x');\n \n const s = chart.scales.x || {};\n const currMin = Number.isFinite(s.min) ? s.min : xMin;\n const currMax = Number.isFinite(s.max) ? s.max : xMax;\n const span = currMax - currMin;\n if (!Number.isFinite(span) || span <= 0) return;\n const factor = e.deltaY < 0 ? 0.85 : 1.15;\n const nextSpan = Math.max(1, Math.min(xMax - xMin, span * factor));\n const ratio = (center - currMin) / span;\n syncXRange(center - nextSpan * ratio, center - nextSpan * ratio + nextSpan);\n }, { passive: false });\n}\n\nfunction bindPan(chart) {\n let dragging = false, startClientX = 0, startClientY = 0, startMin = xMin, startMax = xMax, xUnitsPerPx = 0;\n const getScale = () => {\n const s = chart.scales.x || {};\n return { currMin: Number.isFinite(s.min) ? s.min : xMin, currMax: Number.isFinite(s.max) ? s.max : xMax };\n };\n const onMouseMove = (e) => {\n if (!dragging) return;\n \n // Ignore if vertical movement is dominant (likely scrolling)\n if (Math.abs(e.clientY - startClientY) > 20) return;\n \n e.preventDefault();\n const deltaPx = e.clientX - startClientX;\n const deltaVal = deltaPx * xUnitsPerPx;\n syncXRange(startMin - deltaVal, startMax - deltaVal);\n };\n const endDrag = () => {\n if (!dragging) return;\n dragging = false;\n document.body.style.cursor = '';\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', endDrag);\n };\n chart.root.addEventListener('mousedown', (e) => {\n if (!e || e.button !== 0 || e.ctrlKey || e.metaKey || e.altKey) return;\n const rect = chart.root.getBoundingClientRect();\n if (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) return;\n \n e.preventDefault();\n e.stopPropagation();\n \n dragging = true;\n startClientX = e.clientX;\n startClientY = e.clientY;\n const cur = getScale();\n startMin = cur.currMin; startMax = cur.currMax;\n \n // Calculate units per pixel once at start of drag to avoid sliding bug\n // chart.bbox.width is in device pixels; divide by pxRatio for CSS pixels\n xUnitsPerPx = (cur.currMax - cur.currMin) / (chart.bbox.width / (chart.pxRatio || 1));\n \n document.body.style.cursor = 'grabbing';\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', endDrag, { once: true });\n });\n}\n";
|
|
24
|
-
export { escapeHtml, serializeJsonForScript, toEpochSeconds, writeChartFile, toFileUrl, embedFunctionSources, UPLOT_SHARED_SCRIPT };
|
|
37
|
+
export { escapeHtml, serializeJsonForScript, toEpochSeconds, writeChartFile, toFileUrl, embedFunctionSources, UPLOT_SHARED_SCRIPT, uplotInlineTags };
|
|
25
38
|
//# sourceMappingURL=chart_utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart_utils.d.ts","sourceRoot":"","sources":["../../analysis/chart_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chart_utils.d.ts","sourceRoot":"","sources":["../../analysis/chart_utils.ts"],"names":[],"mappings":"AA8BA;;;;;;;;GAQG;AACH,iBAAS,eAAe,CAAC,EAAE,GAAU,EAAE,EAAS,EAAE;;;CAAK,UAMtD;AAGD,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,UAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,EAAE,GAAG,UAEzC;AAED,iBAAS,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,UAIhD;AAED,iBAAS,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAExC;AAED,iBAAS,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAa/C;AAED;;;;;;;;;;GAUG;AACH,iBAAS,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAG1D;AAED;;;;GAIG;AACH,QAAA,MAAM,mBAAmB,okIAiGxB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -7,28 +7,39 @@ const { ensureDir } = getStorage();
|
|
|
7
7
|
/**
|
|
8
8
|
* Chart utilities for analysis HTML generators.
|
|
9
9
|
*/
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
|
|
10
|
+
// Vendored uPlot runtime assets are inlined directly into every generated chart
|
|
11
|
+
// (see uplotInlineTags below), so each chart is a single self-contained file
|
|
12
|
+
// that renders anywhere: no DEXBot2 install, no sibling uplot/ dir, no CDN, no
|
|
13
|
+
// network. The vendored originals always live with the code under the analysis
|
|
14
|
+
// assets dir.
|
|
15
|
+
let _uplotRuntime = null;
|
|
16
|
+
function getUplotRuntime() {
|
|
17
|
+
if (!_uplotRuntime) {
|
|
18
|
+
const dir = PATHS.ANALYSIS.ASSETS_DIR;
|
|
19
|
+
_uplotRuntime = {
|
|
20
|
+
css: fs.readFileSync(path.join(dir, 'uPlot.min.css'), 'utf8'),
|
|
21
|
+
js: fs.readFileSync(path.join(dir, 'uPlot.iife.min.js'), 'utf8'),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return _uplotRuntime;
|
|
25
|
+
}
|
|
13
26
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
27
|
+
* Inline <style>/<script> tags carrying the vendored uPlot runtime. Embedding
|
|
28
|
+
* the source (not a relative <script src>) makes a chart portable: it keeps
|
|
29
|
+
* rendering after being copied, mailed, or reopened on a machine without a
|
|
30
|
+
* DEXBot2 installation. The inline script must be the first script that runs,
|
|
31
|
+
* placed before any chart-initialization code, since uPlot must exist first.
|
|
32
|
+
* Both the minified JS (no `</script>`) and CSS (no `</style>`) are safe to
|
|
33
|
+
* embed verbatim.
|
|
18
34
|
*/
|
|
19
|
-
function
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return;
|
|
28
|
-
fs.mkdirSync(targetDir, { recursive: true });
|
|
29
|
-
for (const f of UPLOT_RUNTIME_FILES) {
|
|
30
|
-
fs.copyFileSync(path.join(sourceDir, f), path.join(targetDir, f));
|
|
31
|
-
}
|
|
35
|
+
function uplotInlineTags({ css = true, js = true } = {}) {
|
|
36
|
+
const { css: cssCode, js: jsCode } = getUplotRuntime();
|
|
37
|
+
const parts = [];
|
|
38
|
+
if (css && cssCode)
|
|
39
|
+
parts.push(`<style>\n${cssCode}\n</style>`);
|
|
40
|
+
if (js && jsCode)
|
|
41
|
+
parts.push(`<script>\n${jsCode}\n</script>`);
|
|
42
|
+
return parts.join('\n ');
|
|
32
43
|
}
|
|
33
44
|
function escapeHtml(str) {
|
|
34
45
|
const map = {
|
|
@@ -56,7 +67,6 @@ function writeChartFile(filePath, html) {
|
|
|
56
67
|
const chartDir = path.dirname(filePath);
|
|
57
68
|
if (!fs.existsSync(chartDir))
|
|
58
69
|
ensureDir(chartDir);
|
|
59
|
-
ensureSiblingUplotAssets(chartDir);
|
|
60
70
|
// Atomic write (tmp + rename, matching the production storage adapter
|
|
61
71
|
// pattern) so a crash mid-write can never leave a truncated chart file.
|
|
62
72
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2, 10)}.tmp`;
|
|
@@ -190,5 +200,5 @@ function bindPan(chart) {
|
|
|
190
200
|
});
|
|
191
201
|
}
|
|
192
202
|
`;
|
|
193
|
-
export { escapeHtml, serializeJsonForScript, toEpochSeconds, writeChartFile, toFileUrl, embedFunctionSources, UPLOT_SHARED_SCRIPT };
|
|
203
|
+
export { escapeHtml, serializeJsonForScript, toEpochSeconds, writeChartFile, toFileUrl, embedFunctionSources, UPLOT_SHARED_SCRIPT, uplotInlineTags };
|
|
194
204
|
//# sourceMappingURL=chart_utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart_utils.js","sourceRoot":"","sources":["../../analysis/chart_utils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;AAEnC;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"chart_utils.js","sourceRoot":"","sources":["../../analysis/chart_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivative_chart_generator.d.ts","sourceRoot":"","sources":["../../analysis/derivative_chart_generator.ts"],"names":[],"mappings":";AAYA,iBAAS,SAAS,CAAC,IAAI,WAAwB;eACnB,MAAM,GAAG,IAAI;gBAAc,MAAM;WAAS,MAAM;WAAS,OAAO;EAuB3F;AACD,iBAAS,QAAQ,SAUhB;AACD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,cAIhC;AAmBD,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"derivative_chart_generator.d.ts","sourceRoot":"","sources":["../../analysis/derivative_chart_generator.ts"],"names":[],"mappings":";AAYA,iBAAS,SAAS,CAAC,IAAI,WAAwB;eACnB,MAAM,GAAG,IAAI;gBAAc,MAAM;WAAS,MAAM;WAAS,OAAO;EAuB3F;AACD,iBAAS,QAAQ,SAUhB;AACD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,cAIhC;AAmBD,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,UAkxB7C;AAeD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { pathToFileURL } from 'node:url';
|
|
6
|
-
import { escapeHtml, serializeJsonForScript, toEpochSeconds, UPLOT_SHARED_SCRIPT } from './chart_utils.js';
|
|
6
|
+
import { escapeHtml, serializeJsonForScript, toEpochSeconds, UPLOT_SHARED_SCRIPT, uplotInlineTags } from './chart_utils.js';
|
|
7
7
|
import { getStorage } from '../modules/storage/index.js';
|
|
8
8
|
const { ensureDir, readJSON } = getStorage();
|
|
9
9
|
import { fixedTo } from '../modules/order/utils/math.js';
|
|
@@ -241,8 +241,7 @@ function generateHTML(data, title) {
|
|
|
241
241
|
<meta name="darkreader-lock">
|
|
242
242
|
<meta name="color-scheme" content="dark">
|
|
243
243
|
<title>${escapeHtml(title)}</title>
|
|
244
|
-
|
|
245
|
-
<script src="../uplot/uPlot.iife.min.js"></script>
|
|
244
|
+
${uplotInlineTags()}
|
|
246
245
|
<style>
|
|
247
246
|
:root { color-scheme: dark; }
|
|
248
247
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivative_chart_generator.js","sourceRoot":"","sources":["../../analysis/derivative_chart_generator.ts"],"names":[],"mappings":";AACA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,SAAS,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAoF;QACzF,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;QACzE,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,KAAK;KACf,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aACpD,IAAI,GAAG,KAAK,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aAC3D,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aACrD,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;aACxC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACxC,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,QAAQ;IACb,OAAO,CAAC,GAAG,CAAC;;;;;;;;KAQX,CAAC,CAAC;AACP,CAAC;AACD,SAAS,UAAU,CAAC,KAAa;IAC7B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC;AACb,CAAC;AACD,SAAS,UAAU,CAAC,GAAa;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAA2D,EAAE,CAAS,EAAE,EAAE;QACzF,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;aAClB,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;;YACzB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AACD,SAAS,WAAW,CAAC,GAAU,EAAE,QAAgB,EAAE,QAAgB;IAC/D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAqE,EAAE,CAAS,EAAE,EAAE;QACnG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;aACjC,IAAI,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;;YACtC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,YAAY,CAAC,IAAS,EAAE,KAAa;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,KAAK,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IAC/H,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAChD,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI;QACf,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI;YAC1B,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI;gBAC3B,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACtB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;wBAC3B,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;4BAC1B,CAAC,CAAC,CAAC,CACV,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG;QAClB,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,sBAAsB;QACpC,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,uBAAuB;QACtC,UAAU,EAAE,kBAAkB;KACjC,CAAC;IACF,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAE,aAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,CAAM,EAAE,EAAE;QAChD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM;YAAE,OAAQ,aAAqC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QACzG,QAAQ,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM;gBACP,OAAO,mBAAmB,CAAC;YAC/B,KAAK,WAAW;gBACZ,OAAO,mBAAmB,CAAC;YAC/B,KAAK,MAAM;gBACP,OAAO,mBAAmB,CAAC;YAC/B,KAAK,WAAW;gBACZ,OAAO,mBAAmB,CAAC;YAC/B,KAAK,YAAY;gBACb,OAAO,0BAA0B,CAAC;YACtC,KAAK,UAAU;gBACX,OAAO,wBAAwB,CAAC;YACpC;gBACI,OAAO,iBAAiB,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,MAAM,WAAW,GAAG,UAAU,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,MAAM,cAAc,GAAG,UAAU,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,UAAU,KAAK,CAAC;QAC/E,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG;QAC9C,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACzG,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACvB,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW,CAAC;YACzD,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW,CAAC;YACzD,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,KAAK,KAAK,IAAI;oBAAE,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAChB,IAAI,KAAK,KAAK,IAAI;oBAAE,IAAI,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzG,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3G,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,SAAS,KAAK,KAAK;QAAE,WAAW,CAAC,IAAI,CAAC,OAAO,SAAS,GAAG,CAAC,CAAC;IAC/D,IAAI,UAAU;QAAE,WAAW,CAAC,IAAI,CAAC,WAAW,aAAa,GAAG,CAAC,CAAC;IAC9D,WAAW,CAAC,IAAI,CAAC,QAAQ,QAAQ,IAAI,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IAC7D,WAAW,CAAC,IAAI,CAAC,OAAO,SAAS,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG;gEACyC,OAAO,CAAC,MAAM;;8DAEhB,QAAQ,CAAC,UAAU,CAAC;4DACtB,QAAQ,CAAC,QAAQ,CAAC;;6DAEjB,QAAQ,CAAC,SAAS,CAAC;4DACpB,QAAQ,CAAC,QAAQ,CAAC;;mEAEX,cAAc,CAAC,WAAW,CAAC;mEAC3B,MAAM,CAAC,cAAc,CAAC;;mCAEtD,SAAS,+DAA+D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,qCAAqC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,uCAAuC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;MAC1P,UAAU,CAAC,CAAC,CAAC,oCAAoC,aAAa,+DAA+D,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,qCAAqC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,uCAAuC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;;oCAEpR,QAAQ,IAAI,QAAQ,IAAI,OAAO,+DAA+D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,qCAAqC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,uCAAuC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;mCACvP,SAAS,+DAA+D,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,qCAAqC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;;iGAEzK,YAAY,CAAC,EAAE,qCAAqC,YAAY,CAAC,IAAI;CACrK,CAAC;IACE,MAAM,OAAO,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO;;;;;;aAME,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAqHV,UAAU,CAAC,KAAK,CAAC;gCACL,UAAU,CAAC,MAAM,CAAC;wBAC1B,SAAS;;4DAE2B,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE;;kBAErE,UAAU;;;;;;;;qDAQyB,sBAAsB,CAAC;QACxE,KAAK;QACL,MAAM;QACN,SAAS;QACT,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;QAChD,aAAa;QACb,QAAQ;QACR,UAAU;QACV,UAAU;QACV,YAAY;QACZ,SAAS;QACT,UAAU;QACV,cAAc;QACd,QAAQ;QACR,UAAU;QACV,cAAc;QACd,QAAQ;QACR,eAAe;QACf,mBAAmB;QACnB,aAAa;QACb,eAAe;QACf,mBAAmB;QACnB,aAAa;QACb,YAAY;QACZ,WAAW;QACX,UAAU;QACV,SAAS;QACT,cAAc;QACd,WAAW;QACX,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACxC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QAC5C,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QAC5C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC1C,KAAK;QACL,KAAK;KACR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAgDqB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAkL8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkG3E,SAAS;UACzB,UAAU,CAAC,CAAC,CAAC,uBAAuB,aAAa,sBAAsB,CAAC,CAAC,CAAC,EAAE;;8BAExD,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;UAcvD,UAAU,CAAC,CAAC,CAAC;uFACgE,CAAC,CAAC,CAAC,EAAE;;;6BAG/D,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8E/C,SAAS;;;;;;;;;EASjC,mBAAmB;UACX,gBAAgB,EAAE;;;;;;;;;;;;UAYlB,eAAe,EAAE;;;;;;;;;;QAUnB,CAAC;AACT,CAAC;AACD,KAAK,UAAU,IAAI;IACf,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;AACtE,CAAC;AACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"derivative_chart_generator.js","sourceRoot":"","sources":["../../analysis/derivative_chart_generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/** operation_type of a fill_order operation in the chain history index. */
|
|
2
|
+
declare const OP_FILL_ORDER = 4;
|
|
3
|
+
declare const BTS_ID = "1.3.0";
|
|
4
|
+
interface AssetInfo {
|
|
5
|
+
symbol: string;
|
|
6
|
+
precision: number;
|
|
7
|
+
}
|
|
8
|
+
interface AssetAmount {
|
|
9
|
+
amount: number;
|
|
10
|
+
asset_id: string;
|
|
11
|
+
}
|
|
12
|
+
interface FillRecord {
|
|
13
|
+
time: string;
|
|
14
|
+
blockNum: number;
|
|
15
|
+
opNum: number;
|
|
16
|
+
orderId: string;
|
|
17
|
+
accountId: string;
|
|
18
|
+
pays: AssetAmount;
|
|
19
|
+
receives: AssetAmount;
|
|
20
|
+
fee: AssetAmount;
|
|
21
|
+
isMaker: boolean;
|
|
22
|
+
sort: any[];
|
|
23
|
+
}
|
|
24
|
+
declare const ASSETS: Record<string, AssetInfo>;
|
|
25
|
+
/** Precisions learned on-chain this run (populated by resolveAssetPrecisions). */
|
|
26
|
+
declare const resolvedPrecisions: Record<string, number>;
|
|
27
|
+
declare function assetSymbol(id: string): string;
|
|
28
|
+
declare function assetPrec(id: string): number | undefined;
|
|
29
|
+
declare function toReal(amount: number, assetId: string): number;
|
|
30
|
+
/**
|
|
31
|
+
* Collect all unique non-BTS asset IDs from fills, resolve unknown precisions
|
|
32
|
+
* from the blockchain, and populate the runtime cache.
|
|
33
|
+
*/
|
|
34
|
+
declare function resolveAssetPrecisions(fills: FillRecord[]): Promise<void>;
|
|
35
|
+
declare function buildFillQuery(accountId: string, gte: string, lte: string, size: number): {
|
|
36
|
+
size: number;
|
|
37
|
+
track_total_hits: boolean;
|
|
38
|
+
_source: string[];
|
|
39
|
+
query: {
|
|
40
|
+
bool: {
|
|
41
|
+
filter: ({
|
|
42
|
+
term: {
|
|
43
|
+
operation_type: number;
|
|
44
|
+
'operation_history.op_object.account_id.keyword'?: undefined;
|
|
45
|
+
};
|
|
46
|
+
range?: undefined;
|
|
47
|
+
} | {
|
|
48
|
+
term: {
|
|
49
|
+
'operation_history.op_object.account_id.keyword': string;
|
|
50
|
+
operation_type?: undefined;
|
|
51
|
+
};
|
|
52
|
+
range?: undefined;
|
|
53
|
+
} | {
|
|
54
|
+
range: {
|
|
55
|
+
'block_data.block_time': {
|
|
56
|
+
gte: string;
|
|
57
|
+
lte: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
term?: undefined;
|
|
61
|
+
})[];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
sort: ({
|
|
65
|
+
'block_data.block_time': {
|
|
66
|
+
order: string;
|
|
67
|
+
};
|
|
68
|
+
operation_id_num?: undefined;
|
|
69
|
+
} | {
|
|
70
|
+
operation_id_num: {
|
|
71
|
+
order: string;
|
|
72
|
+
};
|
|
73
|
+
'block_data.block_time'?: undefined;
|
|
74
|
+
})[];
|
|
75
|
+
};
|
|
76
|
+
/** Fetch every fill_order for an account in [gte, lte], paginated via search_after. */
|
|
77
|
+
declare function fetchAllFills(config: any, accountId: string, gte: string, lte: string): Promise<FillRecord[]>;
|
|
78
|
+
export { BTS_ID, OP_FILL_ORDER, ASSETS, resolvedPrecisions, assetSymbol, assetPrec, toReal, resolveAssetPrecisions, buildFillQuery, fetchAllFills, AssetInfo, AssetAmount, FillRecord, };
|
|
79
|
+
//# sourceMappingURL=fills_source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fills_source.d.ts","sourceRoot":"","sources":["../../analysis/fills_source.ts"],"names":[],"mappings":"AAiBA,2EAA2E;AAC3E,QAAA,MAAM,aAAa,IAAI,CAAC;AACxB,QAAA,MAAM,MAAM,UAAU,CAAC;AAEvB,UAAU,SAAS;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,WAAW;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACf;AAED,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA6CrC,CAAC;AAEF,kFAAkF;AAClF,QAAA,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAEtD,iBAAS,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,iBAAS,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjD;AAED,iBAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;;GAGG;AACH,iBAAe,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxE;AAED,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BhF;AAED,uFAAuF;AACvF,iBAAe,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAuC5G;AAED,OAAO,EACH,MAAM,EACN,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,MAAM,EACN,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,GACb,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* SHARED FILLS SOURCE (analysis)
|
|
4
|
+
*
|
|
5
|
+
* Single implementation of the Kibana `fill_order` pipeline and the asset
|
|
6
|
+
* precision table/cache used by the fill-based analysis tools. Both
|
|
7
|
+
* trade_profitability.ts and grid_correction_check.ts carried verbatim copies
|
|
8
|
+
* of this (43-entry ASSETS table, toReal/assetPrec helpers, on-chain precision
|
|
9
|
+
* resolution, query builder and paginated fetch); all of it lives here now.
|
|
10
|
+
*/
|
|
11
|
+
import * as KC from '../market_adapter/core/kibana_client.js';
|
|
12
|
+
import { withReadOnlyClient } from './chain_pool.js';
|
|
13
|
+
const { kibanaSearch, DEFAULT_CONFIG: BASE_CONFIG } = KC;
|
|
14
|
+
/** operation_type of a fill_order operation in the chain history index. */
|
|
15
|
+
const OP_FILL_ORDER = 4;
|
|
16
|
+
const BTS_ID = '1.3.0';
|
|
17
|
+
const ASSETS = {
|
|
18
|
+
'1.3.0': { symbol: 'BTS', precision: 5 },
|
|
19
|
+
'1.3.118': { symbol: 'GBP', precision: 4 },
|
|
20
|
+
'1.3.119': { symbol: 'JPY', precision: 2 },
|
|
21
|
+
'1.3.120': { symbol: 'EUR', precision: 4 },
|
|
22
|
+
'1.3.1325': { symbol: 'RUBLE', precision: 5 },
|
|
23
|
+
'1.3.2512': { symbol: 'EVRAZ', precision: 4 },
|
|
24
|
+
'1.3.3291': { symbol: 'TWENTIX', precision: 5 },
|
|
25
|
+
'1.3.4099': { symbol: 'XBTSX.STH', precision: 6 },
|
|
26
|
+
'1.3.4156': { symbol: 'XBTSX.DOGE', precision: 5 },
|
|
27
|
+
'1.3.4157': { symbol: 'XBTSX.BTC', precision: 8 },
|
|
28
|
+
'1.3.4159': { symbol: 'XBTSX.LTC', precision: 8 },
|
|
29
|
+
'1.3.4176': { symbol: 'XBTSX.DASH', precision: 8 },
|
|
30
|
+
'1.3.4274': { symbol: 'XBTSX.BCH', precision: 8 },
|
|
31
|
+
'1.3.4760': { symbol: 'XBTSX.ETH', precision: 7 },
|
|
32
|
+
'1.3.5537': { symbol: 'IOB.XRP', precision: 4 },
|
|
33
|
+
'1.3.5541': { symbol: 'XBTSX.BNB', precision: 7 },
|
|
34
|
+
'1.3.5589': { symbol: 'XBTSX.USDT', precision: 6 },
|
|
35
|
+
'1.3.5641': { symbol: 'HONEST.CNY', precision: 4 },
|
|
36
|
+
'1.3.5649': { symbol: 'HONEST.USD', precision: 4 },
|
|
37
|
+
'1.3.5650': { symbol: 'HONEST.BTC', precision: 8 },
|
|
38
|
+
'1.3.5659': { symbol: 'HONEST.ETH', precision: 6 },
|
|
39
|
+
'1.3.5870': { symbol: 'XBTSX.FIL', precision: 6 },
|
|
40
|
+
'1.3.5887': { symbol: 'XBTSX.RUB', precision: 4 },
|
|
41
|
+
'1.3.5902': { symbol: 'XBTSX.USDC', precision: 6 },
|
|
42
|
+
'1.3.6013': { symbol: 'XBTSX.HIVE', precision: 6 },
|
|
43
|
+
'1.3.6124': { symbol: 'XBTSX.AVAX', precision: 6 },
|
|
44
|
+
'1.3.6139': { symbol: 'XBTSX.XAUT', precision: 6 },
|
|
45
|
+
'1.3.6166': { symbol: 'XBTSX.MATIC', precision: 5 },
|
|
46
|
+
'1.3.6241': { symbol: 'XBTSX.ETC', precision: 7 },
|
|
47
|
+
'1.3.6268': { symbol: 'BTWTY.EOS', precision: 4 },
|
|
48
|
+
'1.3.6301': { symbol: 'HONEST.MONEY', precision: 8 },
|
|
49
|
+
'1.3.6304': { symbol: 'HONEST.ADA', precision: 8 },
|
|
50
|
+
'1.3.6305': { symbol: 'HONEST.DOT', precision: 8 },
|
|
51
|
+
'1.3.6309': { symbol: 'HONEST.ATOM', precision: 8 },
|
|
52
|
+
'1.3.6311': { symbol: 'HONEST.ALGO', precision: 8 },
|
|
53
|
+
'1.3.6312': { symbol: 'HONEST.FIL', precision: 8 },
|
|
54
|
+
'1.3.6313': { symbol: 'HONEST.EOS', precision: 8 },
|
|
55
|
+
'1.3.6315': { symbol: 'HONEST.EUR', precision: 4 },
|
|
56
|
+
'1.3.6316': { symbol: 'HONEST.GBP', precision: 4 },
|
|
57
|
+
'1.3.6317': { symbol: 'HONEST.JPY', precision: 4 },
|
|
58
|
+
'1.3.6444': { symbol: 'IOB.XLM', precision: 4 },
|
|
59
|
+
'1.3.6573': { symbol: 'XBTSX.DAI', precision: 6 },
|
|
60
|
+
'1.3.6620': { symbol: 'XBTSX.A', precision: 6 },
|
|
61
|
+
'1.3.6627': { symbol: 'XBTSX.LINK', precision: 6 },
|
|
62
|
+
};
|
|
63
|
+
/** Precisions learned on-chain this run (populated by resolveAssetPrecisions). */
|
|
64
|
+
const resolvedPrecisions = {};
|
|
65
|
+
function assetSymbol(id) {
|
|
66
|
+
return ASSETS[id]?.symbol ?? id;
|
|
67
|
+
}
|
|
68
|
+
function assetPrec(id) {
|
|
69
|
+
return ASSETS[id]?.precision ?? resolvedPrecisions[id];
|
|
70
|
+
}
|
|
71
|
+
function toReal(amount, assetId) {
|
|
72
|
+
const p = assetPrec(assetId);
|
|
73
|
+
if (p === undefined)
|
|
74
|
+
return NaN;
|
|
75
|
+
return amount / Math.pow(10, p);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Collect all unique non-BTS asset IDs from fills, resolve unknown precisions
|
|
79
|
+
* from the blockchain, and populate the runtime cache.
|
|
80
|
+
*/
|
|
81
|
+
async function resolveAssetPrecisions(fills) {
|
|
82
|
+
const unknownIds = new Set();
|
|
83
|
+
for (const f of fills) {
|
|
84
|
+
for (const id of [f.pays.asset_id, f.receives.asset_id, f.fee.asset_id]) {
|
|
85
|
+
if (id !== BTS_ID && !(id in ASSETS) && !(id in resolvedPrecisions)) {
|
|
86
|
+
unknownIds.add(id);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (unknownIds.size === 0)
|
|
91
|
+
return;
|
|
92
|
+
const ids = [...unknownIds];
|
|
93
|
+
console.log(` Resolving ${ids.length} unknown asset(s) from blockchain...`);
|
|
94
|
+
try {
|
|
95
|
+
await withReadOnlyClient(async (client) => {
|
|
96
|
+
const assets = await client.db('get_assets', [ids]);
|
|
97
|
+
if (Array.isArray(assets)) {
|
|
98
|
+
for (const asset of assets) {
|
|
99
|
+
if (asset?.id && asset.precision != null) {
|
|
100
|
+
resolvedPrecisions[asset.id] = asset.precision;
|
|
101
|
+
console.log(` ${asset.id} → ${asset.symbol || '?'} (precision ${asset.precision})`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const missing = ids.filter(id => !(id in resolvedPrecisions));
|
|
106
|
+
if (missing.length > 0) {
|
|
107
|
+
console.warn(` [warn] ${missing.length} asset(s) not found on chain: ${missing.join(', ')}. Fills referencing them will be skipped.`);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
console.warn(` [warn] Asset resolution failed: ${e.message}. Fills with unknown assets will be skipped.`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function buildFillQuery(accountId, gte, lte, size) {
|
|
116
|
+
return {
|
|
117
|
+
size,
|
|
118
|
+
track_total_hits: false,
|
|
119
|
+
_source: [
|
|
120
|
+
'block_data.block_time',
|
|
121
|
+
'block_data.block_num',
|
|
122
|
+
'operation_id_num',
|
|
123
|
+
'operation_history.op_object.pays',
|
|
124
|
+
'operation_history.op_object.receives',
|
|
125
|
+
'operation_history.op_object.fee',
|
|
126
|
+
'operation_history.op_object.order_id',
|
|
127
|
+
'operation_history.op_object.account_id',
|
|
128
|
+
'operation_history.op_object.is_maker',
|
|
129
|
+
],
|
|
130
|
+
query: {
|
|
131
|
+
bool: {
|
|
132
|
+
filter: [
|
|
133
|
+
{ term: { operation_type: OP_FILL_ORDER } },
|
|
134
|
+
{ term: { 'operation_history.op_object.account_id.keyword': accountId } },
|
|
135
|
+
{ range: { 'block_data.block_time': { gte, lte } } },
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
sort: [
|
|
140
|
+
{ 'block_data.block_time': { order: 'asc' } },
|
|
141
|
+
{ operation_id_num: { order: 'asc' } },
|
|
142
|
+
],
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** Fetch every fill_order for an account in [gte, lte], paginated via search_after. */
|
|
146
|
+
async function fetchAllFills(config, accountId, gte, lte) {
|
|
147
|
+
const pageSize = 10000;
|
|
148
|
+
const fills = [];
|
|
149
|
+
let searchAfter = null;
|
|
150
|
+
const cfg = { ...BASE_CONFIG, timeout: 60000, ...config };
|
|
151
|
+
while (true) {
|
|
152
|
+
const query = buildFillQuery(accountId, gte, lte, pageSize);
|
|
153
|
+
if (searchAfter)
|
|
154
|
+
query.search_after = searchAfter;
|
|
155
|
+
const result = await kibanaSearch(cfg, query);
|
|
156
|
+
const hits = result?.hits?.hits ?? [];
|
|
157
|
+
if (!hits.length)
|
|
158
|
+
break;
|
|
159
|
+
for (const hit of hits) {
|
|
160
|
+
const src = hit?._source;
|
|
161
|
+
const op = src?.operation_history?.op_object;
|
|
162
|
+
if (!op || !op.pays || !op.receives)
|
|
163
|
+
continue;
|
|
164
|
+
fills.push({
|
|
165
|
+
time: src.block_data?.block_time ?? '',
|
|
166
|
+
blockNum: src.block_data?.block_num ?? 0,
|
|
167
|
+
opNum: Number(src.operation_id_num ?? 0),
|
|
168
|
+
orderId: op.order_id ?? '',
|
|
169
|
+
accountId: op.account_id ?? '',
|
|
170
|
+
pays: { amount: Number(op.pays.amount ?? 0), asset_id: op.pays.asset_id ?? '' },
|
|
171
|
+
receives: { amount: Number(op.receives.amount ?? 0), asset_id: op.receives.asset_id ?? '' },
|
|
172
|
+
fee: { amount: Number(op.fee?.amount ?? 0), asset_id: op.fee?.asset_id ?? '' },
|
|
173
|
+
isMaker: op.is_maker ?? false,
|
|
174
|
+
sort: hit.sort,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (hits.length < pageSize)
|
|
178
|
+
break;
|
|
179
|
+
searchAfter = hits[hits.length - 1].sort;
|
|
180
|
+
if (!Array.isArray(searchAfter))
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
return fills;
|
|
184
|
+
}
|
|
185
|
+
export { BTS_ID, OP_FILL_ORDER, ASSETS, resolvedPrecisions, assetSymbol, assetPrec, toReal, resolveAssetPrecisions, buildFillQuery, fetchAllFills, };
|
|
186
|
+
//# sourceMappingURL=fills_source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fills_source.js","sourceRoot":"","sources":["../../analysis/fills_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
time: string;
|
|
4
|
-
blockNum: number;
|
|
5
|
-
opNum: number;
|
|
6
|
-
orderId: string;
|
|
7
|
-
accountId: string;
|
|
8
|
-
pays: {
|
|
9
|
-
amount: number;
|
|
10
|
-
asset_id: string;
|
|
11
|
-
};
|
|
12
|
-
receives: {
|
|
13
|
-
amount: number;
|
|
14
|
-
asset_id: string;
|
|
15
|
-
};
|
|
16
|
-
fee: {
|
|
17
|
-
amount: number;
|
|
18
|
-
asset_id: string;
|
|
19
|
-
};
|
|
20
|
-
isMaker: boolean;
|
|
21
|
-
sort: any[];
|
|
22
|
-
}
|
|
2
|
+
import { FillRecord } from './fills_source.js';
|
|
23
3
|
interface OrderUpdate {
|
|
24
4
|
orderId: string;
|
|
25
5
|
sequence: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid_correction_check.d.ts","sourceRoot":"","sources":["../../analysis/grid_correction_check.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"grid_correction_check.d.ts","sourceRoot":"","sources":["../../analysis/grid_correction_check.ts"],"names":[],"mappings":";AAyCA,OAAO,EAEH,UAAU,EAMb,MAAM,mBAAmB,CAAC;AAO3B,UAAU,WAAW;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,SAAS;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,sBAAsB,CAC3B,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,GAAG,EACd,QAAQ,EAAE,GAAG,EACb,gBAAgB,EAAE,GAAG,GACtB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAiBzF;AAsND,iBAAS,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuDpF;AAKD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,WAAW,EAAO,GAAG,eAAe,EAAE,CAyD7F;AAGD,iBAAS,gBAAgB,CACrB,KAAK,EAAE,CAAC,SAAS,GAAG,eAAe,CAAC,EAAE,EACtC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,GACzB;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAyD/E;AA4PD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC"}
|