@circle-fin/usdckit 0.19.0 → 0.19.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.
- package/dist/cjs/metadata.js +1 -1
- package/dist/cjs/providers/circle-wallets/actions/getTokenBalances.d.ts +0 -1
- package/dist/cjs/providers/circle-wallets/actions/getTokenBalances.d.ts.map +1 -1
- package/dist/cjs/providers/circle-wallets/actions/getTokenBalances.js +2 -2
- package/dist/cjs/providers/circle-wallets/actions/getTokenBalances.js.map +1 -1
- package/dist/cjs/utils/groupBy.d.ts +8 -0
- package/dist/cjs/utils/groupBy.d.ts.map +1 -0
- package/dist/cjs/utils/groupBy.js +31 -0
- package/dist/cjs/utils/groupBy.js.map +1 -0
- package/dist/cjs/utils/groupBy.test.d.ts +2 -0
- package/dist/cjs/utils/groupBy.test.d.ts.map +1 -0
- package/dist/cjs/utils/groupBy.test.js +127 -0
- package/dist/cjs/utils/groupBy.test.js.map +1 -0
- package/dist/esm/metadata.js +1 -1
- package/dist/esm/providers/circle-wallets/actions/getTokenBalances.d.ts +0 -1
- package/dist/esm/providers/circle-wallets/actions/getTokenBalances.d.ts.map +1 -1
- package/dist/esm/providers/circle-wallets/actions/getTokenBalances.js +2 -2
- package/dist/esm/providers/circle-wallets/actions/getTokenBalances.js.map +1 -1
- package/dist/esm/utils/groupBy.d.ts +8 -0
- package/dist/esm/utils/groupBy.d.ts.map +1 -0
- package/dist/esm/utils/groupBy.js +28 -0
- package/dist/esm/utils/groupBy.js.map +1 -0
- package/dist/esm/utils/groupBy.test.d.ts +2 -0
- package/dist/esm/utils/groupBy.test.d.ts.map +1 -0
- package/dist/esm/utils/groupBy.test.js +125 -0
- package/dist/esm/utils/groupBy.test.js.map +1 -0
- package/package.json +1 -2
package/dist/cjs/metadata.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'core-js/es/object/group-by';
|
|
2
1
|
import type { Account, Address, BaseUnits, Chain, ChainContract, ExtendedViemClient, NativeUnits } from '../../../types.js';
|
|
3
2
|
import type { GetWalletTokenBalanceInput as _GetWalletTokenBalanceInput } from '../transports/index.js';
|
|
4
3
|
export type GetTokenBalancesInput = _GetWalletTokenBalanceInput & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenBalances.d.ts","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTokenBalances.d.ts","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,0BAA0B,IAAI,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAEvG,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,GAAG;IAChE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,WAAW,CAAA;CACvB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,qBAAqB;WAoCnE,OAAO,GAAG,SAAS;;;;eAIrB,WAAW;KAcrC"}
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.getTokenBalances = getTokenBalances;
|
|
14
|
-
require("core-js/es/object/group-by");
|
|
15
14
|
const utils_1 = require("viem/utils");
|
|
16
15
|
const UnsupportedChainError_js_1 = require("../../../errors/UnsupportedChainError.js");
|
|
17
16
|
const formatUnits_js_1 = require("../../../utils/formatUnits.js");
|
|
17
|
+
const groupBy_js_1 = require("../../../utils/groupBy.js");
|
|
18
18
|
const parseAccount_js_1 = require("../../../utils/parseAccount.js");
|
|
19
19
|
const parseUnits_js_1 = require("../../../utils/parseUnits.js");
|
|
20
20
|
const raise_js_1 = require("../../../utils/raise.js");
|
|
@@ -37,7 +37,7 @@ async function getTokenBalances(client, params) {
|
|
|
37
37
|
tokenAddress: token == null ? token : token.address,
|
|
38
38
|
})))).flat();
|
|
39
39
|
// Group by `tokenAddress`
|
|
40
|
-
const balancesByToken =
|
|
40
|
+
const balancesByToken = (0, groupBy_js_1.groupBy)(balances, ({ token: { tokenAddress } }) => tokenAddress ?? '');
|
|
41
41
|
return Object.entries(balancesByToken).map(([, _balances]) => {
|
|
42
42
|
// Transform return payload
|
|
43
43
|
const balances = (_balances ?? []).map(({ token: { decimals, symbol, tokenAddress }, amount }) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenBalances.js","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":";AAAA,kDAAkD;AAClD,uBAAuB;AACvB,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,8EAA8E;AAC9E,yEAAyE;AACzE,mFAAmF;;
|
|
1
|
+
{"version":3,"file":"getTokenBalances.js","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groups array elements by a key function, similar to Object.groupBy
|
|
3
|
+
* @param items - Array of items to group
|
|
4
|
+
* @param keyFn - Function that extracts the grouping key from each item
|
|
5
|
+
* @returns Object with keys as group identifiers and values as arrays of grouped items
|
|
6
|
+
*/
|
|
7
|
+
export declare function groupBy<T>(items: T[], keyFn: (item: T) => string | number | symbol): Record<string | number | symbol, T[]>;
|
|
8
|
+
//# sourceMappingURL=groupBy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.d.ts","sourceRoot":"","sources":["../../../src/utils/groupBy.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,yCAYlF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2025, Circle Internet Group, Inc.
|
|
3
|
+
// All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// Circle Internet Group, Inc. CONFIDENTIAL
|
|
6
|
+
//
|
|
7
|
+
// This file includes unpublished proprietary source code of Circle Internet
|
|
8
|
+
// Group, Inc. The copyright notice above does not
|
|
9
|
+
// evidence any actual or intended publication of such source code. Disclosure
|
|
10
|
+
// of this source code or any related proprietary information is strictly
|
|
11
|
+
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.groupBy = groupBy;
|
|
14
|
+
/**
|
|
15
|
+
* Groups array elements by a key function, similar to Object.groupBy
|
|
16
|
+
* @param items - Array of items to group
|
|
17
|
+
* @param keyFn - Function that extracts the grouping key from each item
|
|
18
|
+
* @returns Object with keys as group identifiers and values as arrays of grouped items
|
|
19
|
+
*/
|
|
20
|
+
function groupBy(items, keyFn) {
|
|
21
|
+
const result = {};
|
|
22
|
+
for (const item of items) {
|
|
23
|
+
const key = keyFn(item);
|
|
24
|
+
if (!(key in result)) {
|
|
25
|
+
result[key] = [];
|
|
26
|
+
}
|
|
27
|
+
result[key].push(item);
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=groupBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/utils/groupBy.ts"],"names":[],"mappings":";AAAA,kDAAkD;AAClD,uBAAuB;AACvB,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,8EAA8E;AAC9E,yEAAyE;AACzE,mFAAmF;;AAQnF,0BAYC;AAlBD;;;;;GAKG;AACH,SAAgB,OAAO,CAAI,KAAU,EAAE,KAA4C;IACjF,MAAM,MAAM,GAA0C,EAAE,CAAA;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.test.d.ts","sourceRoot":"","sources":["../../../src/utils/groupBy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2025, Circle Internet Group, Inc.
|
|
3
|
+
// All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// Circle Internet Group, Inc. CONFIDENTIAL
|
|
6
|
+
//
|
|
7
|
+
// This file includes unpublished proprietary source code of Circle Internet
|
|
8
|
+
// Group, Inc. The copyright notice above does not
|
|
9
|
+
// evidence any actual or intended publication of such source code. Disclosure
|
|
10
|
+
// of this source code or any related proprietary information is strictly
|
|
11
|
+
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const vitest_1 = require("vitest");
|
|
14
|
+
const groupBy_js_1 = require("./groupBy.js");
|
|
15
|
+
vitest_1.describe.concurrent('groupBy', () => {
|
|
16
|
+
(0, vitest_1.it)('should group numbers by even/odd', () => {
|
|
17
|
+
const numbers = [1, 2, 3, 4, 5, 6];
|
|
18
|
+
const result = (0, groupBy_js_1.groupBy)(numbers, (x) => x % 2);
|
|
19
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
20
|
+
0: [2, 4, 6],
|
|
21
|
+
1: [1, 3, 5],
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('should group strings by length', () => {
|
|
25
|
+
const words = ['a', 'ab', 'abc', 'abcd', 'ab', 'a'];
|
|
26
|
+
const result = (0, groupBy_js_1.groupBy)(words, (word) => word.length);
|
|
27
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
28
|
+
1: ['a', 'a'],
|
|
29
|
+
2: ['ab', 'ab'],
|
|
30
|
+
3: ['abc'],
|
|
31
|
+
4: ['abcd'],
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)('should group objects by property', () => {
|
|
35
|
+
const people = [
|
|
36
|
+
{ name: 'Alice', age: 25 },
|
|
37
|
+
{ name: 'Bob', age: 30 },
|
|
38
|
+
{ name: 'Charlie', age: 25 },
|
|
39
|
+
{ name: 'David', age: 30 },
|
|
40
|
+
];
|
|
41
|
+
const result = (0, groupBy_js_1.groupBy)(people, (person) => person.age);
|
|
42
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
43
|
+
25: [
|
|
44
|
+
{ name: 'Alice', age: 25 },
|
|
45
|
+
{ name: 'Charlie', age: 25 },
|
|
46
|
+
],
|
|
47
|
+
30: [
|
|
48
|
+
{ name: 'Bob', age: 30 },
|
|
49
|
+
{ name: 'David', age: 30 },
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.it)('should handle nested object properties', () => {
|
|
54
|
+
const balances = [
|
|
55
|
+
{ token: { tokenAddress: '0x123' }, amount: 100 },
|
|
56
|
+
{ token: { tokenAddress: '0x456' }, amount: 200 },
|
|
57
|
+
{ token: { tokenAddress: '0x123' }, amount: 300 },
|
|
58
|
+
{ token: { tokenAddress: null }, amount: 400 },
|
|
59
|
+
];
|
|
60
|
+
const result = (0, groupBy_js_1.groupBy)(balances, ({ token: { tokenAddress } }) => tokenAddress ?? '');
|
|
61
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
62
|
+
'0x123': [
|
|
63
|
+
{ token: { tokenAddress: '0x123' }, amount: 100 },
|
|
64
|
+
{ token: { tokenAddress: '0x123' }, amount: 300 },
|
|
65
|
+
],
|
|
66
|
+
'0x456': [{ token: { tokenAddress: '0x456' }, amount: 200 }],
|
|
67
|
+
'': [{ token: { tokenAddress: null }, amount: 400 }],
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
(0, vitest_1.it)('should handle empty array', () => {
|
|
71
|
+
const result = (0, groupBy_js_1.groupBy)([], (x) => x);
|
|
72
|
+
(0, vitest_1.expect)(result).toEqual({});
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.it)('should handle array with single item', () => {
|
|
75
|
+
const result = (0, groupBy_js_1.groupBy)(['single'], (x) => x.length);
|
|
76
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
77
|
+
6: ['single'],
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
(0, vitest_1.it)('should group by string keys', () => {
|
|
81
|
+
const items = [
|
|
82
|
+
{ category: 'fruit', name: 'apple' },
|
|
83
|
+
{ category: 'vegetable', name: 'carrot' },
|
|
84
|
+
{ category: 'fruit', name: 'banana' },
|
|
85
|
+
{ category: 'vegetable', name: 'lettuce' },
|
|
86
|
+
];
|
|
87
|
+
const result = (0, groupBy_js_1.groupBy)(items, (item) => item.category);
|
|
88
|
+
(0, vitest_1.expect)(result).toEqual({
|
|
89
|
+
fruit: [
|
|
90
|
+
{ category: 'fruit', name: 'apple' },
|
|
91
|
+
{ category: 'fruit', name: 'banana' },
|
|
92
|
+
],
|
|
93
|
+
vegetable: [
|
|
94
|
+
{ category: 'vegetable', name: 'carrot' },
|
|
95
|
+
{ category: 'vegetable', name: 'lettuce' },
|
|
96
|
+
],
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
(0, vitest_1.it)('should handle symbol keys', () => {
|
|
100
|
+
const sym1 = Symbol('group1');
|
|
101
|
+
const sym2 = Symbol('group2');
|
|
102
|
+
const items = [1, 2, 3, 4];
|
|
103
|
+
const result = (0, groupBy_js_1.groupBy)(items, (x) => (x % 2 === 0 ? sym1 : sym2));
|
|
104
|
+
(0, vitest_1.expect)(result[sym1]).toEqual([2, 4]);
|
|
105
|
+
(0, vitest_1.expect)(result[sym2]).toEqual([1, 3]);
|
|
106
|
+
});
|
|
107
|
+
(0, vitest_1.it)('should preserve order within groups', () => {
|
|
108
|
+
const items = [
|
|
109
|
+
{ id: 1, group: 'A' },
|
|
110
|
+
{ id: 2, group: 'B' },
|
|
111
|
+
{ id: 3, group: 'A' },
|
|
112
|
+
{ id: 4, group: 'B' },
|
|
113
|
+
{ id: 5, group: 'A' },
|
|
114
|
+
];
|
|
115
|
+
const result = (0, groupBy_js_1.groupBy)(items, (item) => item.group);
|
|
116
|
+
(0, vitest_1.expect)(result.A).toEqual([
|
|
117
|
+
{ id: 1, group: 'A' },
|
|
118
|
+
{ id: 3, group: 'A' },
|
|
119
|
+
{ id: 5, group: 'A' },
|
|
120
|
+
]);
|
|
121
|
+
(0, vitest_1.expect)(result.B).toEqual([
|
|
122
|
+
{ id: 2, group: 'B' },
|
|
123
|
+
{ id: 4, group: 'B' },
|
|
124
|
+
]);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=groupBy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.test.js","sourceRoot":"","sources":["../../../src/utils/groupBy.test.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/metadata.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'core-js/es/object/group-by';
|
|
2
1
|
import type { Account, Address, BaseUnits, Chain, ChainContract, ExtendedViemClient, NativeUnits } from '../../../types.js';
|
|
3
2
|
import type { GetWalletTokenBalanceInput as _GetWalletTokenBalanceInput } from '../transports/index.js';
|
|
4
3
|
export type GetTokenBalancesInput = _GetWalletTokenBalanceInput & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenBalances.d.ts","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTokenBalances.d.ts","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,0BAA0B,IAAI,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAEvG,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,GAAG;IAChE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,WAAW,CAAA;CACvB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,qBAAqB;WAoCnE,OAAO,GAAG,SAAS;;;;eAIrB,WAAW;KAcrC"}
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
// evidence any actual or intended publication of such source code. Disclosure
|
|
9
9
|
// of this source code or any related proprietary information is strictly
|
|
10
10
|
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
11
|
-
import 'core-js/es/object/group-by';
|
|
12
11
|
import { getAction } from 'viem/utils';
|
|
13
12
|
import { UnsupportedChainError } from '../../../errors/UnsupportedChainError.js';
|
|
14
13
|
import { formatUnits } from '../../../utils/formatUnits.js';
|
|
14
|
+
import { groupBy } from '../../../utils/groupBy.js';
|
|
15
15
|
import { parseAccount } from '../../../utils/parseAccount.js';
|
|
16
16
|
import { parseUnits } from '../../../utils/parseUnits.js';
|
|
17
17
|
import { raise } from '../../../utils/raise.js';
|
|
@@ -34,7 +34,7 @@ export async function getTokenBalances(client, params) {
|
|
|
34
34
|
tokenAddress: token == null ? token : token.address,
|
|
35
35
|
})))).flat();
|
|
36
36
|
// Group by `tokenAddress`
|
|
37
|
-
const balancesByToken =
|
|
37
|
+
const balancesByToken = groupBy(balances, ({ token: { tokenAddress } }) => tokenAddress ?? '');
|
|
38
38
|
return Object.entries(balancesByToken).map(([, _balances]) => {
|
|
39
39
|
// Transform return payload
|
|
40
40
|
const balances = (_balances ?? []).map(({ token: { decimals, symbol, tokenAddress }, amount }) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenBalances.js","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,uBAAuB;AACvB,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,8EAA8E;AAC9E,yEAAyE;AACzE,mFAAmF;AAEnF,OAAO,
|
|
1
|
+
{"version":3,"file":"getTokenBalances.js","sourceRoot":"","sources":["../../../../../src/providers/circle-wallets/actions/getTokenBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groups array elements by a key function, similar to Object.groupBy
|
|
3
|
+
* @param items - Array of items to group
|
|
4
|
+
* @param keyFn - Function that extracts the grouping key from each item
|
|
5
|
+
* @returns Object with keys as group identifiers and values as arrays of grouped items
|
|
6
|
+
*/
|
|
7
|
+
export declare function groupBy<T>(items: T[], keyFn: (item: T) => string | number | symbol): Record<string | number | symbol, T[]>;
|
|
8
|
+
//# sourceMappingURL=groupBy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.d.ts","sourceRoot":"","sources":["../../../src/utils/groupBy.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,yCAYlF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright (c) 2025, Circle Internet Group, Inc.
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
// Circle Internet Group, Inc. CONFIDENTIAL
|
|
5
|
+
//
|
|
6
|
+
// This file includes unpublished proprietary source code of Circle Internet
|
|
7
|
+
// Group, Inc. The copyright notice above does not
|
|
8
|
+
// evidence any actual or intended publication of such source code. Disclosure
|
|
9
|
+
// of this source code or any related proprietary information is strictly
|
|
10
|
+
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
11
|
+
/**
|
|
12
|
+
* Groups array elements by a key function, similar to Object.groupBy
|
|
13
|
+
* @param items - Array of items to group
|
|
14
|
+
* @param keyFn - Function that extracts the grouping key from each item
|
|
15
|
+
* @returns Object with keys as group identifiers and values as arrays of grouped items
|
|
16
|
+
*/
|
|
17
|
+
export function groupBy(items, keyFn) {
|
|
18
|
+
const result = {};
|
|
19
|
+
for (const item of items) {
|
|
20
|
+
const key = keyFn(item);
|
|
21
|
+
if (!(key in result)) {
|
|
22
|
+
result[key] = [];
|
|
23
|
+
}
|
|
24
|
+
result[key].push(item);
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=groupBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/utils/groupBy.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,uBAAuB;AACvB,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,8EAA8E;AAC9E,yEAAyE;AACzE,mFAAmF;AAEnF;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAI,KAAU,EAAE,KAA4C;IACjF,MAAM,MAAM,GAA0C,EAAE,CAAA;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.test.d.ts","sourceRoot":"","sources":["../../../src/utils/groupBy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// Copyright (c) 2025, Circle Internet Group, Inc.
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
// Circle Internet Group, Inc. CONFIDENTIAL
|
|
5
|
+
//
|
|
6
|
+
// This file includes unpublished proprietary source code of Circle Internet
|
|
7
|
+
// Group, Inc. The copyright notice above does not
|
|
8
|
+
// evidence any actual or intended publication of such source code. Disclosure
|
|
9
|
+
// of this source code or any related proprietary information is strictly
|
|
10
|
+
// prohibited without the express written permission of Circle Internet Group, Inc.
|
|
11
|
+
import { expect, describe, it } from 'vitest';
|
|
12
|
+
import { groupBy } from './groupBy.js';
|
|
13
|
+
describe.concurrent('groupBy', () => {
|
|
14
|
+
it('should group numbers by even/odd', () => {
|
|
15
|
+
const numbers = [1, 2, 3, 4, 5, 6];
|
|
16
|
+
const result = groupBy(numbers, (x) => x % 2);
|
|
17
|
+
expect(result).toEqual({
|
|
18
|
+
0: [2, 4, 6],
|
|
19
|
+
1: [1, 3, 5],
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('should group strings by length', () => {
|
|
23
|
+
const words = ['a', 'ab', 'abc', 'abcd', 'ab', 'a'];
|
|
24
|
+
const result = groupBy(words, (word) => word.length);
|
|
25
|
+
expect(result).toEqual({
|
|
26
|
+
1: ['a', 'a'],
|
|
27
|
+
2: ['ab', 'ab'],
|
|
28
|
+
3: ['abc'],
|
|
29
|
+
4: ['abcd'],
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
it('should group objects by property', () => {
|
|
33
|
+
const people = [
|
|
34
|
+
{ name: 'Alice', age: 25 },
|
|
35
|
+
{ name: 'Bob', age: 30 },
|
|
36
|
+
{ name: 'Charlie', age: 25 },
|
|
37
|
+
{ name: 'David', age: 30 },
|
|
38
|
+
];
|
|
39
|
+
const result = groupBy(people, (person) => person.age);
|
|
40
|
+
expect(result).toEqual({
|
|
41
|
+
25: [
|
|
42
|
+
{ name: 'Alice', age: 25 },
|
|
43
|
+
{ name: 'Charlie', age: 25 },
|
|
44
|
+
],
|
|
45
|
+
30: [
|
|
46
|
+
{ name: 'Bob', age: 30 },
|
|
47
|
+
{ name: 'David', age: 30 },
|
|
48
|
+
],
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
it('should handle nested object properties', () => {
|
|
52
|
+
const balances = [
|
|
53
|
+
{ token: { tokenAddress: '0x123' }, amount: 100 },
|
|
54
|
+
{ token: { tokenAddress: '0x456' }, amount: 200 },
|
|
55
|
+
{ token: { tokenAddress: '0x123' }, amount: 300 },
|
|
56
|
+
{ token: { tokenAddress: null }, amount: 400 },
|
|
57
|
+
];
|
|
58
|
+
const result = groupBy(balances, ({ token: { tokenAddress } }) => tokenAddress ?? '');
|
|
59
|
+
expect(result).toEqual({
|
|
60
|
+
'0x123': [
|
|
61
|
+
{ token: { tokenAddress: '0x123' }, amount: 100 },
|
|
62
|
+
{ token: { tokenAddress: '0x123' }, amount: 300 },
|
|
63
|
+
],
|
|
64
|
+
'0x456': [{ token: { tokenAddress: '0x456' }, amount: 200 }],
|
|
65
|
+
'': [{ token: { tokenAddress: null }, amount: 400 }],
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it('should handle empty array', () => {
|
|
69
|
+
const result = groupBy([], (x) => x);
|
|
70
|
+
expect(result).toEqual({});
|
|
71
|
+
});
|
|
72
|
+
it('should handle array with single item', () => {
|
|
73
|
+
const result = groupBy(['single'], (x) => x.length);
|
|
74
|
+
expect(result).toEqual({
|
|
75
|
+
6: ['single'],
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it('should group by string keys', () => {
|
|
79
|
+
const items = [
|
|
80
|
+
{ category: 'fruit', name: 'apple' },
|
|
81
|
+
{ category: 'vegetable', name: 'carrot' },
|
|
82
|
+
{ category: 'fruit', name: 'banana' },
|
|
83
|
+
{ category: 'vegetable', name: 'lettuce' },
|
|
84
|
+
];
|
|
85
|
+
const result = groupBy(items, (item) => item.category);
|
|
86
|
+
expect(result).toEqual({
|
|
87
|
+
fruit: [
|
|
88
|
+
{ category: 'fruit', name: 'apple' },
|
|
89
|
+
{ category: 'fruit', name: 'banana' },
|
|
90
|
+
],
|
|
91
|
+
vegetable: [
|
|
92
|
+
{ category: 'vegetable', name: 'carrot' },
|
|
93
|
+
{ category: 'vegetable', name: 'lettuce' },
|
|
94
|
+
],
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
it('should handle symbol keys', () => {
|
|
98
|
+
const sym1 = Symbol('group1');
|
|
99
|
+
const sym2 = Symbol('group2');
|
|
100
|
+
const items = [1, 2, 3, 4];
|
|
101
|
+
const result = groupBy(items, (x) => (x % 2 === 0 ? sym1 : sym2));
|
|
102
|
+
expect(result[sym1]).toEqual([2, 4]);
|
|
103
|
+
expect(result[sym2]).toEqual([1, 3]);
|
|
104
|
+
});
|
|
105
|
+
it('should preserve order within groups', () => {
|
|
106
|
+
const items = [
|
|
107
|
+
{ id: 1, group: 'A' },
|
|
108
|
+
{ id: 2, group: 'B' },
|
|
109
|
+
{ id: 3, group: 'A' },
|
|
110
|
+
{ id: 4, group: 'B' },
|
|
111
|
+
{ id: 5, group: 'A' },
|
|
112
|
+
];
|
|
113
|
+
const result = groupBy(items, (item) => item.group);
|
|
114
|
+
expect(result.A).toEqual([
|
|
115
|
+
{ id: 1, group: 'A' },
|
|
116
|
+
{ id: 3, group: 'A' },
|
|
117
|
+
{ id: 5, group: 'A' },
|
|
118
|
+
]);
|
|
119
|
+
expect(result.B).toEqual([
|
|
120
|
+
{ id: 2, group: 'B' },
|
|
121
|
+
{ id: 4, group: 'B' },
|
|
122
|
+
]);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=groupBy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupBy.test.js","sourceRoot":"","sources":["../../../src/utils/groupBy.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@circle-fin/usdckit",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/circlefin/w3s-node-sdk.git"
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"@inquirer/prompts": "^7.5.3",
|
|
18
18
|
"axios": "^1.9.0",
|
|
19
19
|
"commander": "^14.0.0",
|
|
20
|
-
"core-js": "^3.40.0",
|
|
21
20
|
"pino": "^9.6.0",
|
|
22
21
|
"uuid": "^11.0.3",
|
|
23
22
|
"viem": "^2.23.13"
|