@metamask-previews/assets-controllers 11.0.1-preview.d32a7cc
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/CHANGELOG.md +235 -0
- package/LICENSE +20 -0
- package/README.md +30 -0
- package/dist/AccountTrackerController.d.ts +106 -0
- package/dist/AccountTrackerController.d.ts.map +1 -0
- package/dist/AccountTrackerController.js +163 -0
- package/dist/AccountTrackerController.js.map +1 -0
- package/dist/AssetsContractController.d.ts +188 -0
- package/dist/AssetsContractController.d.ts.map +1 -0
- package/dist/AssetsContractController.js +330 -0
- package/dist/AssetsContractController.js.map +1 -0
- package/dist/CurrencyRateController.d.ts +101 -0
- package/dist/CurrencyRateController.d.ts.map +1 -0
- package/dist/CurrencyRateController.js +219 -0
- package/dist/CurrencyRateController.js.map +1 -0
- package/dist/NftController.d.ts +464 -0
- package/dist/NftController.d.ts.map +1 -0
- package/dist/NftController.js +924 -0
- package/dist/NftController.js.map +1 -0
- package/dist/NftDetectionController.d.ts +182 -0
- package/dist/NftDetectionController.d.ts.map +1 -0
- package/dist/NftDetectionController.js +188 -0
- package/dist/NftDetectionController.js.map +1 -0
- package/dist/Standards/ERC20Standard.d.ts +50 -0
- package/dist/Standards/ERC20Standard.d.ts.map +1 -0
- package/dist/Standards/ERC20Standard.js +144 -0
- package/dist/Standards/ERC20Standard.js.map +1 -0
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts +79 -0
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts.map +1 -0
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js +148 -0
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js.map +1 -0
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.ts +89 -0
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.ts.map +1 -0
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js +182 -0
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js.map +1 -0
- package/dist/Standards/standards-types.d.ts +15 -0
- package/dist/Standards/standards-types.d.ts.map +1 -0
- package/dist/Standards/standards-types.js +3 -0
- package/dist/Standards/standards-types.js.map +1 -0
- package/dist/TokenBalancesController.d.ts +71 -0
- package/dist/TokenBalancesController.d.ts.map +1 -0
- package/dist/TokenBalancesController.js +94 -0
- package/dist/TokenBalancesController.js.map +1 -0
- package/dist/TokenDetectionController.d.ts +87 -0
- package/dist/TokenDetectionController.d.ts.map +1 -0
- package/dist/TokenDetectionController.js +189 -0
- package/dist/TokenDetectionController.js.map +1 -0
- package/dist/TokenListController.d.ts +117 -0
- package/dist/TokenListController.d.ts.map +1 -0
- package/dist/TokenListController.js +248 -0
- package/dist/TokenListController.js.map +1 -0
- package/dist/TokenRatesController.d.ts +172 -0
- package/dist/TokenRatesController.d.ts.map +1 -0
- package/dist/TokenRatesController.js +327 -0
- package/dist/TokenRatesController.js.map +1 -0
- package/dist/TokensController.d.ts +250 -0
- package/dist/TokensController.d.ts.map +1 -0
- package/dist/TokensController.js +550 -0
- package/dist/TokensController.js.map +1 -0
- package/dist/assetsUtil.d.ts +109 -0
- package/dist/assetsUtil.d.ts.map +1 -0
- package/dist/assetsUtil.js +227 -0
- package/dist/assetsUtil.js.map +1 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -0
- package/dist/crypto-compare.d.ts +13 -0
- package/dist/crypto-compare.d.ts.map +1 -0
- package/dist/crypto-compare.js +67 -0
- package/dist/crypto-compare.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/token-service.d.ts +31 -0
- package/dist/token-service.d.ts.map +1 -0
- package/dist/token-service.js +134 -0
- package/dist/token-service.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Contract } from '@ethersproject/contracts';
|
|
3
|
+
import type { AddApprovalRequest } from '@metamask/approval-controller';
|
|
4
|
+
import type { BaseConfig, BaseState, RestrictedControllerMessenger } from '@metamask/base-controller';
|
|
5
|
+
import { BaseController } from '@metamask/base-controller';
|
|
6
|
+
import type { NetworkState } from '@metamask/network-controller';
|
|
7
|
+
import type { PreferencesState } from '@metamask/preferences-controller';
|
|
8
|
+
import type { Hex } from '@metamask/utils';
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import type { AssetsContractController } from './AssetsContractController';
|
|
11
|
+
import type { TokenListState } from './TokenListController';
|
|
12
|
+
import type { Token } from './TokenRatesController';
|
|
13
|
+
/**
|
|
14
|
+
* @type TokensConfig
|
|
15
|
+
*
|
|
16
|
+
* Tokens controller configuration
|
|
17
|
+
* @property selectedAddress - Vault selected address
|
|
18
|
+
*/
|
|
19
|
+
export interface TokensConfig extends BaseConfig {
|
|
20
|
+
selectedAddress: string;
|
|
21
|
+
chainId: Hex;
|
|
22
|
+
provider: any;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @type SuggestedAssetMeta
|
|
26
|
+
*
|
|
27
|
+
* Suggested asset by EIP747 meta data
|
|
28
|
+
* @property id - Generated UUID associated with this suggested asset
|
|
29
|
+
* @property time - Timestamp associated with this this suggested asset
|
|
30
|
+
* @property type - Type type this suggested asset
|
|
31
|
+
* @property asset - Asset suggested object
|
|
32
|
+
* @property interactingAddress - Account address that requested watch asset
|
|
33
|
+
*/
|
|
34
|
+
declare type SuggestedAssetMeta = {
|
|
35
|
+
id: string;
|
|
36
|
+
time: number;
|
|
37
|
+
type: string;
|
|
38
|
+
asset: Token;
|
|
39
|
+
interactingAddress: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* @type TokensState
|
|
43
|
+
*
|
|
44
|
+
* Assets controller state
|
|
45
|
+
* @property tokens - List of tokens associated with the active network and address pair
|
|
46
|
+
* @property ignoredTokens - List of ignoredTokens associated with the active network and address pair
|
|
47
|
+
* @property detectedTokens - List of detected tokens associated with the active network and address pair
|
|
48
|
+
* @property allTokens - Object containing tokens by network and account
|
|
49
|
+
* @property allIgnoredTokens - Object containing hidden/ignored tokens by network and account
|
|
50
|
+
* @property allDetectedTokens - Object containing tokens detected with non-zero balances
|
|
51
|
+
*/
|
|
52
|
+
export interface TokensState extends BaseState {
|
|
53
|
+
tokens: Token[];
|
|
54
|
+
ignoredTokens: string[];
|
|
55
|
+
detectedTokens: Token[];
|
|
56
|
+
allTokens: {
|
|
57
|
+
[chainId: Hex]: {
|
|
58
|
+
[key: string]: Token[];
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
allIgnoredTokens: {
|
|
62
|
+
[chainId: Hex]: {
|
|
63
|
+
[key: string]: string[];
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
allDetectedTokens: {
|
|
67
|
+
[chainId: Hex]: {
|
|
68
|
+
[key: string]: Token[];
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The name of the {@link TokensController}.
|
|
74
|
+
*/
|
|
75
|
+
declare const controllerName = "TokensController";
|
|
76
|
+
/**
|
|
77
|
+
* The external actions available to the {@link TokensController}.
|
|
78
|
+
*/
|
|
79
|
+
declare type AllowedActions = AddApprovalRequest;
|
|
80
|
+
/**
|
|
81
|
+
* The messenger of the {@link TokensController}.
|
|
82
|
+
*/
|
|
83
|
+
export declare type TokensControllerMessenger = RestrictedControllerMessenger<typeof controllerName, AllowedActions, never, AllowedActions['type'], never>;
|
|
84
|
+
/**
|
|
85
|
+
* Controller that stores assets and exposes convenience methods
|
|
86
|
+
*/
|
|
87
|
+
export declare class TokensController extends BaseController<TokensConfig, TokensState> {
|
|
88
|
+
private readonly mutex;
|
|
89
|
+
private ethersProvider;
|
|
90
|
+
private abortController;
|
|
91
|
+
private readonly messagingSystem;
|
|
92
|
+
/**
|
|
93
|
+
* Fetch metadata for a token.
|
|
94
|
+
*
|
|
95
|
+
* @param tokenAddress - The address of the token.
|
|
96
|
+
* @returns The token metadata.
|
|
97
|
+
*/
|
|
98
|
+
private fetchTokenMetadata;
|
|
99
|
+
/**
|
|
100
|
+
* EventEmitter instance used to listen to specific EIP747 events
|
|
101
|
+
*/
|
|
102
|
+
hub: EventEmitter;
|
|
103
|
+
/**
|
|
104
|
+
* Name of this controller used during composition
|
|
105
|
+
*/
|
|
106
|
+
name: string;
|
|
107
|
+
private readonly getERC20TokenName;
|
|
108
|
+
/**
|
|
109
|
+
* Creates a TokensController instance.
|
|
110
|
+
*
|
|
111
|
+
* @param options - The controller options.
|
|
112
|
+
* @param options.chainId - The chain ID of the current network.
|
|
113
|
+
* @param options.onPreferencesStateChange - Allows subscribing to preference controller state changes.
|
|
114
|
+
* @param options.onNetworkStateChange - Allows subscribing to network controller state changes.
|
|
115
|
+
* @param options.onTokenListStateChange - Allows subscribing to token list controller state changes.
|
|
116
|
+
* @param options.getERC20TokenName - Gets the ERC-20 token name.
|
|
117
|
+
* @param options.config - Initial options used to configure this controller.
|
|
118
|
+
* @param options.state - Initial state to set on this controller.
|
|
119
|
+
* @param options.messenger - The controller messenger.
|
|
120
|
+
*/
|
|
121
|
+
constructor({ chainId: initialChainId, onPreferencesStateChange, onNetworkStateChange, onTokenListStateChange, getERC20TokenName, config, state, messenger, }: {
|
|
122
|
+
chainId: Hex;
|
|
123
|
+
onPreferencesStateChange: (listener: (preferencesState: PreferencesState) => void) => void;
|
|
124
|
+
onNetworkStateChange: (listener: (networkState: NetworkState) => void) => void;
|
|
125
|
+
onTokenListStateChange: (listener: (tokenListState: TokenListState) => void) => void;
|
|
126
|
+
getERC20TokenName: AssetsContractController['getERC20TokenName'];
|
|
127
|
+
config?: Partial<TokensConfig>;
|
|
128
|
+
state?: Partial<TokensState>;
|
|
129
|
+
messenger: TokensControllerMessenger;
|
|
130
|
+
});
|
|
131
|
+
_instantiateNewEthersProvider(): any;
|
|
132
|
+
/**
|
|
133
|
+
* Adds a token to the stored token list.
|
|
134
|
+
*
|
|
135
|
+
* @param address - Hex address of the token contract.
|
|
136
|
+
* @param symbol - Symbol of the token.
|
|
137
|
+
* @param decimals - Number of decimals the token uses.
|
|
138
|
+
* @param options - Object containing name and image of the token
|
|
139
|
+
* @param options.name - Name of the token
|
|
140
|
+
* @param options.image - Image of the token
|
|
141
|
+
* @param options.interactingAddress - The address of the account to add a token to.
|
|
142
|
+
* @returns Current token list.
|
|
143
|
+
*/
|
|
144
|
+
addToken(address: string, symbol: string, decimals: number, { name, image, interactingAddress, }?: {
|
|
145
|
+
name?: string;
|
|
146
|
+
image?: string;
|
|
147
|
+
interactingAddress?: string;
|
|
148
|
+
}): Promise<Token[]>;
|
|
149
|
+
/**
|
|
150
|
+
* Add a batch of tokens.
|
|
151
|
+
*
|
|
152
|
+
* @param tokensToImport - Array of tokens to import.
|
|
153
|
+
*/
|
|
154
|
+
addTokens(tokensToImport: Token[]): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Ignore a batch of tokens.
|
|
157
|
+
*
|
|
158
|
+
* @param tokenAddressesToIgnore - Array of token addresses to ignore.
|
|
159
|
+
*/
|
|
160
|
+
ignoreTokens(tokenAddressesToIgnore: string[]): void;
|
|
161
|
+
/**
|
|
162
|
+
* Adds a batch of detected tokens to the stored token list.
|
|
163
|
+
*
|
|
164
|
+
* @param incomingDetectedTokens - Array of detected tokens to be added or updated.
|
|
165
|
+
* @param detectionDetails - An object containing the chain ID and address of the currently selected network on which the incomingDetectedTokens were detected.
|
|
166
|
+
* @param detectionDetails.selectedAddress - the account address on which the incomingDetectedTokens were detected.
|
|
167
|
+
* @param detectionDetails.chainId - the chainId on which the incomingDetectedTokens were detected.
|
|
168
|
+
*/
|
|
169
|
+
addDetectedTokens(incomingDetectedTokens: Token[], detectionDetails?: {
|
|
170
|
+
selectedAddress: string;
|
|
171
|
+
chainId: Hex;
|
|
172
|
+
}): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Adds isERC721 field to token object. This is called when a user attempts to add tokens that
|
|
175
|
+
* were previously added which do not yet had isERC721 field.
|
|
176
|
+
*
|
|
177
|
+
* @param tokenAddress - The contract address of the token requiring the isERC721 field added.
|
|
178
|
+
* @returns The new token object with the added isERC721 field.
|
|
179
|
+
*/
|
|
180
|
+
updateTokenType(tokenAddress: string): Promise<Token>;
|
|
181
|
+
/**
|
|
182
|
+
* This is a function that updates the tokens name for the tokens name if it is not defined.
|
|
183
|
+
*
|
|
184
|
+
* @param tokenList - Represents the fetched token list from service API
|
|
185
|
+
* @param tokenAttribute - Represents the token attribute that we want to update on the token list
|
|
186
|
+
*/
|
|
187
|
+
private updateTokensAttribute;
|
|
188
|
+
/**
|
|
189
|
+
* Detects whether or not a token is ERC-721 compatible.
|
|
190
|
+
*
|
|
191
|
+
* @param tokenAddress - The token contract address.
|
|
192
|
+
* @returns A boolean indicating whether the token address passed in supports the EIP-721
|
|
193
|
+
* interface.
|
|
194
|
+
*/
|
|
195
|
+
_detectIsERC721(tokenAddress: string): Promise<any>;
|
|
196
|
+
_createEthersContract(tokenAddress: string, abi: string, ethersProvider: any): Contract;
|
|
197
|
+
_generateRandomId(): string;
|
|
198
|
+
/**
|
|
199
|
+
* Adds a new suggestedAsset to the list of watched assets.
|
|
200
|
+
* Parameters will be validated according to the asset type being watched.
|
|
201
|
+
*
|
|
202
|
+
* @param asset - The asset to be watched. For now only ERC20 tokens are accepted.
|
|
203
|
+
* @param type - The asset type.
|
|
204
|
+
* @param interactingAddress - The address of the account that is requesting to watch the asset.
|
|
205
|
+
* @returns Object containing a Promise resolving to the suggestedAsset address if accepted.
|
|
206
|
+
*/
|
|
207
|
+
watchAsset(asset: Token, type: string, interactingAddress?: string): Promise<void>;
|
|
208
|
+
/**
|
|
209
|
+
* Takes a new tokens and ignoredTokens array for the current network/account combination
|
|
210
|
+
* and returns new allTokens and allIgnoredTokens state to update to.
|
|
211
|
+
*
|
|
212
|
+
* @param params - Object that holds token params.
|
|
213
|
+
* @param params.newTokens - The new tokens to set for the current network and selected account.
|
|
214
|
+
* @param params.newIgnoredTokens - The new ignored tokens to set for the current network and selected account.
|
|
215
|
+
* @param params.newDetectedTokens - The new detected tokens to set for the current network and selected account.
|
|
216
|
+
* @param params.interactingAddress - The account address to use to store the tokens.
|
|
217
|
+
* @param params.interactingChainId - The chainId to use to store the tokens.
|
|
218
|
+
* @returns The updated `allTokens` and `allIgnoredTokens` state.
|
|
219
|
+
*/
|
|
220
|
+
_getNewAllTokensState(params: {
|
|
221
|
+
newTokens?: Token[];
|
|
222
|
+
newIgnoredTokens?: string[];
|
|
223
|
+
newDetectedTokens?: Token[];
|
|
224
|
+
interactingAddress?: string;
|
|
225
|
+
interactingChainId?: Hex;
|
|
226
|
+
}): {
|
|
227
|
+
newAllTokens: {
|
|
228
|
+
[chainId: `0x${string}`]: {
|
|
229
|
+
[key: string]: Token[];
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
newAllIgnoredTokens: {
|
|
233
|
+
[chainId: `0x${string}`]: {
|
|
234
|
+
[key: string]: string[];
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
newAllDetectedTokens: {
|
|
238
|
+
[chainId: `0x${string}`]: {
|
|
239
|
+
[key: string]: Token[];
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Removes all tokens from the ignored list.
|
|
245
|
+
*/
|
|
246
|
+
clearIgnoredTokens(): void;
|
|
247
|
+
_requestApproval(suggestedAssetMeta: SuggestedAssetMeta): Promise<unknown>;
|
|
248
|
+
}
|
|
249
|
+
export default TokensController;
|
|
250
|
+
//# sourceMappingURL=TokensController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokensController.d.ts","sourceRoot":"","sources":["../src/TokensController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,6BAA6B,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAU3E,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,aAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,SAAS,EAAE;QAAE,CAAC,OAAO,EAAE,GAAG,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IAC1D,gBAAgB,EAAE;QAAE,CAAC,OAAO,EAAE,GAAG,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IAClE,iBAAiB,EAAE;QAAE,CAAC,OAAO,EAAE,GAAG,GAAG;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CACnE;AAED;;GAEG;AACH,QAAA,MAAM,cAAc,qBAAqB,CAAC;AAE1C;;GAEG;AACH,aAAK,cAAc,GAAG,kBAAkB,CAAC;AAEzC;;GAEG;AACH,oBAAY,yBAAyB,GAAG,6BAA6B,CACnE,OAAO,cAAc,EACrB,cAAc,EACd,KAAK,EACL,cAAc,CAAC,MAAM,CAAC,EACtB,KAAK,CACN,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,cAAc,CAClD,YAAY,EACZ,WAAW,CACZ;IACC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IAErC,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAO,CAAC,eAAe,CAAwB;IAE/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D;;;;;OAKG;YACW,kBAAkB;IAqBhC;;OAEG;IACH,GAAG,eAAsB;IAEzB;;OAEG;IACM,IAAI,SAAsB;IAEnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgD;IAElF;;;;;;;;;;;;OAYG;gBACS,EACV,OAAO,EAAE,cAAc,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE;QACD,OAAO,EAAE,GAAG,CAAC;QACb,wBAAwB,EAAE,CACxB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,IAAI,KACnD,IAAI,CAAC;QACV,oBAAoB,EAAE,CACpB,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,KAC3C,IAAI,CAAC;QACV,sBAAsB,EAAE,CACtB,QAAQ,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,KAC/C,IAAI,CAAC;QACV,iBAAiB,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7B,SAAS,EAAE,yBAAyB,CAAC;KACtC;IA4DD,6BAA6B,IAAI,GAAG;IAIpC;;;;;;;;;;;OAWG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,EACE,IAAI,EACJ,KAAK,EACL,kBAAkB,GACnB,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAO,GACrE,OAAO,CAAC,KAAK,EAAE,CAAC;IAsFnB;;;;OAIG;IACG,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE;IAuDvC;;;;OAIG;IACH,YAAY,CAAC,sBAAsB,EAAE,MAAM,EAAE;IAmC7C;;;;;;;OAOG;IACG,iBAAiB,CACrB,sBAAsB,EAAE,KAAK,EAAE,EAC/B,gBAAgB,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE;IA0F9D;;;;;;OAMG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM;IAW1C;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;;OAMG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM;IA0B1C,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,GAAG,GAClB,QAAQ;IAKX,iBAAiB,IAAI,MAAM;IAI3B;;;;;;;;OAQG;IACG,UAAU,CACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;;;;;;;;OAWG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAC5B,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,GAAG,CAAC;KAC1B;;;;;;;;;;;;;;;;;IAyED;;OAEG;IACH,kBAAkB;IAIZ,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB;CAqB9D;AAED,eAAe,gBAAgB,CAAC"}
|