@drift-labs/sdk 2.136.0-beta.0 → 2.136.0-beta.2
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/VERSION +1 -1
- package/lib/browser/accounts/types.d.ts +2 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +76 -3
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +211 -39
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +87 -0
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.js +444 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +145 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +744 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +54 -0
- package/lib/browser/driftClient.js +22 -18
- package/lib/browser/driftClientConfig.d.ts +7 -2
- package/lib/browser/factory/bigNum.d.ts +2 -2
- package/lib/browser/factory/bigNum.js +20 -5
- package/lib/browser/index.d.ts +4 -0
- package/lib/browser/index.js +9 -1
- package/lib/browser/memcmp.d.ts +2 -0
- package/lib/browser/memcmp.js +19 -1
- package/lib/browser/oracles/oracleId.d.ts +5 -0
- package/lib/browser/oracles/oracleId.js +46 -1
- package/lib/browser/user.js +12 -5
- package/lib/browser/userConfig.d.ts +3 -0
- package/lib/node/accounts/types.d.ts +2 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +76 -3
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +211 -39
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +88 -0
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts.map +1 -0
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.js +444 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +146 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +744 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +23 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +54 -0
- package/lib/node/driftClient.d.ts.map +1 -1
- package/lib/node/driftClient.js +22 -18
- package/lib/node/driftClientConfig.d.ts +7 -2
- package/lib/node/driftClientConfig.d.ts.map +1 -1
- package/lib/node/factory/bigNum.d.ts +2 -2
- package/lib/node/factory/bigNum.d.ts.map +1 -1
- package/lib/node/factory/bigNum.js +20 -5
- package/lib/node/index.d.ts +4 -0
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +9 -1
- package/lib/node/memcmp.d.ts +2 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +19 -1
- package/lib/node/oracles/oracleId.d.ts +5 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +46 -1
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +12 -5
- package/lib/node/userConfig.d.ts +3 -0
- package/lib/node/userConfig.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/accounts/README_WebSocketAccountSubscriberV2.md +41 -0
- package/src/accounts/types.ts +3 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +243 -42
- package/src/accounts/webSocketDriftClientAccountSubscriberV2.ts +745 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +995 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +94 -0
- package/src/driftClient.ts +13 -7
- package/src/driftClientConfig.ts +15 -8
- package/src/factory/bigNum.ts +22 -5
- package/src/index.ts +4 -0
- package/src/memcmp.ts +17 -0
- package/src/oracles/oracleId.ts +34 -0
- package/src/user.ts +21 -9
- package/src/userConfig.ts +3 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +0 -53
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +0 -453
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +0 -54
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +0 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +0 -453
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +0 -596
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
|
|
3
|
+
import { Program } from '@coral-xyz/anchor';
|
|
4
|
+
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import { PublicKey } from '@solana/web3.js';
|
|
7
|
+
import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
|
|
8
|
+
import { UserAccount } from '../types';
|
|
9
|
+
export declare class WebSocketProgramUserAccountSubscriber implements UserAccountSubscriber {
|
|
10
|
+
isSubscribed: boolean;
|
|
11
|
+
eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
|
|
12
|
+
private userAccountPublicKey;
|
|
13
|
+
private program;
|
|
14
|
+
private programSubscriber;
|
|
15
|
+
private userAccountAndSlot?;
|
|
16
|
+
constructor(program: Program, userAccountPublicKey: PublicKey, programSubscriber: WebSocketProgramAccountSubscriber<UserAccount>);
|
|
17
|
+
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
18
|
+
fetch(): Promise<void>;
|
|
19
|
+
updateData(userAccount: UserAccount, slot: number): void;
|
|
20
|
+
unsubscribe(): Promise<void>;
|
|
21
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketProgramUserAccountSubscriber = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const events_1 = require("events");
|
|
6
|
+
class WebSocketProgramUserAccountSubscriber {
|
|
7
|
+
constructor(program, userAccountPublicKey, programSubscriber) {
|
|
8
|
+
this.isSubscribed = false;
|
|
9
|
+
this.program = program;
|
|
10
|
+
this.userAccountPublicKey = userAccountPublicKey;
|
|
11
|
+
this.eventEmitter = new events_1.EventEmitter();
|
|
12
|
+
this.programSubscriber = programSubscriber;
|
|
13
|
+
}
|
|
14
|
+
async subscribe(userAccount) {
|
|
15
|
+
if (this.isSubscribed) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
if (userAccount) {
|
|
19
|
+
this.updateData(userAccount, 0);
|
|
20
|
+
}
|
|
21
|
+
this.programSubscriber.onChange = (accountId, data, context) => {
|
|
22
|
+
if (accountId.equals(this.userAccountPublicKey)) {
|
|
23
|
+
this.updateData(data, context.slot);
|
|
24
|
+
this.eventEmitter.emit('userAccountUpdate', data);
|
|
25
|
+
this.eventEmitter.emit('update');
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
this.isSubscribed = true;
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
async fetch() {
|
|
32
|
+
if (!this.isSubscribed) {
|
|
33
|
+
throw new types_1.NotSubscribedError('Must subscribe before fetching account updates');
|
|
34
|
+
}
|
|
35
|
+
const account = await this.program.account.user.fetch(this.userAccountPublicKey);
|
|
36
|
+
this.updateData(account, 0);
|
|
37
|
+
}
|
|
38
|
+
updateData(userAccount, slot) {
|
|
39
|
+
this.userAccountAndSlot = {
|
|
40
|
+
data: userAccount,
|
|
41
|
+
slot,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async unsubscribe() {
|
|
45
|
+
this.isSubscribed = false;
|
|
46
|
+
}
|
|
47
|
+
getUserAccountAndSlot() {
|
|
48
|
+
if (!this.userAccountAndSlot) {
|
|
49
|
+
throw new types_1.NotSubscribedError('Must subscribe before getting user account data');
|
|
50
|
+
}
|
|
51
|
+
return this.userAccountAndSlot;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.WebSocketProgramUserAccountSubscriber = WebSocketProgramUserAccountSubscriber;
|
|
@@ -42,7 +42,6 @@ const position_1 = require("./math/position");
|
|
|
42
42
|
const spotBalance_1 = require("./math/spotBalance");
|
|
43
43
|
const userName_1 = require("./userName");
|
|
44
44
|
const pollingDriftClientAccountSubscriber_1 = require("./accounts/pollingDriftClientAccountSubscriber");
|
|
45
|
-
const webSocketDriftClientAccountSubscriber_1 = require("./accounts/webSocketDriftClientAccountSubscriber");
|
|
46
45
|
const retryTxSender_1 = require("./tx/retryTxSender");
|
|
47
46
|
const user_1 = require("./user");
|
|
48
47
|
const config_1 = require("./config");
|
|
@@ -72,6 +71,7 @@ const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
|
72
71
|
const oracleId_1 = require("./oracles/oracleId");
|
|
73
72
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
74
73
|
const utils_3 = require("./oracles/utils");
|
|
74
|
+
const webSocketDriftClientAccountSubscriber_1 = require("./accounts/webSocketDriftClientAccountSubscriber");
|
|
75
75
|
/**
|
|
76
76
|
* # DriftClient
|
|
77
77
|
* This class is the main way to interact with Drift Protocol. It allows you to subscribe to the various accounts where the Market's state is stored, as well as: opening positions, liquidating, settling funding, depositing & withdrawing, and more.
|
|
@@ -84,7 +84,7 @@ class DriftClient {
|
|
|
84
84
|
this._isSubscribed = val;
|
|
85
85
|
}
|
|
86
86
|
constructor(config) {
|
|
87
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22;
|
|
87
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23;
|
|
88
88
|
this.users = new Map();
|
|
89
89
|
this._isSubscribed = false;
|
|
90
90
|
this.perpMarketLastSlotCache = new Map();
|
|
@@ -174,12 +174,13 @@ class DriftClient {
|
|
|
174
174
|
resubTimeoutMs: (_y = config.accountSubscription) === null || _y === void 0 ? void 0 : _y.resubTimeoutMs,
|
|
175
175
|
logResubMessages: (_z = config.accountSubscription) === null || _z === void 0 ? void 0 : _z.logResubMessages,
|
|
176
176
|
commitment: (_0 = config.accountSubscription) === null || _0 === void 0 ? void 0 : _0.commitment,
|
|
177
|
+
programUserAccountSubscriber: (_1 = config.accountSubscription) === null || _1 === void 0 ? void 0 : _1.programUserAccountSubscriber,
|
|
177
178
|
};
|
|
178
179
|
this.userStatsAccountSubscriptionConfig = {
|
|
179
180
|
type: 'websocket',
|
|
180
|
-
resubTimeoutMs: (
|
|
181
|
-
logResubMessages: (
|
|
182
|
-
commitment: (
|
|
181
|
+
resubTimeoutMs: (_2 = config.accountSubscription) === null || _2 === void 0 ? void 0 : _2.resubTimeoutMs,
|
|
182
|
+
logResubMessages: (_3 = config.accountSubscription) === null || _3 === void 0 ? void 0 : _3.logResubMessages,
|
|
183
|
+
commitment: (_4 = config.accountSubscription) === null || _4 === void 0 ? void 0 : _4.commitment,
|
|
183
184
|
};
|
|
184
185
|
}
|
|
185
186
|
if (config.userStats) {
|
|
@@ -201,20 +202,21 @@ class DriftClient {
|
|
|
201
202
|
const noMarketsAndOraclesSpecified = config.perpMarketIndexes === undefined &&
|
|
202
203
|
config.spotMarketIndexes === undefined &&
|
|
203
204
|
config.oracleInfos === undefined;
|
|
204
|
-
if (((
|
|
205
|
-
this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (
|
|
205
|
+
if (((_5 = config.accountSubscription) === null || _5 === void 0 ? void 0 : _5.type) === 'polling') {
|
|
206
|
+
this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (_6 = config.perpMarketIndexes) !== null && _6 !== void 0 ? _6 : [], (_7 = config.spotMarketIndexes) !== null && _7 !== void 0 ? _7 : [], (_8 = config.oracleInfos) !== null && _8 !== void 0 ? _8 : [], noMarketsAndOraclesSpecified, delistedMarketSetting);
|
|
206
207
|
}
|
|
207
|
-
else if (((
|
|
208
|
-
this.accountSubscriber = new grpcDriftClientAccountSubscriber_1.gprcDriftClientAccountSubscriber(config.accountSubscription.grpcConfigs, this.program, (
|
|
209
|
-
resubTimeoutMs: (
|
|
210
|
-
logResubMessages: (
|
|
208
|
+
else if (((_9 = config.accountSubscription) === null || _9 === void 0 ? void 0 : _9.type) === 'grpc') {
|
|
209
|
+
this.accountSubscriber = new grpcDriftClientAccountSubscriber_1.gprcDriftClientAccountSubscriber(config.accountSubscription.grpcConfigs, this.program, (_10 = config.perpMarketIndexes) !== null && _10 !== void 0 ? _10 : [], (_11 = config.spotMarketIndexes) !== null && _11 !== void 0 ? _11 : [], (_12 = config.oracleInfos) !== null && _12 !== void 0 ? _12 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
|
|
210
|
+
resubTimeoutMs: (_13 = config.accountSubscription) === null || _13 === void 0 ? void 0 : _13.resubTimeoutMs,
|
|
211
|
+
logResubMessages: (_14 = config.accountSubscription) === null || _14 === void 0 ? void 0 : _14.logResubMessages,
|
|
211
212
|
});
|
|
212
213
|
}
|
|
213
214
|
else {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
const accountSubscriberClass = (_16 = (_15 = config.accountSubscription) === null || _15 === void 0 ? void 0 : _15.driftClientAccountSubscriber) !== null && _16 !== void 0 ? _16 : webSocketDriftClientAccountSubscriber_1.WebSocketDriftClientAccountSubscriber;
|
|
216
|
+
this.accountSubscriber = new accountSubscriberClass(this.program, (_17 = config.perpMarketIndexes) !== null && _17 !== void 0 ? _17 : [], (_18 = config.spotMarketIndexes) !== null && _18 !== void 0 ? _18 : [], (_19 = config.oracleInfos) !== null && _19 !== void 0 ? _19 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
|
|
217
|
+
resubTimeoutMs: (_20 = config.accountSubscription) === null || _20 === void 0 ? void 0 : _20.resubTimeoutMs,
|
|
218
|
+
logResubMessages: (_21 = config.accountSubscription) === null || _21 === void 0 ? void 0 : _21.logResubMessages,
|
|
219
|
+
}, (_22 = config.accountSubscription) === null || _22 === void 0 ? void 0 : _22.commitment);
|
|
218
220
|
}
|
|
219
221
|
this.eventEmitter = this.accountSubscriber.eventEmitter;
|
|
220
222
|
this.metricsEventEmitter = new events_1.EventEmitter();
|
|
@@ -222,7 +224,7 @@ class DriftClient {
|
|
|
222
224
|
this.enableMetricsEvents = true;
|
|
223
225
|
}
|
|
224
226
|
this.txSender =
|
|
225
|
-
(
|
|
227
|
+
(_23 = config.txSender) !== null && _23 !== void 0 ? _23 : new retryTxSender_1.RetryTxSender({
|
|
226
228
|
connection: this.connection,
|
|
227
229
|
wallet: this.wallet,
|
|
228
230
|
opts: this.opts,
|
|
@@ -326,15 +328,17 @@ class DriftClient {
|
|
|
326
328
|
.map((value) => value.data);
|
|
327
329
|
}
|
|
328
330
|
getSpotMarketAccount(marketIndex) {
|
|
329
|
-
|
|
331
|
+
var _a;
|
|
332
|
+
return (_a = this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex)) === null || _a === void 0 ? void 0 : _a.data;
|
|
330
333
|
}
|
|
331
334
|
/**
|
|
332
335
|
* Forces a fetch to rpc before returning accounts. Useful for anchor tests.
|
|
333
336
|
* @param marketIndex
|
|
334
337
|
*/
|
|
335
338
|
async forceGetSpotMarketAccount(marketIndex) {
|
|
339
|
+
var _a;
|
|
336
340
|
await this.accountSubscriber.fetch();
|
|
337
|
-
return this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex).data;
|
|
341
|
+
return (_a = this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex)) === null || _a === void 0 ? void 0 : _a.data;
|
|
338
342
|
}
|
|
339
343
|
getSpotMarketAccounts() {
|
|
340
344
|
return this.accountSubscriber
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { Commitment, ConfirmOptions, Connection, PublicKey, TransactionVersion } from '@solana/web3.js';
|
|
4
|
-
import { IWallet, TxParams } from './types';
|
|
4
|
+
import { IWallet, TxParams, UserAccount } from './types';
|
|
5
5
|
import { OracleInfo } from './oracles/types';
|
|
6
6
|
import { BulkAccountLoader } from './accounts/bulkAccountLoader';
|
|
7
7
|
import { DriftEnv } from './config';
|
|
@@ -11,6 +11,9 @@ import { GrpcConfigs, ResubOpts, DelistedMarketSetting } from './accounts/types'
|
|
|
11
11
|
import { Coder, Program } from '@coral-xyz/anchor';
|
|
12
12
|
import { WebSocketAccountSubscriber } from './accounts/webSocketAccountSubscriber';
|
|
13
13
|
import { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
|
|
14
|
+
import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
|
|
15
|
+
import { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
|
|
16
|
+
import { WebSocketDriftClientAccountSubscriber } from './accounts/webSocketDriftClientAccountSubscriber';
|
|
14
17
|
export type DriftClientConfig = {
|
|
15
18
|
connection: Connection;
|
|
16
19
|
wallet: IWallet;
|
|
@@ -51,8 +54,10 @@ export type DriftClientSubscriptionConfig = {
|
|
|
51
54
|
resubTimeoutMs?: number;
|
|
52
55
|
logResubMessages?: boolean;
|
|
53
56
|
commitment?: Commitment;
|
|
57
|
+
programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
|
|
54
58
|
perpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
|
|
55
|
-
|
|
59
|
+
/** If you use V2 here, whatever you pass for perpMarketAccountSubscriber and oracleAccountSubscriber will be ignored and it will use v2 under the hood regardless */
|
|
60
|
+
driftClientAccountSubscriber?: new (program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting) => WebSocketDriftClientAccountSubscriber | WebSocketDriftClientAccountSubscriberV2;
|
|
56
61
|
} | {
|
|
57
62
|
type: 'polling';
|
|
58
63
|
accountLoader: BulkAccountLoader;
|
|
@@ -57,7 +57,7 @@ export declare class BigNum {
|
|
|
57
57
|
* @returns
|
|
58
58
|
*/
|
|
59
59
|
print(): string;
|
|
60
|
-
prettyPrint(useTradePrecision?: boolean, precisionOverride?: number): string;
|
|
60
|
+
prettyPrint(useTradePrecision?: boolean, precisionOverride?: number, decimalOverride?: number): string;
|
|
61
61
|
/**
|
|
62
62
|
* Print and remove unnecessary trailing zeroes
|
|
63
63
|
* @returns
|
|
@@ -85,7 +85,7 @@ export declare class BigNum {
|
|
|
85
85
|
* @param precisionOverride
|
|
86
86
|
* @returns
|
|
87
87
|
*/
|
|
88
|
-
toNotional(useTradePrecision?: boolean, precisionOverride?: number): string;
|
|
88
|
+
toNotional(useTradePrecision?: boolean, precisionOverride?: number, decimalOverride?: number): string;
|
|
89
89
|
toMillified(precision?: number, rounded?: boolean, type?: 'financial' | 'scientific'): string;
|
|
90
90
|
toJSON(): {
|
|
91
91
|
val: string;
|
|
@@ -167,9 +167,24 @@ class BigNum {
|
|
|
167
167
|
printString = printString.slice(0, printString.length - 1);
|
|
168
168
|
return printString;
|
|
169
169
|
}
|
|
170
|
-
prettyPrint(useTradePrecision, precisionOverride) {
|
|
170
|
+
prettyPrint(useTradePrecision, precisionOverride, decimalOverride) {
|
|
171
171
|
const [leftSide, rightSide] = this.printShort(useTradePrecision, precisionOverride).split(BigNum.delim);
|
|
172
172
|
let formattedLeftSide = leftSide;
|
|
173
|
+
let formattedRightSide = rightSide;
|
|
174
|
+
// Apply decimal override if specified
|
|
175
|
+
if (decimalOverride !== undefined) {
|
|
176
|
+
if (decimalOverride === 0) {
|
|
177
|
+
formattedRightSide = undefined;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// If no decimal part exists, create one with zeros
|
|
181
|
+
const currentRightSide = rightSide || '';
|
|
182
|
+
// Pad with zeros if needed or truncate if too long
|
|
183
|
+
formattedRightSide = currentRightSide
|
|
184
|
+
.padEnd(decimalOverride, '0')
|
|
185
|
+
.substring(0, decimalOverride);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
173
188
|
const isNeg = formattedLeftSide.includes('-');
|
|
174
189
|
if (isNeg) {
|
|
175
190
|
formattedLeftSide = formattedLeftSide.replace('-', '');
|
|
@@ -181,7 +196,7 @@ class BigNum {
|
|
|
181
196
|
formattedLeftSide = formattedLeftSideArray.join('');
|
|
182
197
|
index -= 3;
|
|
183
198
|
}
|
|
184
|
-
return `${isNeg ? '-' : ''}${formattedLeftSide}${
|
|
199
|
+
return `${isNeg ? '-' : ''}${formattedLeftSide}${formattedRightSide ? `${BigNum.delim}${formattedRightSide}` : ''}`;
|
|
185
200
|
}
|
|
186
201
|
/**
|
|
187
202
|
* Print and remove unnecessary trailing zeroes
|
|
@@ -338,12 +353,12 @@ class BigNum {
|
|
|
338
353
|
* @param precisionOverride
|
|
339
354
|
* @returns
|
|
340
355
|
*/
|
|
341
|
-
toNotional(useTradePrecision, precisionOverride) {
|
|
356
|
+
toNotional(useTradePrecision, precisionOverride, decimalOverride) {
|
|
342
357
|
var _a;
|
|
343
358
|
const prefix = `${this.lt(BigNum.zero()) ? `-` : ``}$`;
|
|
344
|
-
const usingCustomPrecision = true && (useTradePrecision || precisionOverride);
|
|
359
|
+
const usingCustomPrecision = true && (useTradePrecision || precisionOverride || decimalOverride);
|
|
345
360
|
let val = usingCustomPrecision
|
|
346
|
-
? this.prettyPrint(useTradePrecision, precisionOverride)
|
|
361
|
+
? this.prettyPrint(useTradePrecision, precisionOverride, decimalOverride)
|
|
347
362
|
: BigNum.fromPrint(this.toFixed(2), new anchor_1.BN(2)).prettyPrint();
|
|
348
363
|
// Append trailing zeroes out to 2 decimal places if not using custom precision
|
|
349
364
|
if (!usingCustomPrecision) {
|
package/lib/browser/index.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export * from './accounts/webSocketDriftClientAccountSubscriber';
|
|
|
11
11
|
export * from './accounts/webSocketInsuranceFundStakeAccountSubscriber';
|
|
12
12
|
export * from './accounts/webSocketHighLeverageModeConfigAccountSubscriber';
|
|
13
13
|
export { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
|
|
14
|
+
export { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
|
|
15
|
+
export { WebSocketProgramUserAccountSubscriber } from './accounts/websocketProgramUserAccountSubscriber';
|
|
16
|
+
export { WebSocketProgramAccountsSubscriberV2 } from './accounts/webSocketProgramAccountsSubscriberV2';
|
|
17
|
+
export { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
|
|
14
18
|
export * from './accounts/bulkAccountLoader';
|
|
15
19
|
export * from './accounts/bulkUserSubscription';
|
|
16
20
|
export * from './accounts/bulkUserStatsSubscription';
|
package/lib/browser/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.pyth = exports.PublicKey = exports.BN = exports.CustomizedCadenceBulkAccountLoader = exports.WebSocketAccountSubscriberV2 = void 0;
|
|
20
|
+
exports.pyth = exports.PublicKey = exports.BN = exports.CustomizedCadenceBulkAccountLoader = exports.WebSocketDriftClientAccountSubscriberV2 = exports.WebSocketProgramAccountsSubscriberV2 = exports.WebSocketProgramUserAccountSubscriber = exports.WebSocketProgramAccountSubscriber = exports.WebSocketAccountSubscriberV2 = void 0;
|
|
21
21
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
22
22
|
Object.defineProperty(exports, "BN", { enumerable: true, get: function () { return anchor_1.BN; } });
|
|
23
23
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -35,6 +35,14 @@ __exportStar(require("./accounts/webSocketInsuranceFundStakeAccountSubscriber"),
|
|
|
35
35
|
__exportStar(require("./accounts/webSocketHighLeverageModeConfigAccountSubscriber"), exports);
|
|
36
36
|
var webSocketAccountSubscriberV2_1 = require("./accounts/webSocketAccountSubscriberV2");
|
|
37
37
|
Object.defineProperty(exports, "WebSocketAccountSubscriberV2", { enumerable: true, get: function () { return webSocketAccountSubscriberV2_1.WebSocketAccountSubscriberV2; } });
|
|
38
|
+
var webSocketProgramAccountSubscriber_1 = require("./accounts/webSocketProgramAccountSubscriber");
|
|
39
|
+
Object.defineProperty(exports, "WebSocketProgramAccountSubscriber", { enumerable: true, get: function () { return webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber; } });
|
|
40
|
+
var websocketProgramUserAccountSubscriber_1 = require("./accounts/websocketProgramUserAccountSubscriber");
|
|
41
|
+
Object.defineProperty(exports, "WebSocketProgramUserAccountSubscriber", { enumerable: true, get: function () { return websocketProgramUserAccountSubscriber_1.WebSocketProgramUserAccountSubscriber; } });
|
|
42
|
+
var webSocketProgramAccountsSubscriberV2_1 = require("./accounts/webSocketProgramAccountsSubscriberV2");
|
|
43
|
+
Object.defineProperty(exports, "WebSocketProgramAccountsSubscriberV2", { enumerable: true, get: function () { return webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2; } });
|
|
44
|
+
var webSocketDriftClientAccountSubscriberV2_1 = require("./accounts/webSocketDriftClientAccountSubscriberV2");
|
|
45
|
+
Object.defineProperty(exports, "WebSocketDriftClientAccountSubscriberV2", { enumerable: true, get: function () { return webSocketDriftClientAccountSubscriberV2_1.WebSocketDriftClientAccountSubscriberV2; } });
|
|
38
46
|
__exportStar(require("./accounts/bulkAccountLoader"), exports);
|
|
39
47
|
__exportStar(require("./accounts/bulkUserSubscription"), exports);
|
|
40
48
|
__exportStar(require("./accounts/bulkUserStatsSubscription"), exports);
|
package/lib/browser/memcmp.d.ts
CHANGED
|
@@ -11,3 +11,5 @@ export declare function getUserStatsFilter(): MemcmpFilter;
|
|
|
11
11
|
export declare function getUserStatsIsReferredFilter(): MemcmpFilter;
|
|
12
12
|
export declare function getUserStatsIsReferredOrReferrerFilter(): MemcmpFilter;
|
|
13
13
|
export declare function getSignedMsgUserOrdersFilter(): MemcmpFilter;
|
|
14
|
+
export declare function getPerpMarketAccountsFilter(): MemcmpFilter;
|
|
15
|
+
export declare function getSpotMarketAccountsFilter(): MemcmpFilter;
|
package/lib/browser/memcmp.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getSignedMsgUserOrdersFilter = exports.getUserStatsIsReferredOrReferrerFilter = exports.getUserStatsIsReferredFilter = exports.getUserStatsFilter = exports.getUsersWithPoolId = exports.getUserWithName = exports.getUserThatHasBeenLP = exports.getUserWithAuctionFilter = exports.getUserWithoutOrderFilter = exports.getUserWithOrderFilter = exports.getNonIdleUserFilter = exports.getUserFilter = void 0;
|
|
6
|
+
exports.getSpotMarketAccountsFilter = exports.getPerpMarketAccountsFilter = exports.getSignedMsgUserOrdersFilter = exports.getUserStatsIsReferredOrReferrerFilter = exports.getUserStatsIsReferredFilter = exports.getUserStatsFilter = exports.getUsersWithPoolId = exports.getUserWithName = exports.getUserThatHasBeenLP = exports.getUserWithAuctionFilter = exports.getUserWithoutOrderFilter = exports.getUserWithOrderFilter = exports.getNonIdleUserFilter = exports.getUserFilter = void 0;
|
|
7
7
|
const bs58_1 = __importDefault(require("bs58"));
|
|
8
8
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
9
9
|
const userName_1 = require("./userName");
|
|
@@ -115,3 +115,21 @@ function getSignedMsgUserOrdersFilter() {
|
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
exports.getSignedMsgUserOrdersFilter = getSignedMsgUserOrdersFilter;
|
|
118
|
+
function getPerpMarketAccountsFilter() {
|
|
119
|
+
return {
|
|
120
|
+
memcmp: {
|
|
121
|
+
offset: 0,
|
|
122
|
+
bytes: bs58_1.default.encode(anchor_1.BorshAccountsCoder.accountDiscriminator('PerpMarket')),
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
exports.getPerpMarketAccountsFilter = getPerpMarketAccountsFilter;
|
|
127
|
+
function getSpotMarketAccountsFilter() {
|
|
128
|
+
return {
|
|
129
|
+
memcmp: {
|
|
130
|
+
offset: 0,
|
|
131
|
+
bytes: bs58_1.default.encode(anchor_1.BorshAccountsCoder.accountDiscriminator('SpotMarket')),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
exports.getSpotMarketAccountsFilter = getSpotMarketAccountsFilter;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { OracleSource } from '../types';
|
|
3
3
|
export declare function getOracleSourceNum(source: OracleSource): number;
|
|
4
|
+
export declare function getOracleSourceFromNum(sourceNum: number): OracleSource;
|
|
4
5
|
export declare function getOracleId(publicKey: PublicKey, source: OracleSource): string;
|
|
6
|
+
export declare function getPublicKeyAndSourceFromOracleId(oracleId: string): {
|
|
7
|
+
publicKey: PublicKey;
|
|
8
|
+
source: OracleSource;
|
|
9
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOracleId = exports.getOracleSourceNum = void 0;
|
|
3
|
+
exports.getPublicKeyAndSourceFromOracleId = exports.getOracleId = exports.getOracleSourceFromNum = exports.getOracleSourceNum = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
4
5
|
const types_1 = require("../types");
|
|
5
6
|
function getOracleSourceNum(source) {
|
|
6
7
|
if ('pyth' in source)
|
|
@@ -38,7 +39,51 @@ function getOracleSourceNum(source) {
|
|
|
38
39
|
throw new Error('Invalid oracle source');
|
|
39
40
|
}
|
|
40
41
|
exports.getOracleSourceNum = getOracleSourceNum;
|
|
42
|
+
function getOracleSourceFromNum(sourceNum) {
|
|
43
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH)
|
|
44
|
+
return 'pyth';
|
|
45
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_1K)
|
|
46
|
+
return 'pyth1K';
|
|
47
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_1M)
|
|
48
|
+
return 'pyth1M';
|
|
49
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_PULL)
|
|
50
|
+
return 'pythPull';
|
|
51
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_1K_PULL)
|
|
52
|
+
return 'pyth1KPull';
|
|
53
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_1M_PULL)
|
|
54
|
+
return 'pyth1MPull';
|
|
55
|
+
if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD)
|
|
56
|
+
return 'switchboard';
|
|
57
|
+
if (sourceNum === types_1.OracleSourceNum.QUOTE_ASSET)
|
|
58
|
+
return 'quoteAsset';
|
|
59
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN)
|
|
60
|
+
return 'pythStableCoin';
|
|
61
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN_PULL)
|
|
62
|
+
return 'pythStableCoinPull';
|
|
63
|
+
if (sourceNum === types_1.OracleSourceNum.PRELAUNCH)
|
|
64
|
+
return 'prelaunch';
|
|
65
|
+
if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD_ON_DEMAND)
|
|
66
|
+
return 'switchboardOnDemand';
|
|
67
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER)
|
|
68
|
+
return 'pythLazer';
|
|
69
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1K)
|
|
70
|
+
return 'pythLazer1K';
|
|
71
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1M)
|
|
72
|
+
return 'pythLazer1M';
|
|
73
|
+
if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_STABLE_COIN)
|
|
74
|
+
return 'pythLazerStableCoin';
|
|
75
|
+
throw new Error('Invalid oracle source');
|
|
76
|
+
}
|
|
77
|
+
exports.getOracleSourceFromNum = getOracleSourceFromNum;
|
|
41
78
|
function getOracleId(publicKey, source) {
|
|
42
79
|
return `${publicKey.toBase58()}-${getOracleSourceNum(source)}`;
|
|
43
80
|
}
|
|
44
81
|
exports.getOracleId = getOracleId;
|
|
82
|
+
function getPublicKeyAndSourceFromOracleId(oracleId) {
|
|
83
|
+
const [publicKey, source] = oracleId.split('-');
|
|
84
|
+
return {
|
|
85
|
+
publicKey: new web3_js_1.PublicKey(publicKey),
|
|
86
|
+
source: getOracleSourceFromNum(parseInt(source)),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
exports.getPublicKeyAndSourceFromOracleId = getPublicKeyAndSourceFromOracleId;
|
package/lib/browser/user.js
CHANGED
|
@@ -15,6 +15,7 @@ const spotBalance_1 = require("./math/spotBalance");
|
|
|
15
15
|
const trade_1 = require("./math/trade");
|
|
16
16
|
const types_2 = require("./types");
|
|
17
17
|
const orders_1 = require("./math/orders");
|
|
18
|
+
const websocketProgramUserAccountSubscriber_1 = require("./accounts/websocketProgramUserAccountSubscriber");
|
|
18
19
|
const spotBalance_2 = require("./math/spotBalance");
|
|
19
20
|
const amm_1 = require("./math/amm");
|
|
20
21
|
const margin_2 = require("./math/margin");
|
|
@@ -34,7 +35,7 @@ class User {
|
|
|
34
35
|
this._isSubscribed = val;
|
|
35
36
|
}
|
|
36
37
|
constructor(config) {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
38
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
38
39
|
this._isSubscribed = false;
|
|
39
40
|
this.driftClient = config.driftClient;
|
|
40
41
|
this.userAccountPublicKey = config.userAccountPublicKey;
|
|
@@ -51,10 +52,16 @@ class User {
|
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
55
|
+
if (((_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.type) === 'websocket' &&
|
|
56
|
+
((_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.programUserAccountSubscriber)) {
|
|
57
|
+
this.accountSubscriber = new websocketProgramUserAccountSubscriber_1.WebSocketProgramUserAccountSubscriber(config.driftClient.program, config.userAccountPublicKey, config.accountSubscription.programUserAccountSubscriber);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.accountSubscriber = new webSocketUserAccountSubscriber_1.WebSocketUserAccountSubscriber(config.driftClient.program, config.userAccountPublicKey, {
|
|
61
|
+
resubTimeoutMs: (_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.resubTimeoutMs,
|
|
62
|
+
logResubMessages: (_j = config.accountSubscription) === null || _j === void 0 ? void 0 : _j.logResubMessages,
|
|
63
|
+
}, (_k = config.accountSubscription) === null || _k === void 0 ? void 0 : _k.commitment);
|
|
64
|
+
}
|
|
58
65
|
}
|
|
59
66
|
this.eventEmitter = this.accountSubscriber.eventEmitter;
|
|
60
67
|
}
|
|
@@ -2,6 +2,8 @@ import { DriftClient } from './driftClient';
|
|
|
2
2
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { BulkAccountLoader } from './accounts/bulkAccountLoader';
|
|
4
4
|
import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
|
|
5
|
+
import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
|
|
6
|
+
import { UserAccount } from './types';
|
|
5
7
|
export type UserConfig = {
|
|
6
8
|
accountSubscription?: UserSubscriptionConfig;
|
|
7
9
|
driftClient: DriftClient;
|
|
@@ -17,6 +19,7 @@ export type UserSubscriptionConfig = {
|
|
|
17
19
|
resubTimeoutMs?: number;
|
|
18
20
|
logResubMessages?: boolean;
|
|
19
21
|
commitment?: Commitment;
|
|
22
|
+
programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
|
|
20
23
|
} | {
|
|
21
24
|
type: 'polling';
|
|
22
25
|
accountLoader: BulkAccountLoader;
|
|
@@ -139,6 +139,8 @@ export type DataAndSlot<T> = {
|
|
|
139
139
|
export type ResubOpts = {
|
|
140
140
|
resubTimeoutMs?: number;
|
|
141
141
|
logResubMessages?: boolean;
|
|
142
|
+
usePollingInsteadOfResub?: boolean;
|
|
143
|
+
pollingIntervalMs?: number;
|
|
142
144
|
};
|
|
143
145
|
export interface UserStatsAccountEvents {
|
|
144
146
|
userStatsAccountUpdate: (payload: UserStatsAccount) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":";;;AAAA,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC;IAC1C,SAAS,CACR,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,GACP,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,IAAI,SAAwB;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACxC,kBAAkB,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,uBAAuB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,uBAAuB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,iBAAiB,EAAE,CAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,eAAe,KACjB,IAAI,CAAC;IACV,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC5C,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC,sBAAsB,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,uBAAuB,CACtB,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,yBAAyB,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAC9D,2BAA2B,CAC1B,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,6BAA6B,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAClE,yBAAyB,CACxB,QAAQ,EAAE,MAAM,GACd,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAC5C,sCAAsC,CACrC,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAC5C,sCAAsC,CACrC,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAE5C,mCAAmC,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,oBAAY,qBAAqB;IAChC,WAAW,IAAA;IACX,SAAS,IAAA;IACT,OAAO,IAAA;CACP;AAED,MAAM,WAAW,iBAAiB;IACjC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,qBAAqB,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IAClC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACtC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACnE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,sBAAsB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,mCAAmC;IACnD,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,+BAA+B,CAC/B,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,mCAAmC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,+BAA+B;IAC/C,+BAA+B,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvE,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC5B,YAAY,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC7D,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,kBAAkB,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACtC,sBAAsB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5D,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IAC1C,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,0BAA0B,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,uCAAuC;IACvD,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,mCAAmC,CACnC,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CACR,6BAA6B,CAAC,EAAE,sBAAsB,GACpD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,uCAAuC,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,mCAAmC;IACnD,mCAAmC,EAAE,CACpC,OAAO,EAAE,sBAAsB,KAC3B,IAAI,CAAC;IACV,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":";;;AAAA,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC;IAC1C,SAAS,CACR,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,GACP,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,IAAI,SAAwB;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACxC,kBAAkB,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,uBAAuB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,uBAAuB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,iBAAiB,EAAE,CAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,eAAe,KACjB,IAAI,CAAC;IACV,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC5C,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC,sBAAsB,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,uBAAuB,CACtB,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,yBAAyB,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAC9D,2BAA2B,CAC1B,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,6BAA6B,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAClE,yBAAyB,CACxB,QAAQ,EAAE,MAAM,GACd,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAC5C,sCAAsC,CACrC,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAC5C,sCAAsC,CACrC,WAAW,EAAE,MAAM,GACjB,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAE5C,mCAAmC,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;AAED,oBAAY,qBAAqB;IAChC,WAAW,IAAA;IACX,SAAS,IAAA;IACT,OAAO,IAAA;CACP;AAED,MAAM,WAAW,iBAAiB;IACjC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACrC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,qBAAqB,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IAClC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACtC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACnE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,sBAAsB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,mCAAmC;IACnD,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,+BAA+B,CAC/B,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,mCAAmC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,+BAA+B;IAC/C,+BAA+B,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvE,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC5B,YAAY,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC7D,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,kBAAkB,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACtC,sBAAsB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5D,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IAC1C,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,0BAA0B,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,uCAAuC;IACvD,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,mCAAmC,CACnC,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;IAEtB,SAAS,CACR,6BAA6B,CAAC,EAAE,sBAAsB,GACpD,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,uCAAuC,IAAI,WAAW,CAAC,sBAAsB,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,mCAAmC;IACnD,mCAAmC,EAAE,CACpC,OAAO,EAAE,sBAAsB,KAC3B,IAAI,CAAC;IACV,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1B"}
|