@polymarbot/shared 0.4.1 → 0.5.1

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.
@@ -7,6 +7,7 @@ var SupportedSymbol = /* @__PURE__ */ ((SupportedSymbol2) => {
7
7
  return SupportedSymbol2;
8
8
  })(SupportedSymbol || {});
9
9
  var SupportedInterval = /* @__PURE__ */ ((SupportedInterval2) => {
10
+ SupportedInterval2["M5"] = "5m";
10
11
  SupportedInterval2["M15"] = "15m";
11
12
  SupportedInterval2["H1"] = "1h";
12
13
  SupportedInterval2["H4"] = "4h";
package/markets/types.cjs CHANGED
@@ -32,6 +32,7 @@ var SupportedSymbol = /* @__PURE__ */ ((SupportedSymbol2) => {
32
32
  return SupportedSymbol2;
33
33
  })(SupportedSymbol || {});
34
34
  var SupportedInterval = /* @__PURE__ */ ((SupportedInterval2) => {
35
+ SupportedInterval2["M5"] = "5m";
35
36
  SupportedInterval2["M15"] = "15m";
36
37
  SupportedInterval2["H1"] = "1h";
37
38
  SupportedInterval2["H4"] = "4h";
@@ -5,6 +5,7 @@ declare enum SupportedSymbol {
5
5
  SOL = "sol"
6
6
  }
7
7
  declare enum SupportedInterval {
8
+ M5 = "5m",
8
9
  M15 = "15m",
9
10
  H1 = "1h",
10
11
  H4 = "4h",
@@ -5,6 +5,7 @@ declare enum SupportedSymbol {
5
5
  SOL = "sol"
6
6
  }
7
7
  declare enum SupportedInterval {
8
+ M5 = "5m",
8
9
  M15 = "15m",
9
10
  H1 = "1h",
10
11
  H4 = "4h",
package/markets/types.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportedInterval,
3
3
  SupportedSymbol
4
- } from "../chunk-DF467RX7.js";
4
+ } from "../chunk-U2Y7SE3C.js";
5
5
  import "../chunk-JSBRDJBE.js";
6
6
  export {
7
7
  SupportedInterval,
package/markets/utils.cjs CHANGED
@@ -600,6 +600,7 @@ __export(utils_exports, {
600
600
  generate1dSlug: () => generate1dSlug,
601
601
  generate1hSlug: () => generate1hSlug,
602
602
  generate4hSlug: () => generate4hSlug,
603
+ generate5mSlug: () => generate5mSlug,
603
604
  generateMarketUrl: () => generateMarketUrl,
604
605
  getIntervalSeconds: () => getIntervalSeconds,
605
606
  parseIntervalFromSlug: () => parseIntervalFromSlug,
@@ -652,6 +653,10 @@ var MONTH_NAMES = [
652
653
  function generateMarketUrl(slug) {
653
654
  return `https://polymarket.com/event/${slug}`;
654
655
  }
656
+ function generate5mSlug(timestamp, symbol) {
657
+ const prefix = symbol.toLowerCase();
658
+ return `${prefix}-updown-5m-${timestamp}`;
659
+ }
655
660
  function generate15mSlug(timestamp, symbol) {
656
661
  const prefix = symbol.toLowerCase();
657
662
  return `${prefix}-updown-15m-${timestamp}`;
@@ -707,6 +712,9 @@ function parseSymbolFromSlug(slug) {
707
712
  }
708
713
  function parseIntervalFromSlug(slug) {
709
714
  const lowerSlug = slug.toLowerCase();
715
+ if (lowerSlug.includes("-updown-5m-")) {
716
+ return "5m" /* M5 */;
717
+ }
710
718
  if (lowerSlug.includes("-updown-15m-")) {
711
719
  return "15m" /* M15 */;
712
720
  }
@@ -723,6 +731,8 @@ function parseIntervalFromSlug(slug) {
723
731
  }
724
732
  function getIntervalSeconds(interval) {
725
733
  const intervalSecondsMap = {
734
+ ["5m" /* M5 */]: 5 * 60,
735
+ // 300秒
726
736
  ["15m" /* M15 */]: 15 * 60,
727
737
  // 900秒
728
738
  ["1h" /* H1 */]: 60 * 60,
@@ -742,8 +752,8 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
742
752
  const intervalSeconds = getIntervalSeconds(interval);
743
753
  let startTime = null;
744
754
  const lowerSlug = slug.toLowerCase();
745
- if (interval === "15m" /* M15 */ || interval === "4h" /* H4 */) {
746
- const match = lowerSlug.match(/-updown-(?:15m|4h)-(\d+)$/);
755
+ if (interval === "5m" /* M5 */ || interval === "15m" /* M15 */ || interval === "4h" /* H4 */) {
756
+ const match = lowerSlug.match(/-updown-(?:5m|15m|4h)-(\d+)$/);
747
757
  if (match) {
748
758
  startTime = parseInt(match[1], 10);
749
759
  }
@@ -807,6 +817,7 @@ function parseSlug(slug, referenceYear) {
807
817
  generate1dSlug,
808
818
  generate1hSlug,
809
819
  generate4hSlug,
820
+ generate5mSlug,
810
821
  generateMarketUrl,
811
822
  getIntervalSeconds,
812
823
  parseIntervalFromSlug,
@@ -5,6 +5,8 @@ declare const SYMBOL_FULL_NAME_MAP: SymbolFullNameMap;
5
5
 
6
6
  declare function generateMarketUrl(slug: string): string;
7
7
 
8
+ declare function generate5mSlug(timestamp: number, symbol: SupportedSymbol): string;
9
+
8
10
  declare function generate15mSlug(timestamp: number, symbol: SupportedSymbol): string;
9
11
 
10
12
  declare function generate1hSlug(timestamp: number, symbol: SupportedSymbol): string;
@@ -33,4 +35,4 @@ declare function parseSlug(slug: string, referenceYear?: number): {
33
35
  endTime: number | null;
34
36
  };
35
37
 
36
- export { SUPPORTED_SYMBOLS, SYMBOL_FULL_NAME_MAP, calculatePeriodStartInET, generate15mSlug, generate1dSlug, generate1hSlug, generate4hSlug, generateMarketUrl, getIntervalSeconds, parseIntervalFromSlug, parseSlug, parseSymbolFromSlug, parseTimeRangeFromSlug };
38
+ export { SUPPORTED_SYMBOLS, SYMBOL_FULL_NAME_MAP, calculatePeriodStartInET, generate15mSlug, generate1dSlug, generate1hSlug, generate4hSlug, generate5mSlug, generateMarketUrl, getIntervalSeconds, parseIntervalFromSlug, parseSlug, parseSymbolFromSlug, parseTimeRangeFromSlug };
@@ -5,6 +5,8 @@ declare const SYMBOL_FULL_NAME_MAP: SymbolFullNameMap;
5
5
 
6
6
  declare function generateMarketUrl(slug: string): string;
7
7
 
8
+ declare function generate5mSlug(timestamp: number, symbol: SupportedSymbol): string;
9
+
8
10
  declare function generate15mSlug(timestamp: number, symbol: SupportedSymbol): string;
9
11
 
10
12
  declare function generate1hSlug(timestamp: number, symbol: SupportedSymbol): string;
@@ -33,4 +35,4 @@ declare function parseSlug(slug: string, referenceYear?: number): {
33
35
  endTime: number | null;
34
36
  };
35
37
 
36
- export { SUPPORTED_SYMBOLS, SYMBOL_FULL_NAME_MAP, calculatePeriodStartInET, generate15mSlug, generate1dSlug, generate1hSlug, generate4hSlug, generateMarketUrl, getIntervalSeconds, parseIntervalFromSlug, parseSlug, parseSymbolFromSlug, parseTimeRangeFromSlug };
38
+ export { SUPPORTED_SYMBOLS, SYMBOL_FULL_NAME_MAP, calculatePeriodStartInET, generate15mSlug, generate1dSlug, generate1hSlug, generate4hSlug, generate5mSlug, generateMarketUrl, getIntervalSeconds, parseIntervalFromSlug, parseSlug, parseSymbolFromSlug, parseTimeRangeFromSlug };
package/markets/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SupportedSymbol
3
- } from "../chunk-DF467RX7.js";
3
+ } from "../chunk-U2Y7SE3C.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __toESM
@@ -600,6 +600,10 @@ var MONTH_NAMES = [
600
600
  function generateMarketUrl(slug) {
601
601
  return `https://polymarket.com/event/${slug}`;
602
602
  }
603
+ function generate5mSlug(timestamp, symbol) {
604
+ const prefix = symbol.toLowerCase();
605
+ return `${prefix}-updown-5m-${timestamp}`;
606
+ }
603
607
  function generate15mSlug(timestamp, symbol) {
604
608
  const prefix = symbol.toLowerCase();
605
609
  return `${prefix}-updown-15m-${timestamp}`;
@@ -655,6 +659,9 @@ function parseSymbolFromSlug(slug) {
655
659
  }
656
660
  function parseIntervalFromSlug(slug) {
657
661
  const lowerSlug = slug.toLowerCase();
662
+ if (lowerSlug.includes("-updown-5m-")) {
663
+ return "5m" /* M5 */;
664
+ }
658
665
  if (lowerSlug.includes("-updown-15m-")) {
659
666
  return "15m" /* M15 */;
660
667
  }
@@ -671,6 +678,8 @@ function parseIntervalFromSlug(slug) {
671
678
  }
672
679
  function getIntervalSeconds(interval) {
673
680
  const intervalSecondsMap = {
681
+ ["5m" /* M5 */]: 5 * 60,
682
+ // 300秒
674
683
  ["15m" /* M15 */]: 15 * 60,
675
684
  // 900秒
676
685
  ["1h" /* H1 */]: 60 * 60,
@@ -690,8 +699,8 @@ function parseTimeRangeFromSlug(slug, referenceYear) {
690
699
  const intervalSeconds = getIntervalSeconds(interval);
691
700
  let startTime = null;
692
701
  const lowerSlug = slug.toLowerCase();
693
- if (interval === "15m" /* M15 */ || interval === "4h" /* H4 */) {
694
- const match = lowerSlug.match(/-updown-(?:15m|4h)-(\d+)$/);
702
+ if (interval === "5m" /* M5 */ || interval === "15m" /* M15 */ || interval === "4h" /* H4 */) {
703
+ const match = lowerSlug.match(/-updown-(?:5m|15m|4h)-(\d+)$/);
695
704
  if (match) {
696
705
  startTime = parseInt(match[1], 10);
697
706
  }
@@ -754,6 +763,7 @@ export {
754
763
  generate1dSlug,
755
764
  generate1hSlug,
756
765
  generate4hSlug,
766
+ generate5mSlug,
757
767
  generateMarketUrl,
758
768
  getIntervalSeconds,
759
769
  parseIntervalFromSlug,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymarbot/shared",
3
- "version": "0.4.1",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
@@ -134,9 +134,9 @@
134
134
  "**/*.d.cts"
135
135
  ],
136
136
  "dependencies": {
137
- "dotenv": "^17.2.3",
138
- "viem": "^2.38.6",
139
- "@polymarket/builder-relayer-client": "^0.0.6",
137
+ "dotenv": "^17.3.1",
138
+ "viem": "^2.46.2",
139
+ "@polymarket/builder-relayer-client": "^0.0.8",
140
140
  "@polymarket/builder-signing-sdk": "^0.0.8"
141
141
  }
142
142
  }
@@ -61,7 +61,7 @@ function normalizeTradeStepBuy(step, options) {
61
61
  const isChaseMode = price > 0.5;
62
62
  if (isLowPriceMode) {
63
63
  if (step.maxUnderlyingChange !== void 0) {
64
- if (step.maxUnderlyingChange >= 1 && step.maxUnderlyingChange <= 1e3) {
64
+ if (step.maxUnderlyingChange >= 1 && step.maxUnderlyingChange <= 1e4) {
65
65
  normalized.maxUnderlyingChange = step.maxUnderlyingChange;
66
66
  } else {
67
67
  }
@@ -71,7 +71,7 @@ function normalizeTradeStepBuy(step, options) {
71
71
  }
72
72
  if (isChaseMode) {
73
73
  if (step.minUnderlyingChange !== void 0) {
74
- if (step.minUnderlyingChange >= 1 && step.minUnderlyingChange <= 1e3) {
74
+ if (step.minUnderlyingChange >= 1 && step.minUnderlyingChange <= 1e4) {
75
75
  normalized.minUnderlyingChange = step.minUnderlyingChange;
76
76
  } else {
77
77
  }
@@ -37,7 +37,7 @@ function normalizeTradeStepBuy(step, options) {
37
37
  const isChaseMode = price > 0.5;
38
38
  if (isLowPriceMode) {
39
39
  if (step.maxUnderlyingChange !== void 0) {
40
- if (step.maxUnderlyingChange >= 1 && step.maxUnderlyingChange <= 1e3) {
40
+ if (step.maxUnderlyingChange >= 1 && step.maxUnderlyingChange <= 1e4) {
41
41
  normalized.maxUnderlyingChange = step.maxUnderlyingChange;
42
42
  } else {
43
43
  }
@@ -47,7 +47,7 @@ function normalizeTradeStepBuy(step, options) {
47
47
  }
48
48
  if (isChaseMode) {
49
49
  if (step.minUnderlyingChange !== void 0) {
50
- if (step.minUnderlyingChange >= 1 && step.minUnderlyingChange <= 1e3) {
50
+ if (step.minUnderlyingChange >= 1 && step.minUnderlyingChange <= 1e4) {
51
51
  normalized.minUnderlyingChange = step.minUnderlyingChange;
52
52
  } else {
53
53
  }
@@ -94,6 +94,8 @@ interface TokenTradeRecordData {
94
94
  interface MarketTradeRecord {
95
95
  marketId: string;
96
96
  strategyJson: string;
97
+
98
+ strategyDataSaved?: boolean;
97
99
  tokens: {
98
100
  [tokenId: string]: TokenTradeRecordData;
99
101
  };
@@ -94,6 +94,8 @@ interface TokenTradeRecordData {
94
94
  interface MarketTradeRecord {
95
95
  marketId: string;
96
96
  strategyJson: string;
97
+
98
+ strategyDataSaved?: boolean;
97
99
  tokens: {
98
100
  [tokenId: string]: TokenTradeRecordData;
99
101
  };
package/wallet.cjs CHANGED
@@ -35,14 +35,24 @@ var import_chains = require("viem/chains");
35
35
  var USDC_ADDRESS = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
36
36
  var USDC_DECIMALS = 6;
37
37
  var USDC_ABI = (0, import_viem.parseAbi)(["function balanceOf(address) view returns (uint256)"]);
38
- var getPublicClient = (() => {
39
- const POLYGON_RPC = process.env.POLYGON_RPC || import_chains.polygon.rpcUrls.default.http[0];
38
+ var getPublicClient = /* @__PURE__ */ (() => {
40
39
  let client = null;
41
- return () => {
40
+ let batchClient = null;
41
+ return (options) => {
42
+ const rpcUrl = process.env.POLYGON_RPC || import_chains.polygon.rpcUrls.default.http[0];
43
+ if (options?.batch) {
44
+ if (!batchClient) {
45
+ batchClient = (0, import_viem.createPublicClient)({
46
+ chain: import_chains.polygon,
47
+ transport: (0, import_viem.http)(rpcUrl, { batch: { batchSize: 100, wait: 0 } })
48
+ });
49
+ }
50
+ return batchClient;
51
+ }
42
52
  if (!client) {
43
53
  client = (0, import_viem.createPublicClient)({
44
54
  chain: import_chains.polygon,
45
- transport: (0, import_viem.http)(POLYGON_RPC)
55
+ transport: (0, import_viem.http)(rpcUrl)
46
56
  });
47
57
  }
48
58
  return client;
package/wallet.d.cts CHANGED
@@ -14,7 +14,9 @@ declare const USDC_ABI: readonly [{
14
14
  }];
15
15
  }];
16
16
 
17
- declare const getPublicClient: () => PublicClient;
17
+ declare const getPublicClient: (options?: {
18
+ batch?: boolean;
19
+ }) => PublicClient;
18
20
 
19
21
  declare function formatBalance(rawBalance: string | bigint, decimals?: number): string;
20
22
 
package/wallet.d.ts CHANGED
@@ -14,7 +14,9 @@ declare const USDC_ABI: readonly [{
14
14
  }];
15
15
  }];
16
16
 
17
- declare const getPublicClient: () => PublicClient;
17
+ declare const getPublicClient: (options?: {
18
+ batch?: boolean;
19
+ }) => PublicClient;
18
20
 
19
21
  declare function formatBalance(rawBalance: string | bigint, decimals?: number): string;
20
22
 
package/wallet.js CHANGED
@@ -6,14 +6,24 @@ import { polygon } from "viem/chains";
6
6
  var USDC_ADDRESS = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174";
7
7
  var USDC_DECIMALS = 6;
8
8
  var USDC_ABI = parseAbi(["function balanceOf(address) view returns (uint256)"]);
9
- var getPublicClient = (() => {
10
- const POLYGON_RPC = process.env.POLYGON_RPC || polygon.rpcUrls.default.http[0];
9
+ var getPublicClient = /* @__PURE__ */ (() => {
11
10
  let client = null;
12
- return () => {
11
+ let batchClient = null;
12
+ return (options) => {
13
+ const rpcUrl = process.env.POLYGON_RPC || polygon.rpcUrls.default.http[0];
14
+ if (options?.batch) {
15
+ if (!batchClient) {
16
+ batchClient = createPublicClient({
17
+ chain: polygon,
18
+ transport: http(rpcUrl, { batch: { batchSize: 100, wait: 0 } })
19
+ });
20
+ }
21
+ return batchClient;
22
+ }
13
23
  if (!client) {
14
24
  client = createPublicClient({
15
25
  chain: polygon,
16
- transport: http(POLYGON_RPC)
26
+ transport: http(rpcUrl)
17
27
  });
18
28
  }
19
29
  return client;