@bitgo-beta/sdk-coin-sui 3.0.3-beta.2101 → 3.0.3-beta.2103

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.
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Structural surface of the GrpcCoreClient namespace of @mysten/sui that the
3
+ * Sui SDK's node interactions rely on. Shapes are verified against
4
+ * @mysten/sui@2.20.0 (src/grpc/core.ts); the exact version pin in package.json
5
+ * keeps them stable across upgrades, so no field is silently defaulted —
6
+ * helpers below hard-throw when expected fields are missing.
7
+ */
8
+ export interface SuiGrpcCoreClient {
9
+ getBalance(options: {
10
+ owner: string;
11
+ coinType?: string;
12
+ }): Promise<{
13
+ balance: {
14
+ balance: string;
15
+ coinType: string;
16
+ coinBalance: string;
17
+ addressBalance: string;
18
+ };
19
+ }>;
20
+ listCoins(options: {
21
+ owner: string;
22
+ coinType?: string;
23
+ cursor?: string | null;
24
+ }): Promise<{
25
+ objects: Array<{
26
+ objectId: string;
27
+ version: string;
28
+ digest: string;
29
+ balance: string;
30
+ type?: string;
31
+ }>;
32
+ hasNextPage: boolean;
33
+ cursor: string | null;
34
+ }>;
35
+ simulateTransaction(options: {
36
+ transaction: Uint8Array;
37
+ checksEnabled: boolean;
38
+ include: {
39
+ effects: boolean;
40
+ };
41
+ }): Promise<{
42
+ $kind: 'Transaction' | 'FailedTransaction';
43
+ Transaction?: {
44
+ digest?: string;
45
+ status?: {
46
+ success?: boolean;
47
+ };
48
+ effects?: {
49
+ status?: {
50
+ success?: boolean;
51
+ };
52
+ gasUsed?: {
53
+ computationCost?: string;
54
+ storageCost?: string;
55
+ storageRebate?: string;
56
+ nonRefundableStorageFee?: string;
57
+ };
58
+ };
59
+ };
60
+ FailedTransaction?: {
61
+ digest?: string;
62
+ };
63
+ }>;
64
+ getCurrentSystemState(): Promise<{
65
+ systemState?: {
66
+ epoch?: string | number | bigint | null;
67
+ };
68
+ }>;
69
+ getChainIdentifier(): Promise<{
70
+ chainIdentifier: string;
71
+ }>;
72
+ executeTransaction(options: {
73
+ transaction: Uint8Array;
74
+ signatures: string[];
75
+ }): Promise<{
76
+ $kind: 'Transaction' | 'FailedTransaction';
77
+ Transaction?: {
78
+ digest?: string;
79
+ };
80
+ FailedTransaction?: {
81
+ digest?: string;
82
+ };
83
+ }>;
84
+ }
85
+ /**
86
+ * The real @mysten/sui SuiGrpcClient nests its methods under a `core`
87
+ * (GrpcCoreClient) namespace. Mirror that nesting so SDK call sites go through
88
+ * the same surface production consumers of @mysten/sui use.
89
+ */
90
+ export interface SuiGrpcClient {
91
+ core: SuiGrpcCoreClient;
92
+ }
93
+ /**
94
+ * Creates a Sui gRPC client. Node: native transport; browser: gRPC-web
95
+ * (SuiGrpcClient's default fetch transport, given the URL as base). One
96
+ * client (and connection) is cached per url+network and reused across calls.
97
+ */
98
+ export declare function createSuiGrpcClient(url: string, network: 'mainnet' | 'testnet'): Promise<SuiGrpcClient>;
99
+ /**
100
+ * Closes a client's underlying connection and evicts it from the cache, so
101
+ * the next createSuiGrpcClient for the same endpoint builds a fresh client.
102
+ * Idempotent; also accepts clients that were never cached.
103
+ */
104
+ export declare function closeSuiGrpcClient(client: SuiGrpcClient): void;
105
+ /** Test-only: tear down every cached client so suites do not share sockets. */
106
+ export declare function __resetSuiGrpcClientCacheForTest(): void;
107
+ //# sourceMappingURL=grpcClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcClient.d.ts","sourceRoot":"","sources":["../../../src/lib/grpcClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createSuiGrpcClient = createSuiGrpcClient;
37
+ exports.closeSuiGrpcClient = closeSuiGrpcClient;
38
+ exports.__resetSuiGrpcClientCacheForTest = __resetSuiGrpcClientCacheForTest;
39
+ /**
40
+ * Per-call deadline applied to every gRPC call made through this transport.
41
+ * The legacy JSON-RPC client enforced a request timeout; an unbounded gRPC
42
+ * deadline would let a hung fullnode hang balance/sweep/broadcast flows
43
+ * indefinitely. 10s bounds those flows while leaving headroom over the legacy
44
+ * 3s for dry-run simulations on loaded nodes.
45
+ */
46
+ const SUI_GRPC_CALL_TIMEOUT_MS = 10000;
47
+ function isBrowserEnvironment() {
48
+ return typeof window !== 'undefined' && typeof window.document !== 'undefined';
49
+ }
50
+ // protobuf-ts service clients hold their transport under a private `_transport`
51
+ // field that the structural SuiGrpcClient type cannot express; the shape is
52
+ // fixed at the pinned @mysten/sui version.
53
+ function transportOf(client) {
54
+ const transportHolder = client;
55
+ return transportHolder.transactionExecutionService._transport;
56
+ }
57
+ const clientCache = new Map();
58
+ /**
59
+ * Creates a Sui gRPC client. Node: native transport; browser: gRPC-web
60
+ * (SuiGrpcClient's default fetch transport, given the URL as base). One
61
+ * client (and connection) is cached per url+network and reused across calls.
62
+ */
63
+ async function createSuiGrpcClient(url, network) {
64
+ const key = `${network}|${url}`;
65
+ const cached = clientCache.get(key);
66
+ if (cached) {
67
+ return cached.client;
68
+ }
69
+ // TS cannot resolve this ESM-only exports subpath under CJS resolution.
70
+ const grpcModule = require('@mysten/sui/grpc');
71
+ let client;
72
+ if (isBrowserEnvironment()) {
73
+ const { SuiGrpcClient } = grpcModule;
74
+ client = new SuiGrpcClient({ network, baseUrl: url });
75
+ }
76
+ else {
77
+ const [{ GrpcTransport }, { ChannelCredentials }] = await Promise.all([
78
+ Promise.resolve().then(() => __importStar(require('@protobuf-ts/grpc-transport'))),
79
+ Promise.resolve().then(() => __importStar(require('@grpc/grpc-js'))),
80
+ ]);
81
+ const isTls = !url.startsWith('http://');
82
+ const host = url.replace(/^https?:\/\//i, '');
83
+ const transport = new GrpcTransport({
84
+ host,
85
+ channelCredentials: isTls ? ChannelCredentials.createSsl() : ChannelCredentials.createInsecure(),
86
+ timeout: SUI_GRPC_CALL_TIMEOUT_MS,
87
+ });
88
+ const { SuiGrpcClient: NativeSuiGrpcClient } = grpcModule;
89
+ client = new NativeSuiGrpcClient({ network, transport });
90
+ }
91
+ clientCache.set(key, { client });
92
+ return client;
93
+ }
94
+ /**
95
+ * Closes a client's underlying connection and evicts it from the cache, so
96
+ * the next createSuiGrpcClient for the same endpoint builds a fresh client.
97
+ * Idempotent; also accepts clients that were never cached.
98
+ */
99
+ function closeSuiGrpcClient(client) {
100
+ for (const [key, cached] of clientCache.entries()) {
101
+ if (cached.client === client) {
102
+ clientCache.delete(key);
103
+ }
104
+ }
105
+ const transport = transportOf(client);
106
+ try {
107
+ transport.close?.();
108
+ }
109
+ catch {
110
+ // transport already closed
111
+ }
112
+ }
113
+ /** Test-only: tear down every cached client so suites do not share sockets. */
114
+ function __resetSuiGrpcClientCacheForTest() {
115
+ for (const { client } of clientCache.values()) {
116
+ closeSuiGrpcClient(client);
117
+ }
118
+ clientCache.clear();
119
+ }
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JwY0NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZ3JwY0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZGQSxrREFxQ0M7QUFPRCxnREFZQztBQUdELDRFQUtDO0FBM0ZEOzs7Ozs7R0FNRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsS0FBTSxDQUFDO0FBRXhDLFNBQVMsb0JBQW9CO0lBQzNCLE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUM7QUFDakYsQ0FBQztBQUVELGdGQUFnRjtBQUNoRiw0RUFBNEU7QUFDNUUsMkNBQTJDO0FBQzNDLFNBQVMsV0FBVyxDQUFDLE1BQXFCO0lBQ3hDLE1BQU0sZUFBZSxHQUFHLE1BQTZFLENBQUM7SUFDdEcsT0FBTyxlQUFlLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0FBQ2hFLENBQUM7QUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztBQUVqRTs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxPQUE4QjtJQUNuRixNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBTTVDLENBQUM7SUFFRixJQUFJLE1BQXFCLENBQUM7SUFDMUIsSUFBSSxvQkFBb0IsRUFBRSxFQUFFLENBQUM7UUFDM0IsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUNyQyxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7OERBQzdELDZCQUE2Qjs4REFDN0IsZUFBZTtTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDbEMsSUFBSTtZQUNKLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtZQUNoRyxPQUFPLEVBQUUsd0JBQXdCO1NBQ2xDLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDMUQsTUFBTSxHQUFHLElBQUksbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBcUI7SUFDdEQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2xELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM3QixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBMkIsQ0FBQztJQUNoRSxJQUFJLENBQUM7UUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsMkJBQTJCO0lBQzdCLENBQUM7QUFDSCxDQUFDO0FBRUQsK0VBQStFO0FBQy9FLFNBQWdCLGdDQUFnQztJQUM5QyxLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUM5QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0cnVjdHVyYWwgc3VyZmFjZSBvZiB0aGUgR3JwY0NvcmVDbGllbnQgbmFtZXNwYWNlIG9mIEBteXN0ZW4vc3VpIHRoYXQgdGhlXG4gKiBTdWkgU0RLJ3Mgbm9kZSBpbnRlcmFjdGlvbnMgcmVseSBvbi4gU2hhcGVzIGFyZSB2ZXJpZmllZCBhZ2FpbnN0XG4gKiBAbXlzdGVuL3N1aUAyLjIwLjAgKHNyYy9ncnBjL2NvcmUudHMpOyB0aGUgZXhhY3QgdmVyc2lvbiBwaW4gaW4gcGFja2FnZS5qc29uXG4gKiBrZWVwcyB0aGVtIHN0YWJsZSBhY3Jvc3MgdXBncmFkZXMsIHNvIG5vIGZpZWxkIGlzIHNpbGVudGx5IGRlZmF1bHRlZCDigJRcbiAqIGhlbHBlcnMgYmVsb3cgaGFyZC10aHJvdyB3aGVuIGV4cGVjdGVkIGZpZWxkcyBhcmUgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWlHcnBjQ29yZUNsaWVudCB7XG4gIGdldEJhbGFuY2Uob3B0aW9uczogeyBvd25lcjogc3RyaW5nOyBjb2luVHlwZT86IHN0cmluZyB9KTogUHJvbWlzZTx7XG4gICAgYmFsYW5jZToge1xuICAgICAgYmFsYW5jZTogc3RyaW5nO1xuICAgICAgY29pblR5cGU6IHN0cmluZztcbiAgICAgIGNvaW5CYWxhbmNlOiBzdHJpbmc7XG4gICAgICBhZGRyZXNzQmFsYW5jZTogc3RyaW5nO1xuICAgIH07XG4gIH0+O1xuICBsaXN0Q29pbnMob3B0aW9uczogeyBvd25lcjogc3RyaW5nOyBjb2luVHlwZT86IHN0cmluZzsgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB9KTogUHJvbWlzZTx7XG4gICAgb2JqZWN0czogQXJyYXk8e1xuICAgICAgb2JqZWN0SWQ6IHN0cmluZztcbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICAgIGRpZ2VzdDogc3RyaW5nO1xuICAgICAgYmFsYW5jZTogc3RyaW5nO1xuICAgICAgdHlwZT86IHN0cmluZztcbiAgICB9PjtcbiAgICBoYXNOZXh0UGFnZTogYm9vbGVhbjtcbiAgICBjdXJzb3I6IHN0cmluZyB8IG51bGw7XG4gIH0+O1xuICBzaW11bGF0ZVRyYW5zYWN0aW9uKG9wdGlvbnM6IHtcbiAgICB0cmFuc2FjdGlvbjogVWludDhBcnJheTtcbiAgICBjaGVja3NFbmFibGVkOiBib29sZWFuO1xuICAgIGluY2x1ZGU6IHsgZWZmZWN0czogYm9vbGVhbiB9O1xuICB9KTogUHJvbWlzZTx7XG4gICAgJGtpbmQ6ICdUcmFuc2FjdGlvbicgfCAnRmFpbGVkVHJhbnNhY3Rpb24nO1xuICAgIFRyYW5zYWN0aW9uPzoge1xuICAgICAgZGlnZXN0Pzogc3RyaW5nO1xuICAgICAgc3RhdHVzPzogeyBzdWNjZXNzPzogYm9vbGVhbiB9O1xuICAgICAgZWZmZWN0cz86IHtcbiAgICAgICAgc3RhdHVzPzogeyBzdWNjZXNzPzogYm9vbGVhbiB9O1xuICAgICAgICBnYXNVc2VkPzoge1xuICAgICAgICAgIGNvbXB1dGF0aW9uQ29zdD86IHN0cmluZztcbiAgICAgICAgICBzdG9yYWdlQ29zdD86IHN0cmluZztcbiAgICAgICAgICBzdG9yYWdlUmViYXRlPzogc3RyaW5nO1xuICAgICAgICAgIG5vblJlZnVuZGFibGVTdG9yYWdlRmVlPzogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEZhaWxlZFRyYW5zYWN0aW9uPzogeyBkaWdlc3Q/OiBzdHJpbmcgfTtcbiAgfT47XG4gIGdldEN1cnJlbnRTeXN0ZW1TdGF0ZSgpOiBQcm9taXNlPHsgc3lzdGVtU3RhdGU/OiB7IGVwb2NoPzogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50IHwgbnVsbCB9IH0+O1xuICBnZXRDaGFpbklkZW50aWZpZXIoKTogUHJvbWlzZTx7IGNoYWluSWRlbnRpZmllcjogc3RyaW5nIH0+O1xuICBleGVjdXRlVHJhbnNhY3Rpb24ob3B0aW9uczogeyB0cmFuc2FjdGlvbjogVWludDhBcnJheTsgc2lnbmF0dXJlczogc3RyaW5nW10gfSk6IFByb21pc2U8e1xuICAgICRraW5kOiAnVHJhbnNhY3Rpb24nIHwgJ0ZhaWxlZFRyYW5zYWN0aW9uJztcbiAgICBUcmFuc2FjdGlvbj86IHsgZGlnZXN0Pzogc3RyaW5nIH07XG4gICAgRmFpbGVkVHJhbnNhY3Rpb24/OiB7IGRpZ2VzdD86IHN0cmluZyB9O1xuICB9Pjtcbn1cblxuLyoqXG4gKiBUaGUgcmVhbCBAbXlzdGVuL3N1aSBTdWlHcnBjQ2xpZW50IG5lc3RzIGl0cyBtZXRob2RzIHVuZGVyIGEgYGNvcmVgXG4gKiAoR3JwY0NvcmVDbGllbnQpIG5hbWVzcGFjZS4gTWlycm9yIHRoYXQgbmVzdGluZyBzbyBTREsgY2FsbCBzaXRlcyBnbyB0aHJvdWdoXG4gKiB0aGUgc2FtZSBzdXJmYWNlIHByb2R1Y3Rpb24gY29uc3VtZXJzIG9mIEBteXN0ZW4vc3VpIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWlHcnBjQ2xpZW50IHtcbiAgY29yZTogU3VpR3JwY0NvcmVDbGllbnQ7XG59XG5cbi8qKlxuICogUGVyLWNhbGwgZGVhZGxpbmUgYXBwbGllZCB0byBldmVyeSBnUlBDIGNhbGwgbWFkZSB0aHJvdWdoIHRoaXMgdHJhbnNwb3J0LlxuICogVGhlIGxlZ2FjeSBKU09OLVJQQyBjbGllbnQgZW5mb3JjZWQgYSByZXF1ZXN0IHRpbWVvdXQ7IGFuIHVuYm91bmRlZCBnUlBDXG4gKiBkZWFkbGluZSB3b3VsZCBsZXQgYSBodW5nIGZ1bGxub2RlIGhhbmcgYmFsYW5jZS9zd2VlcC9icm9hZGNhc3QgZmxvd3NcbiAqIGluZGVmaW5pdGVseS4gMTBzIGJvdW5kcyB0aG9zZSBmbG93cyB3aGlsZSBsZWF2aW5nIGhlYWRyb29tIG92ZXIgdGhlIGxlZ2FjeVxuICogM3MgZm9yIGRyeS1ydW4gc2ltdWxhdGlvbnMgb24gbG9hZGVkIG5vZGVzLlxuICovXG5jb25zdCBTVUlfR1JQQ19DQUxMX1RJTUVPVVRfTVMgPSAxMF8wMDA7XG5cbmZ1bmN0aW9uIGlzQnJvd3NlckVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8vIHByb3RvYnVmLXRzIHNlcnZpY2UgY2xpZW50cyBob2xkIHRoZWlyIHRyYW5zcG9ydCB1bmRlciBhIHByaXZhdGUgYF90cmFuc3BvcnRgXG4vLyBmaWVsZCB0aGF0IHRoZSBzdHJ1Y3R1cmFsIFN1aUdycGNDbGllbnQgdHlwZSBjYW5ub3QgZXhwcmVzczsgdGhlIHNoYXBlIGlzXG4vLyBmaXhlZCBhdCB0aGUgcGlubmVkIEBteXN0ZW4vc3VpIHZlcnNpb24uXG5mdW5jdGlvbiB0cmFuc3BvcnRPZihjbGllbnQ6IFN1aUdycGNDbGllbnQpOiB1bmtub3duIHtcbiAgY29uc3QgdHJhbnNwb3J0SG9sZGVyID0gY2xpZW50IGFzIHVua25vd24gYXMgeyB0cmFuc2FjdGlvbkV4ZWN1dGlvblNlcnZpY2U6IHsgX3RyYW5zcG9ydDogdW5rbm93biB9IH07XG4gIHJldHVybiB0cmFuc3BvcnRIb2xkZXIudHJhbnNhY3Rpb25FeGVjdXRpb25TZXJ2aWNlLl90cmFuc3BvcnQ7XG59XG5jb25zdCBjbGllbnRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IGNsaWVudDogU3VpR3JwY0NsaWVudCB9PigpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTdWkgZ1JQQyBjbGllbnQuIE5vZGU6IG5hdGl2ZSB0cmFuc3BvcnQ7IGJyb3dzZXI6IGdSUEMtd2ViXG4gKiAoU3VpR3JwY0NsaWVudCdzIGRlZmF1bHQgZmV0Y2ggdHJhbnNwb3J0LCBnaXZlbiB0aGUgVVJMIGFzIGJhc2UpLiBPbmVcbiAqIGNsaWVudCAoYW5kIGNvbm5lY3Rpb24pIGlzIGNhY2hlZCBwZXIgdXJsK25ldHdvcmsgYW5kIHJldXNlZCBhY3Jvc3MgY2FsbHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTdWlHcnBjQ2xpZW50KHVybDogc3RyaW5nLCBuZXR3b3JrOiAnbWFpbm5ldCcgfCAndGVzdG5ldCcpOiBQcm9taXNlPFN1aUdycGNDbGllbnQ+IHtcbiAgY29uc3Qga2V5ID0gYCR7bmV0d29ya318JHt1cmx9YDtcbiAgY29uc3QgY2FjaGVkID0gY2xpZW50Q2FjaGUuZ2V0KGtleSk7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkLmNsaWVudDtcbiAgfVxuXG4gIC8vIFRTIGNhbm5vdCByZXNvbHZlIHRoaXMgRVNNLW9ubHkgZXhwb3J0cyBzdWJwYXRoIHVuZGVyIENKUyByZXNvbHV0aW9uLlxuICBjb25zdCBncnBjTW9kdWxlID0gcmVxdWlyZSgnQG15c3Rlbi9zdWkvZ3JwYycpIGFzIHtcbiAgICBTdWlHcnBjQ2xpZW50OiBuZXcgKG9wdGlvbnM6IHtcbiAgICAgIG5ldHdvcms6ICdtYWlubmV0JyB8ICd0ZXN0bmV0JztcbiAgICAgIHRyYW5zcG9ydD86IHVua25vd247XG4gICAgICBiYXNlVXJsPzogc3RyaW5nO1xuICAgIH0pID0+IFN1aUdycGNDbGllbnQ7XG4gIH07XG5cbiAgbGV0IGNsaWVudDogU3VpR3JwY0NsaWVudDtcbiAgaWYgKGlzQnJvd3NlckVudmlyb25tZW50KCkpIHtcbiAgICBjb25zdCB7IFN1aUdycGNDbGllbnQgfSA9IGdycGNNb2R1bGU7XG4gICAgY2xpZW50ID0gbmV3IFN1aUdycGNDbGllbnQoeyBuZXR3b3JrLCBiYXNlVXJsOiB1cmwgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgW3sgR3JwY1RyYW5zcG9ydCB9LCB7IENoYW5uZWxDcmVkZW50aWFscyB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGltcG9ydCgnQHByb3RvYnVmLXRzL2dycGMtdHJhbnNwb3J0JyksXG4gICAgICBpbXBvcnQoJ0BncnBjL2dycGMtanMnKSxcbiAgICBdKTtcbiAgICBjb25zdCBpc1RscyA9ICF1cmwuc3RhcnRzV2l0aCgnaHR0cDovLycpO1xuICAgIGNvbnN0IGhvc3QgPSB1cmwucmVwbGFjZSgvXmh0dHBzPzpcXC9cXC8vaSwgJycpO1xuICAgIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBHcnBjVHJhbnNwb3J0KHtcbiAgICAgIGhvc3QsXG4gICAgICBjaGFubmVsQ3JlZGVudGlhbHM6IGlzVGxzID8gQ2hhbm5lbENyZWRlbnRpYWxzLmNyZWF0ZVNzbCgpIDogQ2hhbm5lbENyZWRlbnRpYWxzLmNyZWF0ZUluc2VjdXJlKCksXG4gICAgICB0aW1lb3V0OiBTVUlfR1JQQ19DQUxMX1RJTUVPVVRfTVMsXG4gICAgfSk7XG4gICAgY29uc3QgeyBTdWlHcnBjQ2xpZW50OiBOYXRpdmVTdWlHcnBjQ2xpZW50IH0gPSBncnBjTW9kdWxlO1xuICAgIGNsaWVudCA9IG5ldyBOYXRpdmVTdWlHcnBjQ2xpZW50KHsgbmV0d29yaywgdHJhbnNwb3J0IH0pO1xuICB9XG4gIGNsaWVudENhY2hlLnNldChrZXksIHsgY2xpZW50IH0pO1xuICByZXR1cm4gY2xpZW50O1xufVxuXG4vKipcbiAqIENsb3NlcyBhIGNsaWVudCdzIHVuZGVybHlpbmcgY29ubmVjdGlvbiBhbmQgZXZpY3RzIGl0IGZyb20gdGhlIGNhY2hlLCBzb1xuICogdGhlIG5leHQgY3JlYXRlU3VpR3JwY0NsaWVudCBmb3IgdGhlIHNhbWUgZW5kcG9pbnQgYnVpbGRzIGEgZnJlc2ggY2xpZW50LlxuICogSWRlbXBvdGVudDsgYWxzbyBhY2NlcHRzIGNsaWVudHMgdGhhdCB3ZXJlIG5ldmVyIGNhY2hlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlU3VpR3JwY0NsaWVudChjbGllbnQ6IFN1aUdycGNDbGllbnQpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBba2V5LCBjYWNoZWRdIG9mIGNsaWVudENhY2hlLmVudHJpZXMoKSkge1xuICAgIGlmIChjYWNoZWQuY2xpZW50ID09PSBjbGllbnQpIHtcbiAgICAgIGNsaWVudENhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuICBjb25zdCB0cmFuc3BvcnQgPSB0cmFuc3BvcnRPZihjbGllbnQpIGFzIHsgY2xvc2U/OiAoKSA9PiB2b2lkIH07XG4gIHRyeSB7XG4gICAgdHJhbnNwb3J0LmNsb3NlPy4oKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gdHJhbnNwb3J0IGFscmVhZHkgY2xvc2VkXG4gIH1cbn1cblxuLyoqIFRlc3Qtb25seTogdGVhciBkb3duIGV2ZXJ5IGNhY2hlZCBjbGllbnQgc28gc3VpdGVzIGRvIG5vdCBzaGFyZSBzb2NrZXRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzZXRTdWlHcnBjQ2xpZW50Q2FjaGVGb3JUZXN0KCk6IHZvaWQge1xuICBmb3IgKGNvbnN0IHsgY2xpZW50IH0gb2YgY2xpZW50Q2FjaGUudmFsdWVzKCkpIHtcbiAgICBjbG9zZVN1aUdycGNDbGllbnQoY2xpZW50KTtcbiAgfVxuICBjbGllbnRDYWNoZS5jbGVhcigpO1xufVxuIl19
@@ -27,8 +27,8 @@ export declare const PaginatedCoins: import("superstruct").Struct<{
27
27
  coinObjectId: string;
28
28
  lockedUntilEpoch: number | null;
29
29
  }[];
30
- hasNextPage: boolean;
31
30
  nextCursor: string | null;
31
+ hasNextPage: boolean;
32
32
  }, {
33
33
  data: import("superstruct").Struct<{
34
34
  digest: string;
@@ -91,11 +91,11 @@ export declare const PaginatedEvents: import("superstruct").Struct<{
91
91
  parsedJson?: Record<string, any> | undefined;
92
92
  timestampMs?: number | undefined;
93
93
  }[];
94
- hasNextPage: boolean;
95
94
  nextCursor: {
96
95
  txDigest: string;
97
96
  eventSeq: number;
98
97
  } | null;
98
+ hasNextPage: boolean;
99
99
  }, {
100
100
  data: import("superstruct").Struct<{
101
101
  type: string;
@@ -147,6 +147,7 @@ export type PaginatedEvents = Infer<typeof PaginatedEvents>;
147
147
  export declare const SubscriptionId: import("superstruct").Struct<number, null>;
148
148
  export type SubscriptionId = Infer<typeof SubscriptionId>;
149
149
  export declare const SubscriptionEvent: import("superstruct").Struct<{
150
+ subscription: number;
150
151
  result: {
151
152
  type: string;
152
153
  id: {
@@ -160,7 +161,6 @@ export declare const SubscriptionEvent: import("superstruct").Struct<{
160
161
  parsedJson?: Record<string, any> | undefined;
161
162
  timestampMs?: number | undefined;
162
163
  };
163
- subscription: number;
164
164
  }, {
165
165
  subscription: import("superstruct").Struct<number, null>;
166
166
  result: import("superstruct").Struct<{
@@ -4209,8 +4209,8 @@ export declare const PaginatedTransactionResponse: import("superstruct").Struct<
4209
4209
  }[] | undefined;
4210
4210
  errors?: string[] | undefined;
4211
4211
  }[];
4212
- hasNextPage: boolean;
4213
4212
  nextCursor: string | null;
4213
+ hasNextPage: boolean;
4214
4214
  }, {
4215
4215
  data: import("superstruct").Struct<{
4216
4216
  digest: string;
@@ -3,6 +3,13 @@ import BigNumber from 'bignumber.js';
3
3
  import { RequestAddStake, RequestWalrusStakeWithPool, RequestWalrusWithdrawStake, StakingProgrammableTransaction, WalrusStakingProgrammableTransaction, WalrusWithdrawStakeProgrammableTransaction, SuiBalanceInfo, SuiObjectInfo, SuiProgrammableTransaction, SuiTransaction, SuiTransactionType } from './iface';
4
4
  import { SuiJsonValue, SuiObjectRef } from './mystenlab/types';
5
5
  import { ObjectCallArg, TransactionBlockInput, TransactionType as TransactionCommandType } from './mystenlab/builder';
6
+ import { createSuiGrpcClient, SuiGrpcClient } from './grpcClient';
7
+ /**
8
+ * First argument accepted by the exported util helpers: a pre-built gRPC
9
+ * client (current style) or the legacy node URL (backwards-compatible with
10
+ * the pre-migration signatures that took a JSON-RPC url).
11
+ */
12
+ export type SuiGrpcClientOrUrl = SuiGrpcClient | string;
6
13
  import { BaseNetwork } from '@bitgo-beta/statics';
7
14
  export declare function isImmOrOwnedObj(obj: ObjectCallArg['Object']): obj is {
8
15
  ImmOrOwned: SuiObjectRef;
@@ -101,19 +108,72 @@ export declare class Utils implements BaseUtils {
101
108
  normalizeSuiObjectRef(obj: SuiObjectRef): SuiObjectRef;
102
109
  transactionInput(type: 'object' | 'pure', index?: number, value?: unknown): TransactionBlockInput;
103
110
  getAddressFromPublicKey(publicKey: string): string;
104
- getFeeEstimate(url: string, txHex: string): Promise<BigNumber>;
105
111
  /**
106
- * Returns the current epoch and chain identifier of the Sui network by making RPC calls to the provided URL.
107
- * @param {string} url - The URL of the Sui network RPC endpoint.
112
+ * Test-only: swap (or reset with undefined) the factory used for url-style
113
+ * calls, mirroring the __setSuiEsmOverridesForTest seam in sui.ts.
114
+ */
115
+ __setUrlClientFactoryForTest(factory: typeof createSuiGrpcClient | undefined): void;
116
+ /**
117
+ * Estimates the fee (in MIST) for a transaction by dry-running it against the
118
+ * Sui node with full transaction checks (sui_dryRunTransactionBlock parity).
119
+ * The returned estimate is max(computation + storage - rebate, computation).
120
+ * @param {SuiGrpcClient | string} clientOrUrl - A pre-built Sui gRPC client, or the
121
+ * legacy node URL (backwards compatible; the network is inferred from the URL).
122
+ * @param {string} txHex - The serialized transaction in base64 format.
123
+ * @returns {Promise<BigNumber>} - The estimated fee, floored at the computation cost.
124
+ * @throws when the simulation response carries no gas summary or any gas field,
125
+ * or when the simulated transaction fails execution.
126
+ */
127
+ getFeeEstimate(clientOrUrl: SuiGrpcClientOrUrl, txHex: string): Promise<BigNumber>;
128
+ /**
129
+ * Returns the current epoch and chain identifier of the Sui network via the gRPC ledger service.
130
+ * The chain identifier is the digest of the genesis checkpoint (sequence number 0), matching
131
+ * what the legacy sui_getCheckpoint('0') JSON-RPC call returned.
132
+ * @param {SuiGrpcClient | string} clientOrUrl - A pre-built Sui gRPC client, or the
133
+ * legacy node URL (backwards compatible; the network is inferred from the URL).
108
134
  * @returns {Promise<{ epoch: number; chainId: string }>} - The current epoch and chain identifier.
109
135
  */
110
- getChainContext(url: string): Promise<{
136
+ getChainContext(clientOrUrl: SuiGrpcClientOrUrl): Promise<{
111
137
  epoch: number;
112
138
  chainId: string;
113
139
  }>;
114
- getBalance(url: string, owner: string, coinType?: string): Promise<SuiBalanceInfo>;
115
- getInputCoins(url: string, owner: string, coinType?: string): Promise<SuiObjectInfo[]>;
116
- executeTransactionBlock(url: string, serializedTx: string, signatures: string[]): Promise<string>;
140
+ /**
141
+ * Returns balance information for an address via the gRPC balance service.
142
+ * totalBalance = Coin<T> object balance + SIP-58 address-system balance
143
+ * (fundsInAddressBalance is exposed separately for transaction building and
144
+ * must not be added to totalBalance again).
145
+ * @param {SuiGrpcClient | string} clientOrUrl - A pre-built Sui gRPC client, or the
146
+ * legacy node URL (backwards compatible; the network is inferred from the URL).
147
+ * @param {string} owner - The address to query.
148
+ * @param {string} [coinType] - The coin type; defaults to 0x2::sui::SUI.
149
+ * @returns {Promise<SuiBalanceInfo>} - {totalBalance, coinObjectBalance, fundsInAddressBalance}.
150
+ * @throws when the gRPC response carries no balance object.
151
+ */
152
+ getBalance(clientOrUrl: SuiGrpcClientOrUrl, owner: string, coinType?: string): Promise<SuiBalanceInfo>;
153
+ /**
154
+ * Returns all unfiltered spendable coins of an address (legacy suix_getCoins
155
+ * semantics) via the gRPC list service: bare coin type, numeric version,
156
+ * objectId and balance per entry.
157
+ * @param {SuiGrpcClient | string} clientOrUrl - A pre-built Sui gRPC client, or the
158
+ * legacy node URL (backwards compatible; the network is inferred from the URL).
159
+ * @param {string} owner - The address to query.
160
+ * @param {string} [coinType] - The coin type; defaults to 0x2::sui::SUI.
161
+ * @returns {Promise<SuiObjectInfo[]>} - One entry per owned coin object.
162
+ * @throws {RecoveryProviderError} when the node call fails.
163
+ */
164
+ getInputCoins(clientOrUrl: SuiGrpcClientOrUrl, owner: string, coinType?: string): Promise<SuiObjectInfo[]>;
165
+ /**
166
+ * Broadcasts a signed transaction to the Sui node over gRPC and returns the
167
+ * transaction digest. Signatures are base64 strings (the gRPC layer decodes
168
+ * them into BCS).
169
+ * @param {SuiGrpcClient | string} clientOrUrl - A pre-built Sui gRPC client, or the
170
+ * legacy node URL (backwards compatible; the network is inferred from the URL).
171
+ * @param {string} serializedTx - The serialized transaction in base64 format.
172
+ * @param {string[]} signatures - Base64-encoded signatures for the transaction.
173
+ * @returns {Promise<string>} - The transaction digest.
174
+ * @throws when the node response carries no digest or the broadcast fails.
175
+ */
176
+ executeTransactionBlock(clientOrUrl: SuiGrpcClientOrUrl, serializedTx: string, signatures: string[]): Promise<string>;
117
177
  validateNonNegativeNumber(defaultVal: number, errorMsg: string, inputVal?: number): number;
118
178
  getSuiTokenFromAddress(packageId: string, network: BaseNetwork): Readonly<import("@bitgo-beta/statics").BaseCoin> | undefined;
119
179
  selectObjectsInDescOrderOfBalance(objs: SuiObjectInfo[], limit: BigNumber): SuiObjectInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKT,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAEL,eAAe,EACf,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,oCAAoC,EACpC,0CAA0C,EAC1C,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAKL,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,aAAa,EAEb,qBAAqB,EACrB,eAAe,IAAI,sBAAsB,EAC1C,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,WAAW,EAAkB,MAAM,qBAAqB,CAAC;AAElE,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI;IAAE,UAAU,EAAE,YAAY,CAAA;CAAE,CAEjG;AAED,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAWtD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzD,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKvC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAS1C;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAW/C;;;;;QAKI;IACJ,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,eAAe;IAkB3E;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,kBAAkB;IA6C1E,aAAa,CAAC,EAAE,EAAE,cAAc,CAAC,0BAA0B,CAAC,GAAG,SAAS,EAAE;IAuG1E;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,8BAA8B,GAAG,eAAe,EAAE;IA0BvE,8BAA8B,CAAC,EAAE,EAAE,oCAAoC,GAAG,0BAA0B,EAAE;IA0BtG,8BAA8B,CAAC,EAAE,EAAE,0CAA0C,GAAG,OAAO;IAMvF,8BAA8B,CAAC,EAAE,EAAE,0CAA0C,GAAG,0BAA0B;IAyC1G,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM;IAM9D,UAAU,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM;IAgBhD,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE;IAM5C,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAQtD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,KAAK,SAAI,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAS5F,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAc5C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBpE;;;;OAIG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQzE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBlF,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmCtF,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAavG,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAgB1F,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAiB9D,iCAAiC,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa,EAAE;CAY5F;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAC1B,eAAe,KAAK,CAAC;AAErB,oBAAY,KAAK;IACf,GAAG,IAAI;CACR;AAED,oBAAY,aAAa;IACvB,EAAE,IAAI;CACP;AAED,oBAAY,WAAW;IACrB,eAAe,IAAI;IACnB,kBAAkB,IAAI;IACtB,iBAAiB,IAAI;IACrB,eAAe,IAAI;CACpB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}