@tcswap/helpers 4.5.15
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/dist/api/index.cjs +4 -0
- package/dist/api/index.cjs.map +16 -0
- package/dist/api/index.js +4 -0
- package/dist/api/index.js.map +16 -0
- package/dist/chunk-pfmeq01a.js +5 -0
- package/dist/chunk-pfmeq01a.js.map +9 -0
- package/dist/chunk-vb4wtm2w.js +4 -0
- package/dist/chunk-vb4wtm2w.js.map +9 -0
- package/dist/contracts.cjs +4 -0
- package/dist/contracts.cjs.map +10 -0
- package/dist/contracts.js +4 -0
- package/dist/contracts.js.map +10 -0
- package/dist/index.cjs +7 -0
- package/dist/index.cjs.map +30 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +30 -0
- package/dist/tokens.cjs +4 -0
- package/dist/tokens.cjs.map +10 -0
- package/dist/tokens.js +4 -0
- package/dist/tokens.js.map +10 -0
- package/dist/types/api/index.d.ts +502 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/memoless/endpoints.d.ts +56 -0
- package/dist/types/api/memoless/endpoints.d.ts.map +1 -0
- package/dist/types/api/memoless/types.d.ts +85 -0
- package/dist/types/api/memoless/types.d.ts.map +1 -0
- package/dist/types/api/midgard/endpoints.d.ts +80 -0
- package/dist/types/api/midgard/endpoints.d.ts.map +1 -0
- package/dist/types/api/midgard/types.d.ts +543 -0
- package/dist/types/api/midgard/types.d.ts.map +1 -0
- package/dist/types/api/thornode/endpoints.d.ts +34 -0
- package/dist/types/api/thornode/endpoints.d.ts.map +1 -0
- package/dist/types/api/thornode/types.d.ts +264 -0
- package/dist/types/api/thornode/types.d.ts.map +1 -0
- package/dist/types/api/uswap/endpoints.d.ts +372 -0
- package/dist/types/api/uswap/endpoints.d.ts.map +1 -0
- package/dist/types/api/uswap/types.d.ts +1487 -0
- package/dist/types/api/uswap/types.d.ts.map +1 -0
- package/dist/types/contracts.d.ts +2 -0
- package/dist/types/contracts.d.ts.map +1 -0
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/assetValue.d.ts +82 -0
- package/dist/types/modules/assetValue.d.ts.map +1 -0
- package/dist/types/modules/bigIntArithmetics.d.ts +60 -0
- package/dist/types/modules/bigIntArithmetics.d.ts.map +1 -0
- package/dist/types/modules/feeMultiplier.d.ts +48 -0
- package/dist/types/modules/feeMultiplier.d.ts.map +1 -0
- package/dist/types/modules/requestClient.d.ts +33 -0
- package/dist/types/modules/requestClient.d.ts.map +1 -0
- package/dist/types/modules/uSwapConfig.d.ts +249 -0
- package/dist/types/modules/uSwapConfig.d.ts.map +1 -0
- package/dist/types/modules/uSwapError.d.ts +879 -0
- package/dist/types/modules/uSwapError.d.ts.map +1 -0
- package/dist/types/modules/uSwapNumber.d.ts +10 -0
- package/dist/types/modules/uSwapNumber.d.ts.map +1 -0
- package/dist/types/tokens.d.ts +2 -0
- package/dist/types/tokens.d.ts.map +1 -0
- package/dist/types/types/commonTypes.d.ts +16 -0
- package/dist/types/types/commonTypes.d.ts.map +1 -0
- package/dist/types/types/derivationPath.d.ts +4 -0
- package/dist/types/types/derivationPath.d.ts.map +1 -0
- package/dist/types/types/errors/apiV1.d.ts +2 -0
- package/dist/types/types/errors/apiV1.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +6 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/quotes.d.ts +180 -0
- package/dist/types/types/quotes.d.ts.map +1 -0
- package/dist/types/types/sdk.d.ts +35 -0
- package/dist/types/types/sdk.d.ts.map +1 -0
- package/dist/types/types/wallet.d.ts +130 -0
- package/dist/types/types/wallet.d.ts.map +1 -0
- package/dist/types/utils/asset.d.ts +37 -0
- package/dist/types/utils/asset.d.ts.map +1 -0
- package/dist/types/utils/chains.d.ts +13 -0
- package/dist/types/utils/chains.d.ts.map +1 -0
- package/dist/types/utils/derivationPath.d.ts +21 -0
- package/dist/types/utils/derivationPath.d.ts.map +1 -0
- package/dist/types/utils/explorerUrls.d.ts +10 -0
- package/dist/types/utils/explorerUrls.d.ts.map +1 -0
- package/dist/types/utils/liquidity.d.ts +62 -0
- package/dist/types/utils/liquidity.d.ts.map +1 -0
- package/dist/types/utils/memo.d.ts +65 -0
- package/dist/types/utils/memo.d.ts.map +1 -0
- package/dist/types/utils/others.d.ts +15 -0
- package/dist/types/utils/others.d.ts.map +1 -0
- package/dist/types/utils/validators.d.ts +6 -0
- package/dist/types/utils/validators.d.ts.map +1 -0
- package/dist/types/utils/wallets.d.ts +36 -0
- package/dist/types/utils/wallets.d.ts.map +1 -0
- package/package.json +67 -0
- package/src/api/index.ts +15 -0
- package/src/api/memoless/endpoints.ts +62 -0
- package/src/api/memoless/types.ts +83 -0
- package/src/api/midgard/endpoints.ts +352 -0
- package/src/api/midgard/types.ts +515 -0
- package/src/api/thornode/endpoints.ts +109 -0
- package/src/api/thornode/types.ts +247 -0
- package/src/api/uswap/endpoints.ts +252 -0
- package/src/api/uswap/types.ts +626 -0
- package/src/contracts.ts +1 -0
- package/src/index.ts +32 -0
- package/src/modules/__tests__/assetValue.test.ts +2452 -0
- package/src/modules/__tests__/bigIntArithmetics.test.ts +410 -0
- package/src/modules/__tests__/feeMultiplier.test.ts +131 -0
- package/src/modules/__tests__/uSwapConfig.test.ts +429 -0
- package/src/modules/__tests__/uSwapNumber.test.ts +439 -0
- package/src/modules/assetValue.ts +536 -0
- package/src/modules/bigIntArithmetics.ts +366 -0
- package/src/modules/feeMultiplier.ts +84 -0
- package/src/modules/requestClient.ts +116 -0
- package/src/modules/uSwapConfig.ts +189 -0
- package/src/modules/uSwapError.ts +474 -0
- package/src/modules/uSwapNumber.ts +17 -0
- package/src/tokens.ts +1 -0
- package/src/types/commonTypes.ts +10 -0
- package/src/types/derivationPath.ts +11 -0
- package/src/types/errors/apiV1.ts +0 -0
- package/src/types/index.ts +5 -0
- package/src/types/quotes.ts +182 -0
- package/src/types/sdk.ts +38 -0
- package/src/types/wallet.ts +124 -0
- package/src/utils/__tests__/asset.test.ts +186 -0
- package/src/utils/__tests__/derivationPath.test.ts +142 -0
- package/src/utils/__tests__/explorerUrls.test.ts +59 -0
- package/src/utils/__tests__/liquidity.test.ts +302 -0
- package/src/utils/__tests__/memo.test.ts +99 -0
- package/src/utils/__tests__/others.test.ts +169 -0
- package/src/utils/__tests__/validators.test.ts +84 -0
- package/src/utils/__tests__/wallets.test.ts +625 -0
- package/src/utils/asset.ts +399 -0
- package/src/utils/chains.ts +104 -0
- package/src/utils/derivationPath.ts +101 -0
- package/src/utils/explorerUrls.ts +32 -0
- package/src/utils/liquidity.ts +154 -0
- package/src/utils/memo.ts +102 -0
- package/src/utils/others.ts +64 -0
- package/src/utils/validators.ts +36 -0
- package/src/utils/wallets.ts +238 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { validateIdentifier, validateTNS } from "../validators";
|
|
3
|
+
|
|
4
|
+
describe("validateTNS", () => {
|
|
5
|
+
test("valid names with alphanumeric and allowed special chars", () => {
|
|
6
|
+
expect(validateTNS("validname")).toBe(true);
|
|
7
|
+
expect(validateTNS("valid-name")).toBe(true);
|
|
8
|
+
expect(validateTNS("valid_name")).toBe(true);
|
|
9
|
+
expect(validateTNS("valid+name")).toBe(true);
|
|
10
|
+
expect(validateTNS("name123")).toBe(true);
|
|
11
|
+
expect(validateTNS("UPPERCASE")).toBe(true);
|
|
12
|
+
expect(validateTNS("MixedCase123")).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
test("invalid names exceeding 30 characters", () => {
|
|
16
|
+
expect(validateTNS("toolongname123456789012345678901")).toBe(false);
|
|
17
|
+
expect(validateTNS("a".repeat(31))).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test("invalid names with disallowed characters", () => {
|
|
21
|
+
expect(validateTNS("invalid@name")).toBe(false);
|
|
22
|
+
expect(validateTNS("invalid!name")).toBe(false);
|
|
23
|
+
expect(validateTNS("invalid#name")).toBe(false);
|
|
24
|
+
expect(validateTNS("invalid$name")).toBe(false);
|
|
25
|
+
expect(validateTNS("invalid%name")).toBe(false);
|
|
26
|
+
expect(validateTNS("name with space")).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test("edge cases", () => {
|
|
30
|
+
expect(validateTNS("a")).toBe(true);
|
|
31
|
+
expect(validateTNS("a".repeat(30))).toBe(true);
|
|
32
|
+
expect(validateTNS("")).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe("validateIdentifier", () => {
|
|
37
|
+
test("valid chain.ticker format", () => {
|
|
38
|
+
expect(validateIdentifier("BTC.BTC")).toBe(true);
|
|
39
|
+
expect(validateIdentifier("ETH.ETH")).toBe(true);
|
|
40
|
+
expect(validateIdentifier("AVAX.USDC-0x123")).toBe(true);
|
|
41
|
+
expect(validateIdentifier("eth.eth")).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test("valid synth format with /", () => {
|
|
45
|
+
expect(validateIdentifier("ETH/ETH")).toBe(true);
|
|
46
|
+
expect(validateIdentifier("BTC/BTC")).toBe(true);
|
|
47
|
+
expect(validateIdentifier("THOR.ETH/ETH")).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test("valid trade asset format with ~", () => {
|
|
51
|
+
expect(validateIdentifier("THOR.ETH~ETH")).toBe(true);
|
|
52
|
+
expect(validateIdentifier("THOR.BTC~BTC")).toBe(true);
|
|
53
|
+
expect(validateIdentifier("THOR.ETH~USDC-0xa5f2211b9b8170f694421f2046281775e8468044")).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test("valid NEAR address formats", () => {
|
|
57
|
+
expect(validateIdentifier("NEAR.wNEAR-wrap.near")).toBe(true);
|
|
58
|
+
expect(validateIdentifier("NEAR.USDC-17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1")).toBe(true);
|
|
59
|
+
expect(validateIdentifier("NEAR.ETH-eth.bridge.near")).toBe(true);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test("valid Maya synth format", () => {
|
|
63
|
+
expect(validateIdentifier("MAYA.ETH/ETH")).toBe(true);
|
|
64
|
+
expect(validateIdentifier("MAYA.BTC/BTC")).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test("throws for invalid chain", () => {
|
|
68
|
+
expect(() => validateIdentifier("INVALID.TOKEN")).toThrow("helpers_invalid_identifier");
|
|
69
|
+
expect(() => validateIdentifier("XXX.YYY")).toThrow("helpers_invalid_identifier");
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test("throws for empty or malformed identifier", () => {
|
|
73
|
+
expect(() => validateIdentifier("")).toThrow("helpers_invalid_identifier");
|
|
74
|
+
expect(() => validateIdentifier("NOCHAIN")).toThrow("helpers_invalid_identifier");
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test("accepts identifier with only chain (validates chain exists)", () => {
|
|
78
|
+
// The validateIdentifier function only checks if the chain part is valid
|
|
79
|
+
// It doesn't enforce the full <Chain>.<Ticker> format
|
|
80
|
+
expect(validateIdentifier("ETH")).toBe(true);
|
|
81
|
+
expect(validateIdentifier("ETH.")).toBe(true);
|
|
82
|
+
expect(validateIdentifier("BTC")).toBe(true);
|
|
83
|
+
});
|
|
84
|
+
});
|