@bitflowlabs/core-sdk 2.3.2 → 2.4.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 (66) hide show
  1. package/README.md +1 -1
  2. package/dist/src/helpers/callReadOnlyHelper.js +68 -52
  3. package/dist/src/helpers/callReadOnlyHelper.js.map +1 -1
  4. package/dist/src/helpers/convertValuesHelper.js +24 -4
  5. package/dist/src/helpers/convertValuesHelper.js.map +1 -1
  6. package/dist/src/helpers/handleResultHelper.js +10 -10
  7. package/dist/src/helpers/handleResultHelper.js.map +1 -1
  8. package/dist/src/helpers/newPostConditionsHelper.js +6 -1
  9. package/dist/src/helpers/newPostConditionsHelper.js.map +1 -1
  10. package/dist/src/helpers/postConditionsHelper.js +6 -1
  11. package/dist/src/helpers/postConditionsHelper.js.map +1 -1
  12. package/dist/test/BitflowSDK.test.d.ts +1 -0
  13. package/dist/test/BitflowSDK.test.js +1143 -0
  14. package/dist/test/BitflowSDK.test.js.map +1 -0
  15. package/dist/test/config.test.d.ts +1 -0
  16. package/dist/test/config.test.js +89 -0
  17. package/dist/test/config.test.js.map +1 -0
  18. package/dist/test/helpers/callGetSwapParams.test.d.ts +1 -0
  19. package/dist/test/helpers/callGetSwapParams.test.js +85 -0
  20. package/dist/test/helpers/callGetSwapParams.test.js.map +1 -0
  21. package/dist/test/helpers/callReadOnlyHelper.test.d.ts +1 -0
  22. package/dist/test/helpers/callReadOnlyHelper.test.js +345 -0
  23. package/dist/test/helpers/callReadOnlyHelper.test.js.map +1 -0
  24. package/dist/test/helpers/callSwapHelper.test.d.ts +1 -0
  25. package/dist/test/helpers/callSwapHelper.test.js +209 -0
  26. package/dist/test/helpers/callSwapHelper.test.js.map +1 -0
  27. package/dist/test/helpers/constructFunctionArgs.test.d.ts +1 -0
  28. package/dist/test/helpers/constructFunctionArgs.test.js +63 -0
  29. package/dist/test/helpers/constructFunctionArgs.test.js.map +1 -0
  30. package/dist/test/helpers/convertValuesHelper.test.d.ts +1 -0
  31. package/dist/test/helpers/convertValuesHelper.test.js +207 -0
  32. package/dist/test/helpers/convertValuesHelper.test.js.map +1 -0
  33. package/dist/test/helpers/fetchContractInterfaceHelper.test.d.ts +1 -0
  34. package/dist/test/helpers/fetchContractInterfaceHelper.test.js +70 -0
  35. package/dist/test/helpers/fetchContractInterfaceHelper.test.js.map +1 -0
  36. package/dist/test/helpers/fetchDataHelper.test.d.ts +1 -0
  37. package/dist/test/helpers/fetchDataHelper.test.js +162 -0
  38. package/dist/test/helpers/fetchDataHelper.test.js.map +1 -0
  39. package/dist/test/helpers/fetchPossibleSwap.test.d.ts +1 -0
  40. package/dist/test/helpers/fetchPossibleSwap.test.js +154 -0
  41. package/dist/test/helpers/fetchPossibleSwap.test.js.map +1 -0
  42. package/dist/test/helpers/getContractInterfaceAndFunction.test.d.ts +1 -0
  43. package/dist/test/helpers/getContractInterfaceAndFunction.test.js +25 -0
  44. package/dist/test/helpers/getContractInterfaceAndFunction.test.js.map +1 -0
  45. package/dist/test/helpers/getFunctionArgs.test.d.ts +1 -0
  46. package/dist/test/helpers/getFunctionArgs.test.js +25 -0
  47. package/dist/test/helpers/getFunctionArgs.test.js.map +1 -0
  48. package/dist/test/helpers/getTokenDecimalsHelper.test.d.ts +1 -0
  49. package/dist/test/helpers/getTokenDecimalsHelper.test.js +229 -0
  50. package/dist/test/helpers/getTokenDecimalsHelper.test.js.map +1 -0
  51. package/dist/test/helpers/getTokenNameHelper.test.d.ts +1 -0
  52. package/dist/test/helpers/getTokenNameHelper.test.js +258 -0
  53. package/dist/test/helpers/getTokenNameHelper.test.js.map +1 -0
  54. package/dist/test/helpers/handleResultHelper.test.d.ts +1 -0
  55. package/dist/test/helpers/handleResultHelper.test.js +72 -0
  56. package/dist/test/helpers/handleResultHelper.test.js.map +1 -0
  57. package/dist/test/helpers/newPostConditionsHelper.test.d.ts +1 -0
  58. package/dist/test/helpers/newPostConditionsHelper.test.js +348 -0
  59. package/dist/test/helpers/newPostConditionsHelper.test.js.map +1 -0
  60. package/dist/test/helpers/postConditionsHelper.test.d.ts +1 -0
  61. package/dist/test/helpers/postConditionsHelper.test.js +262 -0
  62. package/dist/test/helpers/postConditionsHelper.test.js.map +1 -0
  63. package/dist/test/keeper/keeperAPI.test.d.ts +1 -0
  64. package/dist/test/keeper/keeperAPI.test.js +283 -0
  65. package/dist/test/keeper/keeperAPI.test.js.map +1 -0
  66. package/package.json +1 -1
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getTokenDecimalsHelper_1 = require("../../src/helpers/getTokenDecimalsHelper");
4
+ describe("getTokenDecimalsHelper", () => {
5
+ const mockSwapContext = {
6
+ availableTokens: [
7
+ {
8
+ base: "ST1234567890123456789012345678901234567890",
9
+ type: "fungible-token",
10
+ icon: "icon1",
11
+ name: "Token 1",
12
+ status: "active",
13
+ symbol: "TKN1",
14
+ tokenId: "token1",
15
+ "token-id": "token1",
16
+ tokenContract: "ST1234567890123456789012345678901234567890.token1",
17
+ tokenDecimals: 6,
18
+ tokenName: "Token One",
19
+ wrapTokens: null,
20
+ isKeeperToken: false,
21
+ bridge: "FALSE",
22
+ layerOneAsset: null,
23
+ priceData: {
24
+ "1h_change": null,
25
+ "1yr_change": null,
26
+ "24h_change": null,
27
+ "30d_change": null,
28
+ "7d_change": null,
29
+ last_price: null,
30
+ last_updated: null,
31
+ },
32
+ },
33
+ {
34
+ base: "ST1234567890123456789012345678901234567890",
35
+ type: "fungible-token",
36
+ icon: "icon2",
37
+ name: "Token 2",
38
+ status: "active",
39
+ symbol: "TKN2",
40
+ tokenId: "token2",
41
+ "token-id": "token2",
42
+ tokenContract: null,
43
+ tokenDecimals: 8,
44
+ tokenName: "Token Two",
45
+ wrapTokens: {
46
+ "wrapped-token": {
47
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token",
48
+ tokenDecimals: 8,
49
+ tokenName: "Wrapped Token",
50
+ },
51
+ },
52
+ isKeeperToken: false,
53
+ bridge: "FALSE",
54
+ layerOneAsset: null,
55
+ priceData: {
56
+ "1h_change": null,
57
+ "1yr_change": null,
58
+ "24h_change": null,
59
+ "30d_change": null,
60
+ "7d_change": null,
61
+ last_price: null,
62
+ last_updated: null,
63
+ },
64
+ },
65
+ {
66
+ base: "ST1234567890123456789012345678901234567890",
67
+ type: "fungible-token",
68
+ icon: "icon3",
69
+ name: "Token 3",
70
+ status: "active",
71
+ symbol: "TKN3",
72
+ tokenId: "token3",
73
+ "token-id": "token3",
74
+ tokenContract: "ST1234567890123456789012345678901234567890.token3",
75
+ tokenDecimals: 10,
76
+ tokenName: "Token Three",
77
+ wrapTokens: {
78
+ "wrapped-token1": {
79
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token1",
80
+ tokenDecimals: 10,
81
+ tokenName: "Wrapped Token 1",
82
+ },
83
+ "wrapped-token2": {
84
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token2",
85
+ tokenDecimals: 12,
86
+ tokenName: "Wrapped Token 2",
87
+ },
88
+ },
89
+ isKeeperToken: false,
90
+ bridge: "FALSE",
91
+ layerOneAsset: null,
92
+ priceData: {
93
+ "1h_change": null,
94
+ "1yr_change": null,
95
+ "24h_change": null,
96
+ "30d_change": null,
97
+ "7d_change": null,
98
+ last_price: null,
99
+ last_updated: null,
100
+ },
101
+ },
102
+ {
103
+ base: "ST1234567890123456789012345678901234567890",
104
+ type: "fungible-token",
105
+ icon: "icon4",
106
+ name: "Token 4",
107
+ status: "active",
108
+ symbol: "TKN4",
109
+ tokenId: "token4",
110
+ "token-id": "token4",
111
+ tokenContract: null,
112
+ tokenDecimals: 4,
113
+ tokenName: "Token Four",
114
+ wrapTokens: null,
115
+ isKeeperToken: false,
116
+ bridge: "FALSE",
117
+ layerOneAsset: null,
118
+ priceData: {
119
+ "1h_change": null,
120
+ "1yr_change": null,
121
+ "24h_change": null,
122
+ "30d_change": null,
123
+ "7d_change": null,
124
+ last_price: null,
125
+ last_updated: null,
126
+ },
127
+ },
128
+ ],
129
+ contractInterfaces: {},
130
+ functionArgs: {},
131
+ network: "testnet",
132
+ swapOptions: {},
133
+ };
134
+ describe("getTokenDecimals", () => {
135
+ it("should return token decimals for token with main contract only", () => {
136
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("token1", mockSwapContext);
137
+ expect(result).toEqual([
138
+ {
139
+ tokenContract: "ST1234567890123456789012345678901234567890.token1",
140
+ tokenDecimals: 6,
141
+ },
142
+ ]);
143
+ });
144
+ it("should return token decimals for token with wrap tokens only", () => {
145
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("token2", mockSwapContext);
146
+ expect(result).toEqual([
147
+ {
148
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token",
149
+ tokenDecimals: 8,
150
+ },
151
+ ]);
152
+ });
153
+ it("should return token decimals for token with both main contract and wrap tokens", () => {
154
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("token3", mockSwapContext);
155
+ expect(result).toEqual([
156
+ {
157
+ tokenContract: "ST1234567890123456789012345678901234567890.token3",
158
+ tokenDecimals: 10,
159
+ },
160
+ {
161
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token1",
162
+ tokenDecimals: 10,
163
+ },
164
+ {
165
+ tokenContract: "ST1234567890123456789012345678901234567890.wrapped-token2",
166
+ tokenDecimals: 12,
167
+ },
168
+ ]);
169
+ });
170
+ it("should return empty array for token with no contract and no wrap tokens", () => {
171
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("token4", mockSwapContext);
172
+ expect(result).toEqual([]);
173
+ });
174
+ it("should throw error when token not found", () => {
175
+ expect(() => {
176
+ (0, getTokenDecimalsHelper_1.getTokenDecimals)("nonexistent-token", mockSwapContext);
177
+ }).toThrow("Token with id nonexistent-token not found");
178
+ });
179
+ it("should handle empty availableTokens array", () => {
180
+ const emptyContext = {
181
+ ...mockSwapContext,
182
+ availableTokens: [],
183
+ };
184
+ expect(() => {
185
+ (0, getTokenDecimalsHelper_1.getTokenDecimals)("token1", emptyContext);
186
+ }).toThrow("Token with id token1 not found");
187
+ });
188
+ it("should handle token with empty wrapTokens object", () => {
189
+ const contextWithEmptyWrapTokens = {
190
+ ...mockSwapContext,
191
+ availableTokens: [
192
+ {
193
+ ...mockSwapContext.availableTokens[0],
194
+ wrapTokens: {},
195
+ },
196
+ ],
197
+ };
198
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("token1", contextWithEmptyWrapTokens);
199
+ expect(result).toEqual([
200
+ {
201
+ tokenContract: "ST1234567890123456789012345678901234567890.token1",
202
+ tokenDecimals: 6,
203
+ },
204
+ ]);
205
+ });
206
+ it("should handle case-sensitive token ID matching", () => {
207
+ const contextWithCaseSensitiveTokens = {
208
+ ...mockSwapContext,
209
+ availableTokens: [
210
+ {
211
+ ...mockSwapContext.availableTokens[0],
212
+ tokenId: "TOKEN1",
213
+ },
214
+ ],
215
+ };
216
+ expect(() => {
217
+ (0, getTokenDecimalsHelper_1.getTokenDecimals)("token1", contextWithCaseSensitiveTokens);
218
+ }).toThrow("Token with id token1 not found");
219
+ const result = (0, getTokenDecimalsHelper_1.getTokenDecimals)("TOKEN1", contextWithCaseSensitiveTokens);
220
+ expect(result).toEqual([
221
+ {
222
+ tokenContract: "ST1234567890123456789012345678901234567890.token1",
223
+ tokenDecimals: 6,
224
+ },
225
+ ]);
226
+ });
227
+ });
228
+ });
229
+ //# sourceMappingURL=getTokenDecimalsHelper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokenDecimalsHelper.test.js","sourceRoot":"","sources":["../../../test/helpers/getTokenDecimalsHelper.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getTokenNameHelper_1 = require("../../src/helpers/getTokenNameHelper");
4
+ describe("getTokenNameHelper", () => {
5
+ const mockContext = {
6
+ availableTokens: [
7
+ {
8
+ base: "token-a",
9
+ type: "fungible",
10
+ icon: "icon-a",
11
+ name: "Token A",
12
+ status: "active",
13
+ symbol: "TKA",
14
+ tokenId: "token-a",
15
+ "token-id": "token-a",
16
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a",
17
+ tokenDecimals: 6,
18
+ tokenName: "Token A",
19
+ wrapTokens: {
20
+ wrapped: {
21
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a-wrapped",
22
+ tokenDecimals: 6,
23
+ tokenName: "Wrapped Token A"
24
+ }
25
+ },
26
+ isKeeperToken: false,
27
+ bridge: "FALSE",
28
+ layerOneAsset: null,
29
+ priceData: {
30
+ "1h_change": null,
31
+ "1yr_change": null,
32
+ "24h_change": null,
33
+ "30d_change": null,
34
+ "7d_change": null,
35
+ last_price: null,
36
+ last_updated: null
37
+ }
38
+ },
39
+ {
40
+ base: "token-b",
41
+ type: "fungible",
42
+ icon: "icon-b",
43
+ name: "Token B",
44
+ status: "active",
45
+ symbol: "TKB",
46
+ tokenId: "token-b",
47
+ "token-id": "token-b",
48
+ tokenContract: "ST1234567890123456789012345678901234567890.token-b",
49
+ tokenDecimals: 6,
50
+ tokenName: "Token B",
51
+ wrapTokens: null,
52
+ isKeeperToken: false,
53
+ bridge: "FALSE",
54
+ layerOneAsset: null,
55
+ priceData: {
56
+ "1h_change": null,
57
+ "1yr_change": null,
58
+ "24h_change": null,
59
+ "30d_change": null,
60
+ "7d_change": null,
61
+ last_price: null,
62
+ last_updated: null
63
+ }
64
+ },
65
+ {
66
+ base: "token-c",
67
+ type: "fungible",
68
+ icon: "icon-c",
69
+ name: "Token C",
70
+ status: "active",
71
+ symbol: "TKC",
72
+ tokenId: "token-c",
73
+ "token-id": "token-c",
74
+ tokenContract: "ST1234567890123456789012345678901234567890.token-c",
75
+ tokenDecimals: 6,
76
+ tokenName: null, // No tokenName, should use name
77
+ wrapTokens: null,
78
+ isKeeperToken: false,
79
+ bridge: "FALSE",
80
+ layerOneAsset: null,
81
+ priceData: {
82
+ "1h_change": null,
83
+ "1yr_change": null,
84
+ "24h_change": null,
85
+ "30d_change": null,
86
+ "7d_change": null,
87
+ last_price: null,
88
+ last_updated: null
89
+ }
90
+ }
91
+ ],
92
+ contractInterfaces: {},
93
+ functionArgs: {},
94
+ network: "testnet",
95
+ swapOptions: {}
96
+ };
97
+ describe("getTokenName", () => {
98
+ it("should return token name when token contract matches exactly", () => {
99
+ const result = (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-a", mockContext);
100
+ expect(result).toBe("Token A");
101
+ });
102
+ it("should return token name when token contract matches case-insensitive", () => {
103
+ const result = (0, getTokenNameHelper_1.getTokenName)("st1234567890123456789012345678901234567890.TOKEN-A", mockContext);
104
+ expect(result).toBe("Token A");
105
+ });
106
+ it("should return name when tokenName is not available", () => {
107
+ const result = (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-c", mockContext);
108
+ expect(result).toBe("Token C");
109
+ });
110
+ it("should return wrapped token name when wrap token contract matches", () => {
111
+ const result = (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-a-wrapped", mockContext);
112
+ expect(result).toBe("Wrapped Token A");
113
+ });
114
+ it("should return parent token name when wrapped token has no tokenName", () => {
115
+ const contextWithNoWrappedTokenName = {
116
+ ...mockContext,
117
+ availableTokens: [
118
+ {
119
+ base: "token-a",
120
+ type: "fungible",
121
+ icon: "icon-a",
122
+ name: "Token A",
123
+ status: "active",
124
+ symbol: "TKA",
125
+ tokenId: "token-a",
126
+ "token-id": "token-a",
127
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a",
128
+ tokenDecimals: 6,
129
+ tokenName: "Token A",
130
+ wrapTokens: {
131
+ wrapped: {
132
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a-wrapped",
133
+ tokenDecimals: 6,
134
+ tokenName: null // No tokenName, should use parent token name
135
+ }
136
+ },
137
+ isKeeperToken: false,
138
+ bridge: "FALSE",
139
+ layerOneAsset: null,
140
+ priceData: {
141
+ "1h_change": null,
142
+ "1yr_change": null,
143
+ "24h_change": null,
144
+ "30d_change": null,
145
+ "7d_change": null,
146
+ last_price: null,
147
+ last_updated: null
148
+ }
149
+ }
150
+ ]
151
+ };
152
+ const result = (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-a-wrapped", contextWithNoWrappedTokenName);
153
+ expect(result).toBe("Token A");
154
+ });
155
+ it("should return wrapped token name when wrap token contract matches case-insensitive", () => {
156
+ const result = (0, getTokenNameHelper_1.getTokenName)("st1234567890123456789012345678901234567890.TOKEN-A-WRAPPED", mockContext);
157
+ expect(result).toBe("Wrapped Token A");
158
+ });
159
+ it("should throw error when token contract is not found", () => {
160
+ expect(() => {
161
+ (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.nonexistent", mockContext);
162
+ }).toThrow("Token contract ST1234567890123456789012345678901234567890.nonexistent not found");
163
+ });
164
+ it("should handle context with no available tokens", () => {
165
+ const emptyContext = {
166
+ availableTokens: [],
167
+ contractInterfaces: {},
168
+ functionArgs: {},
169
+ network: "testnet",
170
+ swapOptions: {}
171
+ };
172
+ expect(() => {
173
+ (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-a", emptyContext);
174
+ }).toThrow("Token contract ST1234567890123456789012345678901234567890.token-a not found");
175
+ });
176
+ it("should handle tokens without tokenContract property", () => {
177
+ const contextWithNoTokenContract = {
178
+ ...mockContext,
179
+ availableTokens: [
180
+ {
181
+ base: "token-a",
182
+ type: "fungible",
183
+ icon: "icon-a",
184
+ name: "Token A",
185
+ status: "active",
186
+ symbol: "TKA",
187
+ tokenId: "token-a",
188
+ "token-id": "token-a",
189
+ tokenContract: null, // No tokenContract property
190
+ tokenDecimals: 6,
191
+ tokenName: "Token A",
192
+ wrapTokens: null,
193
+ isKeeperToken: false,
194
+ bridge: "FALSE",
195
+ layerOneAsset: null,
196
+ priceData: {
197
+ "1h_change": null,
198
+ "1yr_change": null,
199
+ "24h_change": null,
200
+ "30d_change": null,
201
+ "7d_change": null,
202
+ last_price: null,
203
+ last_updated: null
204
+ }
205
+ }
206
+ ]
207
+ };
208
+ expect(() => {
209
+ (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.token-a", contextWithNoTokenContract);
210
+ }).toThrow("Token contract ST1234567890123456789012345678901234567890.token-a not found");
211
+ });
212
+ it("should handle wrap tokens without tokenContract property", () => {
213
+ const contextWithNoWrappedTokenContract = {
214
+ ...mockContext,
215
+ availableTokens: [
216
+ {
217
+ base: "token-a",
218
+ type: "fungible",
219
+ icon: "icon-a",
220
+ name: "Token A",
221
+ status: "active",
222
+ symbol: "TKA",
223
+ tokenId: "token-a",
224
+ "token-id": "token-a",
225
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a",
226
+ tokenDecimals: 6,
227
+ tokenName: "Token A",
228
+ wrapTokens: {
229
+ wrapped: {
230
+ tokenContract: "ST1234567890123456789012345678901234567890.token-a-wrapped",
231
+ tokenDecimals: 6,
232
+ tokenName: "Wrapped Token A"
233
+ }
234
+ },
235
+ isKeeperToken: false,
236
+ bridge: "FALSE",
237
+ layerOneAsset: null,
238
+ priceData: {
239
+ "1h_change": null,
240
+ "1yr_change": null,
241
+ "24h_change": null,
242
+ "30d_change": null,
243
+ "7d_change": null,
244
+ last_price: null,
245
+ last_updated: null
246
+ }
247
+ }
248
+ ]
249
+ };
250
+ // This test case doesn't make sense since we can't have a wrap token without tokenContract
251
+ // The type system would prevent this. Let's test a different scenario.
252
+ expect(() => {
253
+ (0, getTokenNameHelper_1.getTokenName)("ST1234567890123456789012345678901234567890.nonexistent-wrapped", contextWithNoWrappedTokenContract);
254
+ }).toThrow("Token contract ST1234567890123456789012345678901234567890.nonexistent-wrapped not found");
255
+ });
256
+ });
257
+ });
258
+ //# sourceMappingURL=getTokenNameHelper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokenNameHelper.test.js","sourceRoot":"","sources":["../../../test/helpers/getTokenNameHelper.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const handleResultHelper_1 = require("../../src/helpers/handleResultHelper");
4
+ describe('handleResult', () => {
5
+ it('should return nulls for null or undefined input', () => {
6
+ expect((0, handleResultHelper_1.handleResult)(null)).toEqual({ rawResult: null, convertedResult: null });
7
+ expect((0, handleResultHelper_1.handleResult)(undefined)).toEqual({ rawResult: null, convertedResult: null });
8
+ });
9
+ it('should handle int and uint', () => {
10
+ expect((0, handleResultHelper_1.handleResult)({ type: 'int', value: '42' })).toEqual({ rawResult: BigInt(42), convertedResult: 42 });
11
+ expect((0, handleResultHelper_1.handleResult)({ type: 'uint', value: '123' })).toEqual({ rawResult: BigInt(123), convertedResult: 123 });
12
+ });
13
+ it('should handle buffer', () => {
14
+ const buf = Buffer.from('abcd', 'utf8');
15
+ const result = (0, handleResultHelper_1.handleResult)({ type: 'buffer', value: buf });
16
+ expect(result.rawResult.equals(buf)).toBe(true);
17
+ expect(result.convertedResult).toBe(buf.toString('hex'));
18
+ });
19
+ it('should handle true/false', () => {
20
+ expect((0, handleResultHelper_1.handleResult)({ type: 'true' })).toEqual({ rawResult: true, convertedResult: true });
21
+ expect((0, handleResultHelper_1.handleResult)({ type: 'false' })).toEqual({ rawResult: false, convertedResult: false });
22
+ });
23
+ it('should handle address', () => {
24
+ expect((0, handleResultHelper_1.handleResult)({ type: 'address', value: 'ST123' })).toEqual({ rawResult: 'ST123', convertedResult: 'ST123' });
25
+ });
26
+ it('should handle contract', () => {
27
+ expect((0, handleResultHelper_1.handleResult)({ type: 'contract', value: { address: 'ST123', contractName: 'foo' } })).toEqual({ rawResult: 'ST123.foo', convertedResult: 'ST123.foo' });
28
+ });
29
+ it('should recurse for ok/err/some', () => {
30
+ expect((0, handleResultHelper_1.handleResult)({ type: 'ok', value: { type: 'int', value: '1' } })).toEqual({ rawResult: BigInt(1), convertedResult: 1 });
31
+ expect((0, handleResultHelper_1.handleResult)({ type: 'err', value: { type: 'false' } })).toEqual({ rawResult: false, convertedResult: false });
32
+ expect((0, handleResultHelper_1.handleResult)({ type: 'some', value: { type: 'true' } })).toEqual({ rawResult: true, convertedResult: true });
33
+ });
34
+ it('should handle none', () => {
35
+ expect((0, handleResultHelper_1.handleResult)({ type: 'none' })).toEqual({ rawResult: null, convertedResult: null });
36
+ });
37
+ it('should handle list', () => {
38
+ const input = { type: 'list', value: [
39
+ { type: 'int', value: '1' },
40
+ { type: 'int', value: '2' }
41
+ ] };
42
+ expect((0, handleResultHelper_1.handleResult)(input)).toEqual({ rawResult: [BigInt(1), BigInt(2)], convertedResult: [1, 2] });
43
+ });
44
+ it('should handle tuple with non-object', () => {
45
+ const spy = jest.spyOn(console, 'error').mockImplementation(() => { });
46
+ expect((0, handleResultHelper_1.handleResult)({ type: 'tuple', value: null })).toEqual({ rawResult: null, convertedResult: null });
47
+ expect((0, handleResultHelper_1.handleResult)({ type: 'tuple', value: 123 })).toEqual({ rawResult: null, convertedResult: null });
48
+ spy.mockRestore();
49
+ });
50
+ it('should handle tuple with empty object', () => {
51
+ expect((0, handleResultHelper_1.handleResult)({ type: 'tuple', value: {} })).toEqual({ rawResult: null, convertedResult: null });
52
+ });
53
+ it('should handle tuple with multiple keys (returns last in sort)', () => {
54
+ const input = { type: 'tuple', value: { a: { type: 'int', value: '1' }, b: { type: 'int', value: '2' } } };
55
+ // b > a in localeCompare, so b is picked
56
+ expect((0, handleResultHelper_1.handleResult)(input)).toEqual({ rawResult: BigInt(2), convertedResult: 2 });
57
+ });
58
+ it('should handle ascii and utf8', () => {
59
+ expect((0, handleResultHelper_1.handleResult)({ type: 'ascii', value: 'foo' })).toEqual({ rawResult: 'foo', convertedResult: 'foo' });
60
+ expect((0, handleResultHelper_1.handleResult)({ type: 'utf8', value: 'bar' })).toEqual({ rawResult: 'bar', convertedResult: 'bar' });
61
+ });
62
+ it('should throw on unknown type', () => {
63
+ expect(() => (0, handleResultHelper_1.handleResult)({ type: 'weird', value: 1 })).toThrow('Unexpected result type: weird');
64
+ });
65
+ it('should handle input with data property instead of value', () => {
66
+ expect((0, handleResultHelper_1.handleResult)({ type: 'int', data: '42' })).toEqual({ rawResult: BigInt(42), convertedResult: 42 });
67
+ expect((0, handleResultHelper_1.handleResult)({ type: 'uint', data: '123' })).toEqual({ rawResult: BigInt(123), convertedResult: 123 });
68
+ const buf = Buffer.from('abcd', 'utf8');
69
+ expect((0, handleResultHelper_1.handleResult)({ type: 'buffer', data: buf })).toEqual({ rawResult: buf, convertedResult: buf.toString('hex') });
70
+ });
71
+ });
72
+ //# sourceMappingURL=handleResultHelper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleResultHelper.test.js","sourceRoot":"","sources":["../../../test/helpers/handleResultHelper.test.ts"],"names":[],"mappings":"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"}