chia-agent 14.5.0 → 16.0.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +59 -1
  2. package/README.md +34 -7
  3. package/api/chia/consensus/cost_calculator.d.ts +2 -1
  4. package/api/chia/data_layer/data_layer_util.d.ts +3 -2
  5. package/api/chia/data_layer/data_layer_wallet.d.ts +2 -14
  6. package/api/chia/data_layer/singleton_record.d.ts +15 -0
  7. package/api/chia/farmer/farmer.d.ts +2 -1
  8. package/api/chia/harvester/harvester.d.ts +4 -2
  9. package/api/chia/plot-sync/receiver.d.ts +3 -2
  10. package/api/chia/pools/pool_config.d.ts +3 -2
  11. package/api/chia/pools/pool_wallet_info.d.ts +4 -2
  12. package/api/chia/protocols/farmer_protocol.d.ts +7 -5
  13. package/api/chia/protocols/harvester_protocol.d.ts +4 -2
  14. package/api/chia/protocols/pool_protocol.d.ts +4 -2
  15. package/api/chia/rpc/util.d.ts +2 -1
  16. package/api/chia/rpc/wallet_request_types.d.ts +5 -2
  17. package/api/chia/types/_python_types_.d.ts +0 -14
  18. package/api/chia/types/clvm_cost.d.ts +1 -1
  19. package/api/chia/types/coin_record.d.ts +2 -1
  20. package/api/chia/types/mempool_item.d.ts +4 -2
  21. package/api/chia/types/mojos.d.ts +1 -1
  22. package/api/chia/types/unfinished_header_block.d.ts +2 -2
  23. package/api/chia/util/keychain.d.ts +4 -1
  24. package/api/chia/util/streamable.d.ts +2 -1
  25. package/api/chia/wallet/conditions.d.ts +2 -1
  26. package/api/chia/wallet/lineage_proof.d.ts +3 -2
  27. package/api/chia/wallet/nft_wallet/nft_info.d.ts +3 -2
  28. package/api/chia/wallet/notification_store.d.ts +3 -2
  29. package/api/chia/wallet/puzzles/clawback/metadata.d.ts +3 -2
  30. package/api/chia/wallet/signer_protocol.d.ts +3 -2
  31. package/api/chia/wallet/trade_record.d.ts +3 -2
  32. package/api/chia/wallet/transaction_record.d.ts +3 -2
  33. package/api/chia/wallet/util/quality_filter.d.ts +2 -2
  34. package/api/chia/wallet/util/tx_config.d.ts +3 -2
  35. package/api/chia/wallet/util/wallet_types.d.ts +1 -3
  36. package/api/chia/wallet/util/wallet_types.js +0 -2
  37. package/api/chia/wallet/vc_wallet/vc_drivers.d.ts +1 -1
  38. package/api/chia/wallet/vc_wallet/vc_store.d.ts +1 -1
  39. package/api/chia/wallet/wallet_coin_record.d.ts +6 -5
  40. package/api/chia/wallet/wallet_coin_store.d.ts +2 -1
  41. package/api/chia/wallet/wallet_info.d.ts +2 -1
  42. package/api/chia/wallet/wallet_node.d.ts +1 -1
  43. package/api/chia_rs/chia-bls/lib.d.ts +4 -0
  44. package/api/chia_rs/chia-bls/public_key.d.ts +1 -2
  45. package/api/chia_rs/chia-bls/secret_key.d.ts +1 -0
  46. package/api/chia_rs/chia-bls/signature.d.ts +1 -0
  47. package/api/chia_rs/chia-consensus/gen/owned_conditions.d.ts +3 -2
  48. package/api/chia_rs/chia-protocol/block_record.d.ts +3 -2
  49. package/api/chia_rs/chia-protocol/classgroup.d.ts +1 -1
  50. package/api/chia_rs/chia-protocol/coin.d.ts +2 -2
  51. package/api/chia_rs/chia-protocol/foliage.d.ts +4 -2
  52. package/api/chia_rs/chia-protocol/fullblock.d.ts +2 -1
  53. package/api/chia_rs/chia-protocol/pool_target.d.ts +2 -2
  54. package/api/chia_rs/chia-protocol/proof_of_space.d.ts +4 -2
  55. package/api/chia_rs/chia-protocol/reward_chain_block.d.ts +4 -2
  56. package/api/chia_rs/chia-protocol/slots.d.ts +3 -2
  57. package/api/chia_rs/chia-protocol/spend_bundle.d.ts +1 -1
  58. package/api/chia_rs/chia-protocol/sub_epoch_summary.d.ts +3 -2
  59. package/api/chia_rs/chia-protocol/unfinished_block.d.ts +2 -1
  60. package/api/chia_rs/chia-protocol/vdf.d.ts +3 -2
  61. package/api/chia_rs/wheel/python/sized_bytes.d.ts +7 -0
  62. package/api/chia_rs/wheel/python/sized_ints.d.ts +11 -0
  63. package/api/pool-reference/pool/record.d.ts +4 -2
  64. package/api/rpc/common/index.d.ts +2 -1
  65. package/api/rpc/common/index.js +34 -65
  66. package/api/rpc/crawler/index.d.ts +3 -2
  67. package/api/rpc/crawler/index.js +7 -20
  68. package/api/rpc/data_layer/index.d.ts +3 -2
  69. package/api/rpc/data_layer/index.js +106 -186
  70. package/api/rpc/farmer/index.d.ts +3 -2
  71. package/api/rpc/farmer/index.js +40 -75
  72. package/api/rpc/full_node/index.d.ts +6 -5
  73. package/api/rpc/full_node/index.js +112 -196
  74. package/api/rpc/harvester/index.d.ts +2 -1
  75. package/api/rpc/harvester/index.js +25 -50
  76. package/api/rpc/index.d.ts +2 -2
  77. package/api/rpc/index.js +3 -17
  78. package/api/rpc/pool/index.d.ts +2 -1
  79. package/api/rpc/pool/index.js +18 -40
  80. package/api/rpc/wallet/index.d.ts +9 -260
  81. package/api/rpc/wallet/index.js +388 -755
  82. package/api/types.d.ts +3 -2
  83. package/api/ws/chia_plots_create/index.js +20 -32
  84. package/api/ws/crawler/index.d.ts +3 -2
  85. package/api/ws/crawler/index.js +21 -32
  86. package/api/ws/daemon/index.d.ts +3 -1
  87. package/api/ws/daemon/index.js +125 -212
  88. package/api/ws/farmer/index.d.ts +3 -2
  89. package/api/ws/farmer/index.js +112 -134
  90. package/api/ws/full_node/index.d.ts +8 -7
  91. package/api/ws/full_node/index.js +59 -76
  92. package/api/ws/harvester/index.d.ts +2 -1
  93. package/api/ws/harvester/index.js +60 -76
  94. package/api/ws/timelord/index.d.ts +3 -2
  95. package/api/ws/timelord/index.js +40 -54
  96. package/api/ws/wallet/index.d.ts +2 -1
  97. package/api/ws/wallet/index.js +72 -90
  98. package/bin/cli.js +40 -51
  99. package/config/index.js +13 -9
  100. package/daemon/connection.js +2 -2
  101. package/daemon/index.d.ts +28 -5
  102. package/daemon/index.js +262 -123
  103. package/logger.d.ts +43 -16
  104. package/logger.js +219 -49
  105. package/package.json +9 -4
  106. package/rpc/index.d.ts +4 -3
  107. package/rpc/index.js +174 -134
  108. package/api/chia/types/blockchain_format/foliage.d.ts +0 -1
  109. package/api/chia/types/blockchain_format/pool_target.d.ts +0 -1
  110. package/api/chia/types/blockchain_format/reward_chain_block.d.ts +0 -1
  111. package/api/chia/types/blockchain_format/sized_bytes.d.ts +0 -8
  112. package/api/chia/wallet/dao_wallet/dao_info.d.ts +0 -39
  113. package/api/chia/wallet/dao_wallet/dao_wallet.d.ts +0 -35
  114. /package/api/chia/{types/blockchain_format/foliage.js → data_layer/singleton_record.js} +0 -0
  115. /package/api/{chia/types/blockchain_format/pool_target.js → chia_rs/chia-bls/lib.js} +0 -0
  116. /package/api/{chia/types/blockchain_format/reward_chain_block.js → chia_rs/chia-bls/secret_key.js} +0 -0
  117. /package/api/{chia/types/blockchain_format/sized_bytes.js → chia_rs/chia-bls/signature.js} +0 -0
  118. /package/api/{chia/wallet/dao_wallet/dao_info.js → chia_rs/wheel/python/sized_bytes.js} +0 -0
  119. /package/api/{chia/wallet/dao_wallet/dao_wallet.js → chia_rs/wheel/python/sized_ints.js} +0 -0
@@ -1,66 +1,52 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.on_new_peak = exports.new_peak_command = exports.on_skipping_peak = exports.skipping_peak_command = exports.on_new_compact_proof = exports.new_compact_proof_command = exports.on_finished_pot = exports.finished_pot_command = exports.chia_timelord_service = void 0;
3
+ exports.new_peak_command = exports.skipping_peak_command = exports.new_compact_proof_command = exports.finished_pot_command = exports.chia_timelord_service = void 0;
4
+ exports.on_finished_pot = on_finished_pot;
5
+ exports.on_new_compact_proof = on_new_compact_proof;
6
+ exports.on_skipping_peak = on_skipping_peak;
7
+ exports.on_new_peak = on_new_peak;
13
8
  const types_1 = require("../../types");
14
9
  exports.chia_timelord_service = "chia_timelord";
15
10
  exports.finished_pot_command = "finished_pot";
16
- function on_finished_pot(daemon, callback) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- yield daemon.subscribe(types_1.metrics_service);
19
- const messageListener = (e) => {
20
- if (e.origin === exports.chia_timelord_service && e.command === exports.finished_pot_command) {
21
- callback(e);
22
- }
23
- };
24
- return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
25
- });
11
+ async function on_finished_pot(daemon, callback) {
12
+ await daemon.subscribe(types_1.metrics_service);
13
+ const messageListener = (e) => {
14
+ if (e.origin === exports.chia_timelord_service &&
15
+ e.command === exports.finished_pot_command) {
16
+ callback(e);
17
+ }
18
+ };
19
+ return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
26
20
  }
27
- exports.on_finished_pot = on_finished_pot;
28
21
  exports.new_compact_proof_command = "new_compact_proof";
29
- function on_new_compact_proof(daemon, callback) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- yield daemon.subscribe(types_1.metrics_service);
32
- const messageListener = (e) => {
33
- if (e.origin === exports.chia_timelord_service && e.command === exports.new_compact_proof_command) {
34
- callback(e);
35
- }
36
- };
37
- return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
38
- });
22
+ async function on_new_compact_proof(daemon, callback) {
23
+ await daemon.subscribe(types_1.metrics_service);
24
+ const messageListener = (e) => {
25
+ if (e.origin === exports.chia_timelord_service &&
26
+ e.command === exports.new_compact_proof_command) {
27
+ callback(e);
28
+ }
29
+ };
30
+ return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
39
31
  }
40
- exports.on_new_compact_proof = on_new_compact_proof;
41
32
  exports.skipping_peak_command = "skipping_peak";
42
- function on_skipping_peak(daemon, callback) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- yield daemon.subscribe(types_1.metrics_service);
45
- const messageListener = (e) => {
46
- if (e.origin === exports.chia_timelord_service && e.command === exports.skipping_peak_command) {
47
- callback(e);
48
- }
49
- };
50
- return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
51
- });
33
+ async function on_skipping_peak(daemon, callback) {
34
+ await daemon.subscribe(types_1.metrics_service);
35
+ const messageListener = (e) => {
36
+ if (e.origin === exports.chia_timelord_service &&
37
+ e.command === exports.skipping_peak_command) {
38
+ callback(e);
39
+ }
40
+ };
41
+ return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
52
42
  }
53
- exports.on_skipping_peak = on_skipping_peak;
54
43
  exports.new_peak_command = "new_peak";
55
- function on_new_peak(daemon, callback) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- yield daemon.subscribe(types_1.metrics_service);
58
- const messageListener = (e) => {
59
- if (e.origin === exports.chia_timelord_service && e.command === exports.new_peak_command) {
60
- callback(e);
61
- }
62
- };
63
- return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
64
- });
44
+ async function on_new_peak(daemon, callback) {
45
+ await daemon.subscribe(types_1.metrics_service);
46
+ const messageListener = (e) => {
47
+ if (e.origin === exports.chia_timelord_service && e.command === exports.new_peak_command) {
48
+ callback(e);
49
+ }
50
+ };
51
+ return daemon.addMessageListener(exports.chia_timelord_service, messageListener);
65
52
  }
66
- exports.on_new_peak = on_new_peak;
@@ -1,6 +1,7 @@
1
1
  import { TDaemon } from "../../../daemon/index";
2
2
  import { GetMessageType, TConnectionGeneral } from "../../types";
3
- import { int, str, uint32 } from "../../chia/types/_python_types_";
3
+ import { str } from "../../chia/types/_python_types_";
4
+ import { int, uint32 } from "../../chia_rs/wheel/python/sized_ints";
4
5
  import { TransactionRecord } from "../../chia/wallet/transaction_record";
5
6
  export declare const chia_wallet_service = "chia_wallet";
6
7
  export type chia_wallet_service = typeof chia_wallet_service;
@@ -1,108 +1,90 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.on_message_from_wallet = exports.on_close_connection = exports.close_connection_command = exports.on_add_connection = exports.add_connection_command = exports.on_coin_added = exports.coin_added_command = exports.on_sync_changed = exports.sync_changed_command = exports.on_state_changed_of_wallet = exports.state_changed_command_of_wallet = exports.on_get_connections = exports.get_connections_command = exports.chia_wallet_service = void 0;
3
+ exports.close_connection_command = exports.add_connection_command = exports.coin_added_command = exports.sync_changed_command = exports.state_changed_command_of_wallet = exports.get_connections_command = exports.chia_wallet_service = void 0;
4
+ exports.on_get_connections = on_get_connections;
5
+ exports.on_state_changed_of_wallet = on_state_changed_of_wallet;
6
+ exports.on_sync_changed = on_sync_changed;
7
+ exports.on_coin_added = on_coin_added;
8
+ exports.on_add_connection = on_add_connection;
9
+ exports.on_close_connection = on_close_connection;
10
+ exports.on_message_from_wallet = on_message_from_wallet;
13
11
  const types_1 = require("../../types");
14
12
  exports.chia_wallet_service = "chia_wallet";
15
13
  exports.get_connections_command = "get_connections";
16
- function on_get_connections(daemon, callback) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- yield daemon.subscribe(types_1.wallet_ui_service);
19
- const messageListener = (e) => {
20
- if (e.origin === exports.chia_wallet_service && e.command === exports.get_connections_command) {
21
- callback(e);
22
- }
23
- };
24
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
25
- });
14
+ async function on_get_connections(daemon, callback) {
15
+ await daemon.subscribe(types_1.wallet_ui_service);
16
+ const messageListener = (e) => {
17
+ if (e.origin === exports.chia_wallet_service &&
18
+ e.command === exports.get_connections_command) {
19
+ callback(e);
20
+ }
21
+ };
22
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
26
23
  }
27
- exports.on_get_connections = on_get_connections;
28
24
  exports.state_changed_command_of_wallet = "state_changed";
29
- function on_state_changed_of_wallet(daemon, callback) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- yield daemon.subscribe(types_1.wallet_ui_service);
32
- const messageListener = (e) => {
33
- if (e.origin === exports.chia_wallet_service && e.command === exports.state_changed_command_of_wallet) {
34
- callback(e);
35
- }
36
- };
37
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
38
- });
25
+ async function on_state_changed_of_wallet(daemon, callback) {
26
+ await daemon.subscribe(types_1.wallet_ui_service);
27
+ const messageListener = (e) => {
28
+ if (e.origin === exports.chia_wallet_service &&
29
+ e.command === exports.state_changed_command_of_wallet) {
30
+ callback(e);
31
+ }
32
+ };
33
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
39
34
  }
40
- exports.on_state_changed_of_wallet = on_state_changed_of_wallet;
41
35
  // "sync_changed", "coin_added", "add_connection" and "close_connection" below are for metrics services.
42
36
  exports.sync_changed_command = "sync_changed";
43
- function on_sync_changed(daemon, callback) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- yield daemon.subscribe(types_1.metrics_service);
46
- const messageListener = (e) => {
47
- if (e.origin === exports.chia_wallet_service && e.command === exports.sync_changed_command) {
48
- callback(e);
49
- }
50
- };
51
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
52
- });
37
+ async function on_sync_changed(daemon, callback) {
38
+ await daemon.subscribe(types_1.metrics_service);
39
+ const messageListener = (e) => {
40
+ if (e.origin === exports.chia_wallet_service &&
41
+ e.command === exports.sync_changed_command) {
42
+ callback(e);
43
+ }
44
+ };
45
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
53
46
  }
54
- exports.on_sync_changed = on_sync_changed;
55
47
  exports.coin_added_command = "coin_added";
56
- function on_coin_added(daemon, callback) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- yield daemon.subscribe(types_1.metrics_service);
59
- const messageListener = (e) => {
60
- if (e.origin === exports.chia_wallet_service && e.command === exports.coin_added_command) {
61
- callback(e);
62
- }
63
- };
64
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
65
- });
48
+ async function on_coin_added(daemon, callback) {
49
+ await daemon.subscribe(types_1.metrics_service);
50
+ const messageListener = (e) => {
51
+ if (e.origin === exports.chia_wallet_service && e.command === exports.coin_added_command) {
52
+ callback(e);
53
+ }
54
+ };
55
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
66
56
  }
67
- exports.on_coin_added = on_coin_added;
68
57
  exports.add_connection_command = "add_connection";
69
- function on_add_connection(daemon, callback) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- yield daemon.subscribe(types_1.metrics_service);
72
- const messageListener = (e) => {
73
- if (e.origin === exports.chia_wallet_service && e.command === exports.add_connection_command) {
74
- callback(e);
75
- }
76
- };
77
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
78
- });
58
+ async function on_add_connection(daemon, callback) {
59
+ await daemon.subscribe(types_1.metrics_service);
60
+ const messageListener = (e) => {
61
+ if (e.origin === exports.chia_wallet_service &&
62
+ e.command === exports.add_connection_command) {
63
+ callback(e);
64
+ }
65
+ };
66
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
79
67
  }
80
- exports.on_add_connection = on_add_connection;
81
68
  exports.close_connection_command = "close_connection";
82
- function on_close_connection(daemon, callback) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- yield daemon.subscribe(types_1.metrics_service);
85
- const messageListener = (e) => {
86
- if (e.origin === exports.chia_wallet_service && e.command === exports.close_connection_command) {
87
- callback(e);
88
- }
89
- };
90
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
91
- });
69
+ async function on_close_connection(daemon, callback) {
70
+ await daemon.subscribe(types_1.metrics_service);
71
+ const messageListener = (e) => {
72
+ if (e.origin === exports.chia_wallet_service &&
73
+ e.command === exports.close_connection_command) {
74
+ callback(e);
75
+ }
76
+ };
77
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
92
78
  }
93
- exports.on_close_connection = on_close_connection;
94
- function on_message_from_wallet(daemon, callback) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- yield Promise.all([
97
- daemon.subscribe(types_1.wallet_ui_service),
98
- daemon.subscribe(types_1.metrics_service),
99
- ]);
100
- const messageListener = (e) => {
101
- if (e.origin === exports.chia_wallet_service) {
102
- callback(e);
103
- }
104
- };
105
- return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
106
- });
79
+ async function on_message_from_wallet(daemon, callback) {
80
+ await Promise.all([
81
+ daemon.subscribe(types_1.wallet_ui_service),
82
+ daemon.subscribe(types_1.metrics_service),
83
+ ]);
84
+ const messageListener = (e) => {
85
+ if (e.origin === exports.chia_wallet_service) {
86
+ callback(e);
87
+ }
88
+ };
89
+ return daemon.addMessageListener(exports.chia_wallet_service, messageListener);
107
90
  }
108
- exports.on_message_from_wallet = on_message_from_wallet;
package/bin/cli.js CHANGED
@@ -1,14 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
3
  Object.defineProperty(exports, "__esModule", { value: true });
13
4
  const index_1 = require("../daemon/index");
14
5
  const logger_1 = require("../logger");
@@ -27,49 +18,47 @@ const command = argv[0];
27
18
  if (command === "farm") {
28
19
  const subCommand = argv[1];
29
20
  if (subCommand === "monitor") {
30
- (function () {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const daemon = (0, index_1.getDaemon)();
33
- yield daemon.connect();
34
- yield daemon.subscribe("wallet_ui");
35
- let sumPassedFilter = 0;
36
- let sumTotalPlot = 0;
37
- let sumTotalProof = 0;
38
- const unsubscribe = yield (0, index_2.on_new_farming_info)(daemon, (e) => {
39
- if (e.command === "new_farming_info") {
40
- const { farming_info } = e.data;
41
- const { challenge_hash, passed_filter, proofs, total_plots, timestamp } = farming_info;
42
- const date = new Date(Number(timestamp) * 1000);
43
- console.log(`${challenge_hash.substr(0, 32)}... ${passed_filter}/${total_plots} ${proofs} ${date.toLocaleTimeString()}`);
44
- sumPassedFilter += passed_filter;
45
- sumTotalPlot += total_plots;
46
- sumTotalProof += proofs;
47
- }
48
- });
49
- const onTerminate = () => __awaiter(this, void 0, void 0, function* () {
50
- console.log("Terminating process...");
51
- unsubscribe();
52
- const percentage = Math.round((sumPassedFilter / sumTotalPlot) * 10000) / 100;
53
- console.log(`total passed_filters: ${sumPassedFilter}`);
54
- console.log(`total_plots: ${sumTotalPlot}`);
55
- console.log(`total passed filters(%): ${percentage}%`);
56
- console.log(`total_proofs: ${sumTotalProof}`);
57
- let timer = null;
58
- daemon.addEventListener("close", () => {
59
- if (timer)
60
- clearTimeout(timer);
61
- process.exit(0);
62
- });
63
- yield daemon.close();
64
- timer = setTimeout(() => {
65
- console.error("Closing request timed out.");
66
- timer = null;
67
- process.exit(1);
68
- }, 15 * 1000);
69
- });
70
- process.addListener("SIGTERM", onTerminate);
71
- process.addListener("SIGINT", onTerminate);
21
+ (async function () {
22
+ const daemon = (0, index_1.getDaemon)();
23
+ await daemon.connect();
24
+ await daemon.subscribe("wallet_ui");
25
+ let sumPassedFilter = 0;
26
+ let sumTotalPlot = 0;
27
+ let sumTotalProof = 0;
28
+ const unsubscribe = await (0, index_2.on_new_farming_info)(daemon, (e) => {
29
+ if (e.command === "new_farming_info") {
30
+ const { farming_info } = e.data;
31
+ const { challenge_hash, passed_filter, proofs, total_plots, timestamp, } = farming_info;
32
+ const date = new Date(Number(timestamp) * 1000);
33
+ console.log(`${challenge_hash.substr(0, 32)}... ${passed_filter}/${total_plots} ${proofs} ${date.toLocaleTimeString()}`);
34
+ sumPassedFilter += passed_filter;
35
+ sumTotalPlot += total_plots;
36
+ sumTotalProof += proofs;
37
+ }
72
38
  });
39
+ const onTerminate = async () => {
40
+ console.log("Terminating process...");
41
+ unsubscribe();
42
+ const percentage = Math.round((sumPassedFilter / sumTotalPlot) * 10000) / 100;
43
+ console.log(`total passed_filters: ${sumPassedFilter}`);
44
+ console.log(`total_plots: ${sumTotalPlot}`);
45
+ console.log(`total passed filters(%): ${percentage}%`);
46
+ console.log(`total_proofs: ${sumTotalProof}`);
47
+ let timer = null;
48
+ daemon.addEventListener("close", () => {
49
+ if (timer)
50
+ clearTimeout(timer);
51
+ process.exit(0);
52
+ });
53
+ await daemon.close();
54
+ timer = setTimeout(() => {
55
+ console.error("Closing request timed out.");
56
+ timer = null;
57
+ process.exit(1);
58
+ }, 15 * 1000);
59
+ };
60
+ process.addListener("SIGTERM", onTerminate);
61
+ process.addListener("SIGINT", onTerminate);
73
62
  })();
74
63
  }
75
64
  else {
package/config/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPathFromConfig = exports.resolveFromChiaRoot = exports.defaultDaemonCertPath = exports.defaultDaemonKeyPath = exports.buildConfigObj = exports.getConfig = exports.plotterDir = exports.logDir = exports.configPath = exports.chiaRoot = void 0;
3
+ exports.defaultDaemonCertPath = exports.defaultDaemonKeyPath = exports.plotterDir = exports.logDir = exports.configPath = exports.chiaRoot = void 0;
4
+ exports.getConfig = getConfig;
5
+ exports.buildConfigObj = buildConfigObj;
6
+ exports.resolveFromChiaRoot = resolveFromChiaRoot;
7
+ exports.getPathFromConfig = getPathFromConfig;
4
8
  const os_1 = require("os");
5
9
  const path = require("path");
6
10
  const fs_1 = require("fs");
@@ -8,8 +12,10 @@ const yaml_1 = require("yaml");
8
12
  // Suppress noisy YAML warning
9
13
  process.env.YAML_SILENCE_WARNINGS = "true";
10
14
  const defaultChiaRoot = path.resolve((0, os_1.homedir)(), ".chia", "mainnet");
11
- exports.chiaRoot = process.env.CHIA_ROOT ? path.resolve(process.env.CHIA_ROOT) : defaultChiaRoot;
12
- // config
15
+ exports.chiaRoot = process.env.CHIA_ROOT
16
+ ? path.resolve(process.env.CHIA_ROOT)
17
+ : defaultChiaRoot;
18
+ // config
13
19
  exports.configPath = path.resolve(exports.chiaRoot, "config", "config.yaml");
14
20
  // log
15
21
  exports.logDir = path.resolve(exports.chiaRoot, "log");
@@ -38,9 +44,8 @@ function getConfig(configFilePath) {
38
44
  _lastConfigPath = configFilePath;
39
45
  const file = (0, fs_1.readFileSync)(configFilePath || exports.configPath, "utf8");
40
46
  const parsedYamlObj = (0, yaml_1.parse)(file);
41
- return _config = buildConfigObj(parsedYamlObj);
47
+ return (_config = buildConfigObj(parsedYamlObj));
42
48
  }
43
- exports.getConfig = getConfig;
44
49
  function buildConfigObj(config, currentPath = [], product = {}) {
45
50
  for (const propName in config) {
46
51
  if (!Object.prototype.hasOwnProperty.call(config, propName)) {
@@ -60,19 +65,19 @@ function buildConfigObj(config, currentPath = [], product = {}) {
60
65
  });
61
66
  }
62
67
  else {
63
- const p = currentPath.length > 0 ? `/${currentPath.join("/")}/${propName}` : `/${propName}`;
68
+ const p = currentPath.length > 0
69
+ ? `/${currentPath.join("/")}/${propName}`
70
+ : `/${propName}`;
64
71
  product[p] = value;
65
72
  }
66
73
  }
67
74
  return product;
68
75
  }
69
- exports.buildConfigObj = buildConfigObj;
70
76
  exports.defaultDaemonKeyPath = path.resolve(exports.chiaRoot, "config", "ssl", "daemon", "private_daemon.key");
71
77
  exports.defaultDaemonCertPath = path.resolve(exports.chiaRoot, "config", "ssl", "daemon", "private_daemon.crt");
72
78
  function resolveFromChiaRoot(pathFromChiaRoot) {
73
79
  return path.resolve(exports.chiaRoot, ...pathFromChiaRoot);
74
80
  }
75
- exports.resolveFromChiaRoot = resolveFromChiaRoot;
76
81
  /**
77
82
  * Get path string resolved based on CHIA_ROOT dir.
78
83
  *
@@ -92,4 +97,3 @@ function getPathFromConfig(yPath, configFilePath) {
92
97
  const config = getConfig(configFilePath);
93
98
  return resolveFromChiaRoot([config[yPath]]);
94
99
  }
95
- exports.getPathFromConfig = getPathFromConfig;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.open = exports.defaultTimeoutInMs = void 0;
3
+ exports.defaultTimeoutInMs = void 0;
4
+ exports.open = open;
4
5
  const fs_1 = require("fs");
5
6
  const config_1 = require("../config");
6
7
  const WS = require("ws");
@@ -54,4 +55,3 @@ function open(url, timeoutMs) {
54
55
  ws.on("error", onOpenError);
55
56
  });
56
57
  }
57
- exports.open = open;
package/daemon/index.d.ts CHANGED
@@ -7,12 +7,27 @@ export type WsEvent = Event | MessageEvent | ErrorEvent | CloseEvent;
7
7
  export type EventListener<T = WsEvent> = (ev: T) => unknown;
8
8
  type EventListenerOf<T> = T extends "open" ? EventListener<Event> : T extends "message" ? EventListener<MessageEvent> : T extends "error" ? EventListener<ErrorEvent> : T extends "close" ? EventListener<CloseEvent> : never;
9
9
  export type MessageListener<D extends WsMessage> = (msg: D) => unknown;
10
+ export interface RetryOptions {
11
+ maxAttempts?: number;
12
+ initialDelay?: number;
13
+ maxDelay?: number;
14
+ backoffMultiplier?: number;
15
+ }
16
+ export interface ConnectOptions {
17
+ timeoutMs?: number;
18
+ autoReconnect?: boolean;
19
+ retryOptions?: RetryOptions;
20
+ }
10
21
  export declare function getDaemon(serviceName?: string): Daemon;
11
22
  declare class Daemon {
12
23
  protected _socket: WS | null;
13
24
  protected _connectedUrl: string;
14
25
  protected _responseQueue: {
15
- [request_id: string]: (value: unknown) => void;
26
+ [request_id: string]: {
27
+ resolver: (value: unknown) => void;
28
+ rejecter: (error: unknown) => void;
29
+ timeout: NodeJS.Timeout;
30
+ };
16
31
  };
17
32
  protected _openEventListeners: Array<(e: Event) => unknown>;
18
33
  protected _messageEventListeners: Array<(e: MessageEvent) => unknown>;
@@ -23,18 +38,25 @@ declare class Daemon {
23
38
  protected _onClosePromise: (() => unknown) | undefined;
24
39
  protected _subscriptions: string[];
25
40
  protected _serviceName: string;
41
+ protected _autoReconnect: boolean;
42
+ protected _retryOptions: Required<RetryOptions>;
43
+ protected _timeoutMs: number;
44
+ protected _reconnectAttempts: number;
45
+ protected _reconnectTimer: NodeJS.Timeout | null;
46
+ protected _lastConnectionUrl: string;
47
+ protected _isReconnecting: boolean;
26
48
  get connected(): boolean;
27
49
  get closing(): boolean;
28
50
  constructor(serviceName?: string);
29
51
  protected onRejection(e: unknown): null;
30
52
  /**
31
53
  * Connect to local daemon via websocket.
32
- * @param daemonServerURL
33
- * @param timeoutMs
54
+ * @param daemonServerURL - The websocket URL to connect to. If not provided, uses config values.
55
+ * @param options - Connection options including timeout, reconnect settings, and retry settings
34
56
  */
35
- connect(daemonServerURL?: string, timeoutMs?: number): Promise<boolean>;
57
+ connect(daemonServerURL?: string, options?: ConnectOptions): Promise<boolean>;
36
58
  close(): Promise<unknown>;
37
- sendMessage<M = unknown>(destination: string, command: string, data?: Record<string, unknown>): Promise<M>;
59
+ sendMessage<M = unknown>(destination: string, command: string, data?: Record<string, unknown>, timeoutMs?: number): Promise<M>;
38
60
  createMessageTemplate(command: string, destination: string, data: Record<string, unknown>): {
39
61
  command: string;
40
62
  data: Record<string, unknown>;
@@ -61,6 +83,7 @@ declare class Daemon {
61
83
  protected onClose(event: CloseEvent): void;
62
84
  protected onPing(): void;
63
85
  protected onPong(): void;
86
+ protected _attemptReconnection(previousSubscriptions: string[]): void;
64
87
  }
65
88
  export type TDaemon = InstanceType<typeof Daemon>;
66
89
  export {};