@astrox/connection 0.0.30 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/lib/cjs/canisters/internet_identity_idl.js +1 -2
  2. package/lib/cjs/canisters/internet_identity_idl.js.map +1 -1
  3. package/lib/cjs/canisters/ledger.idl.js +1 -2
  4. package/lib/cjs/canisters/ledger.idl.js.map +1 -1
  5. package/lib/cjs/canisters/me.idl.js +1 -2
  6. package/lib/cjs/canisters/me.idl.js.map +1 -1
  7. package/lib/cjs/canisters/nns-dapp-cert.idl.js +1 -2
  8. package/lib/cjs/canisters/nns-dapp-cert.idl.js.map +1 -1
  9. package/lib/cjs/canisters/nns-dapp.idl.js +1 -2
  10. package/lib/cjs/canisters/nns-dapp.idl.js.map +1 -1
  11. package/lib/cjs/connections/baseConnection.js +3 -5
  12. package/lib/cjs/connections/baseConnection.js.map +1 -1
  13. package/lib/cjs/connections/ledgerConnection.d.ts +5 -1
  14. package/lib/cjs/connections/ledgerConnection.js +7 -8
  15. package/lib/cjs/connections/ledgerConnection.js.map +1 -1
  16. package/lib/cjs/connections/nnsConnection.d.ts +9 -1
  17. package/lib/cjs/connections/nnsConnection.js +12 -59
  18. package/lib/cjs/connections/nnsConnection.js.map +1 -1
  19. package/lib/cjs/ic/icAuthClient.js +7 -9
  20. package/lib/cjs/ic/icAuthClient.js.map +1 -1
  21. package/lib/cjs/ic/icConnect.d.ts +5 -1
  22. package/lib/cjs/ic/icConnect.js +106 -35
  23. package/lib/cjs/ic/icConnect.js.map +1 -1
  24. package/lib/cjs/ic/icWindow.js.map +1 -1
  25. package/lib/cjs/ic/index.js +0 -1
  26. package/lib/cjs/ic/index.js.map +1 -1
  27. package/lib/cjs/index.js +1 -1
  28. package/lib/cjs/services/history/rosseta.d.ts +62 -0
  29. package/lib/cjs/services/history/rosseta.js +242 -0
  30. package/lib/cjs/services/history/rosseta.js.map +1 -0
  31. package/lib/cjs/types/index.d.ts +50 -0
  32. package/lib/cjs/types/index.js +8 -1
  33. package/lib/cjs/types/index.js.map +1 -1
  34. package/lib/cjs/utils/common/types.d.ts +4 -0
  35. package/lib/cjs/utils/constants.d.ts +21 -2
  36. package/lib/cjs/utils/constants.js +22 -6
  37. package/lib/cjs/utils/constants.js.map +1 -1
  38. package/lib/cjs/utils/converter.d.ts +24 -1
  39. package/lib/cjs/utils/converter.js +111 -46
  40. package/lib/cjs/utils/converter.js.map +1 -1
  41. package/lib/cjs/utils/index.js +1 -1
  42. package/lib/esm/connections/baseConnection.js.map +1 -1
  43. package/lib/esm/connections/ledgerConnection.d.ts +5 -1
  44. package/lib/esm/connections/ledgerConnection.js +0 -1
  45. package/lib/esm/connections/ledgerConnection.js.map +1 -1
  46. package/lib/esm/connections/nnsConnection.d.ts +9 -1
  47. package/lib/esm/connections/nnsConnection.js +9 -56
  48. package/lib/esm/connections/nnsConnection.js.map +1 -1
  49. package/lib/esm/ic/icAuthClient.js +3 -5
  50. package/lib/esm/ic/icAuthClient.js.map +1 -1
  51. package/lib/esm/ic/icConnect.d.ts +5 -1
  52. package/lib/esm/ic/icConnect.js +107 -36
  53. package/lib/esm/ic/icConnect.js.map +1 -1
  54. package/lib/esm/ic/icWindow.js.map +1 -1
  55. package/lib/esm/services/history/rosseta.d.ts +62 -0
  56. package/lib/esm/services/history/rosseta.js +236 -0
  57. package/lib/esm/services/history/rosseta.js.map +1 -0
  58. package/lib/esm/types/index.d.ts +50 -0
  59. package/lib/esm/types/index.js +7 -0
  60. package/lib/esm/types/index.js.map +1 -1
  61. package/lib/esm/utils/common/types.d.ts +4 -0
  62. package/lib/esm/utils/constants.d.ts +21 -2
  63. package/lib/esm/utils/constants.js +21 -5
  64. package/lib/esm/utils/constants.js.map +1 -1
  65. package/lib/esm/utils/converter.d.ts +24 -1
  66. package/lib/esm/utils/converter.js +86 -4
  67. package/lib/esm/utils/converter.js.map +1 -1
  68. package/lib/tsconfig-cjs.tsbuildinfo +2847 -1
  69. package/lib/tsconfig.tsbuildinfo +2846 -1
  70. package/package.json +4 -3
@@ -0,0 +1,236 @@
1
+ import fetch from 'cross-fetch';
2
+ // import {
3
+ // GetTransactionsResponse,
4
+ // Send,
5
+ // Timestamp,
6
+ // } from 'src/frontend/generated/nns-dapp';
7
+ import { NET_ID, ROSETTA_URL } from '../../utils/constants';
8
+ import { formatAssetBySymbol, parseBalance, TokenSymbol, } from '../../utils/converter';
9
+ import { NNSConnection as nns } from '../../connections/nnsConnection';
10
+ export const MILI_PER_SECOND = 1000000;
11
+ export var RosettaTransactionStatus;
12
+ (function (RosettaTransactionStatus) {
13
+ RosettaTransactionStatus["COMPLETED"] = "COMPLETED";
14
+ RosettaTransactionStatus["REVERTED"] = "REVERTED";
15
+ RosettaTransactionStatus["PENDING"] = "PENDING";
16
+ })(RosettaTransactionStatus || (RosettaTransactionStatus = {}));
17
+ export var RosettaTransactionType;
18
+ (function (RosettaTransactionType) {
19
+ RosettaTransactionType["TRANSACTION"] = "TRANSACTION";
20
+ RosettaTransactionType["FEE"] = "FEE";
21
+ RosettaTransactionType["RECEIVE"] = "RECEIVE";
22
+ RosettaTransactionType["SEND"] = "SEND";
23
+ })(RosettaTransactionType || (RosettaTransactionType = {}));
24
+ const getTransactionInfo = (accountId, rosettaTransaction) => {
25
+ const { operations, metadata: { timestamp: ts, block_height: bh, memo: mm, lockTime: lt }, transaction_identifier: { hash }, } = rosettaTransaction;
26
+ // console.log('------ getting rosetta transaction start -------');
27
+ // console.log({ rosettaTransaction });
28
+ // console.log('------ getting rosetta transaction end -------');
29
+ const transaction = {
30
+ type: RosettaTransactionType.SEND,
31
+ details: {
32
+ status: RosettaTransactionStatus.COMPLETED,
33
+ fee: {},
34
+ from: accountId,
35
+ },
36
+ };
37
+ operations.forEach((operation) => {
38
+ const value = BigInt(operation.amount.value);
39
+ const { decimals } = operation.amount.currency;
40
+ const amount = parseBalance({ value: value.toString(), decimals });
41
+ if (operation.type === RosettaTransactionType.FEE) {
42
+ transaction.details.fee.amount = amount;
43
+ transaction.details.fee.currency = operation.amount.currency;
44
+ return;
45
+ }
46
+ if (value >= 0)
47
+ transaction.details.to = operation.account.address;
48
+ if (value <= 0)
49
+ transaction.details.from = operation.account.address;
50
+ if (transaction.details.status === RosettaTransactionStatus.COMPLETED &&
51
+ operation.status !== RosettaTransactionStatus.COMPLETED)
52
+ transaction.details.status = operation.status;
53
+ transaction.type =
54
+ transaction.details.to === accountId
55
+ ? RosettaTransactionType.RECEIVE
56
+ : RosettaTransactionType.SEND;
57
+ transaction.details.amount = amount;
58
+ transaction.details.currency = operation.amount.currency;
59
+ });
60
+ return Object.assign(Object.assign({}, transaction), { caller: transaction.details.from, hash, timestamp: ts !== undefined ? (BigInt(ts) / BigInt(MILI_PER_SECOND)).toString() : '', block_height: bh !== undefined ? BigInt(bh).toString() : '', memo: mm !== undefined ? BigInt(mm).toString() : '', lockTime: lt !== undefined ? BigInt(lt).toString() : '' });
61
+ };
62
+ export const getICPTransactions = async (accountId) => {
63
+ const response = await fetch(`${ROSETTA_URL}/search/transactions`, {
64
+ method: 'POST',
65
+ body: JSON.stringify({
66
+ network_identifier: NET_ID,
67
+ account_identifier: {
68
+ address: accountId,
69
+ },
70
+ }),
71
+ headers: {
72
+ 'Content-Type': 'application/json',
73
+ Accept: '*/*',
74
+ },
75
+ });
76
+ if (!response.ok)
77
+ throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
78
+ const { transactions, total_count } = await response.json();
79
+ const transactionsInfo = transactions.map(({ transaction }) => getTransactionInfo(accountId, transaction));
80
+ return {
81
+ total: total_count,
82
+ transactions: transactionsInfo,
83
+ };
84
+ };
85
+ export const getTransactions = async (localDelegationIdentity, fromAccount) => {
86
+ const result = await nns.getTransactions({ delegationIdentity: localDelegationIdentity }, { page_size: 10, offset: 0, account_identifier: fromAccount });
87
+ return result;
88
+ };
89
+ export const getICPTransactionsByBlock = async (fromAccount, blockHeight) => {
90
+ try {
91
+ const response = await fetch(`${ROSETTA_URL}/block`, {
92
+ method: 'POST',
93
+ body: JSON.stringify({
94
+ network_identifier: NET_ID,
95
+ block_identifier: { index: parseInt(blockHeight.toString()) },
96
+ }),
97
+ headers: {
98
+ 'Content-Type': 'application/json',
99
+ Accept: '*/*',
100
+ },
101
+ });
102
+ if (!response.ok)
103
+ throw Error(`GET_TRANSACTIONS_FAILS: ${response.statusText}`);
104
+ const { block } = await response.json();
105
+ const { transactions } = block;
106
+ if (transactions === undefined || block === undefined) {
107
+ return {
108
+ total: transactions.length,
109
+ transactions: [],
110
+ };
111
+ }
112
+ const transactionsInfo = transactions.map((transaction) => getTransactionInfo(fromAccount, transaction));
113
+ return {
114
+ total: transactions.length,
115
+ transactions: transactionsInfo,
116
+ };
117
+ }
118
+ catch (error) {
119
+ throw error;
120
+ }
121
+ };
122
+ export const getExactTransaction = (fromAccount, singleResponse, txns) => {
123
+ const { sendArgs } = singleResponse;
124
+ const { amount, created_at_time, memo, to } = sendArgs;
125
+ const { blockHeight } = singleResponse;
126
+ const { transactions } = txns;
127
+ console.log({ singleResponse, txns });
128
+ const found = transactions.find((val) => {
129
+ return created_at_time[0] !== undefined
130
+ ? val.timestamp.timestamp_nanos >
131
+ created_at_time[0].timestamp_nanos
132
+ : true &&
133
+ val.block_height === blockHeight &&
134
+ val.memo === memo &&
135
+ JSON.stringify(val.transaction_type[0]) ===
136
+ JSON.stringify({ Send: null }) &&
137
+ val.transfer.Send.amount.e8s === amount.e8s &&
138
+ val.transfer.Send.to === to;
139
+ });
140
+ if (found) {
141
+ const res = {
142
+ hash: '',
143
+ timestamp: (BigInt(found.timestamp.timestamp_nanos) / BigInt(1000000)).toString(),
144
+ type: RosettaTransactionType.SEND,
145
+ details: {
146
+ to,
147
+ from: fromAccount,
148
+ status: RosettaTransactionStatus.COMPLETED,
149
+ amount: amount.e8s.toString(),
150
+ currency: {
151
+ symbol: TokenSymbol.ICP,
152
+ decimals: 10,
153
+ },
154
+ fee: {
155
+ amount: found.transfer.Send.fee.e8s.toString(),
156
+ currency: {
157
+ symbol: TokenSymbol.ICP,
158
+ decimals: 10,
159
+ },
160
+ },
161
+ },
162
+ caller: fromAccount,
163
+ block_height: blockHeight.toString(),
164
+ memo: memo.toString(),
165
+ lockTime: '',
166
+ };
167
+ return res;
168
+ }
169
+ return undefined;
170
+ };
171
+ // use Rosseta API to fetch transaction list, and return
172
+ // This API works on mainnet, however not in local testnet
173
+ export const getTransactionFromRosseta = (fromAccount, singleResponse, txns) => {
174
+ const { sendArgs } = singleResponse;
175
+ const { amount, created_at_time, memo, to } = sendArgs;
176
+ const { blockHeight } = singleResponse;
177
+ const { transactions } = txns;
178
+ console.log({ singleResponse, transactions });
179
+ const found = transactions.find((val) => {
180
+ var _a;
181
+ return created_at_time[0] !== undefined
182
+ ? val.timestamp.length <
183
+ created_at_time[0].timestamp_nanos.toString().length
184
+ ? BigInt(val.timestamp) * BigInt(1000000) >
185
+ created_at_time[0].timestamp_nanos
186
+ : BigInt(val.timestamp) >
187
+ created_at_time[0].timestamp_nanos
188
+ : true &&
189
+ BigInt(val.block_height) === blockHeight &&
190
+ BigInt(val.memo) === memo &&
191
+ val.details.to === to &&
192
+ val.details.amount === ((_a = formatAssetBySymbol(amount.e8s, val.details.currency.symbol)) === null || _a === void 0 ? void 0 : _a.amount.toString()) &&
193
+ val.caller === fromAccount;
194
+ });
195
+ return found;
196
+ };
197
+ const aaa = {
198
+ transaction_identifier: {
199
+ hash: 'df8576aa9be05b561dae1b7f706d109789cf25b895d29b3a1d7da2df92247d97',
200
+ },
201
+ operations: [
202
+ {
203
+ type: 'TRANSACTION',
204
+ operation_identifier: { index: 0 },
205
+ status: 'COMPLETED',
206
+ account: {
207
+ address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
208
+ },
209
+ amount: { value: -100000, currency: { symbol: 'ICP', decimals: 8 } },
210
+ },
211
+ {
212
+ type: 'TRANSACTION',
213
+ operation_identifier: { index: 1 },
214
+ status: 'COMPLETED',
215
+ account: {
216
+ address: '848753b6fac50019dffc34ead1af095863405b3cce463352c1ecf3109ada4b23',
217
+ },
218
+ amount: { value: 100000, currency: { symbol: 'ICP', decimals: 8 } },
219
+ },
220
+ {
221
+ type: 'FEE',
222
+ operation_identifier: { index: 2 },
223
+ status: 'COMPLETED',
224
+ account: {
225
+ address: 'da5fd722e22c4970b4347d41873ba86c51f87ee32f271d6762fc49627eeecb71',
226
+ },
227
+ amount: { value: -10000, currency: { symbol: 'ICP', decimals: 8 } },
228
+ },
229
+ ],
230
+ metadata: {
231
+ block_height: 1680083,
232
+ memo: 22380256,
233
+ timestamp: 1639810289340003912,
234
+ },
235
+ };
236
+ //# sourceMappingURL=rosseta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rosseta.js","sourceRoot":"","sources":["../../../../src/services/history/rosseta.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,8 @@ export interface AuthClientLoginOptions extends AuthClientCreateOptions {
79
79
  export interface ConnectOptions extends AuthClientLoginOptions {
80
80
  ledgerCanisterId?: string;
81
81
  walletProviderUrl?: string;
82
+ signerProviderUrl?: string;
83
+ useFrame: boolean;
82
84
  }
83
85
  export interface TransactionOptions {
84
86
  /**
@@ -89,6 +91,25 @@ export interface TransactionOptions {
89
91
  to: AccountIdentifier;
90
92
  amount: bigint;
91
93
  sendOpts: SendOpts;
94
+ maxTimeout?: number;
95
+ successTimeout?: number;
96
+ /**
97
+ * Callback once login has completed
98
+ */
99
+ onSuccess?: (value?: any) => void | Promise<void>;
100
+ /**
101
+ * Callback in case authentication fails
102
+ */
103
+ onError?: (error?: string) => void;
104
+ }
105
+ export interface SignerOptions {
106
+ /**
107
+ * Identity provider. By default, use the identity service.
108
+ */
109
+ signerProvider?: string | URL;
110
+ message: Uint8Array | string;
111
+ maxTimeout?: number;
112
+ successTimeout?: number;
92
113
  /**
93
114
  * Callback once login has completed
94
115
  */
@@ -138,6 +159,35 @@ export declare enum PermissionsType {
138
159
  identity = "permissions-identity",
139
160
  wallet = "permissions-wallet"
140
161
  }
162
+ export declare enum SignerMessageKind {
163
+ client = "signer-client",
164
+ ready = "signer-ready",
165
+ success = "signer-client-success",
166
+ fail = "signer-client-failure"
167
+ }
168
+ export interface SignerReadyMessage {
169
+ kind: SignerMessageKind.ready;
170
+ }
171
+ export interface SignerResponseFailure {
172
+ kind: SignerMessageKind.fail;
173
+ text: string;
174
+ }
175
+ export interface SignerResponseFailure {
176
+ kind: SignerMessageKind.fail;
177
+ text: string;
178
+ }
179
+ export interface SignerResponseSuccess {
180
+ kind: SignerMessageKind.success;
181
+ payload?: {
182
+ publicKey: string;
183
+ signature: string;
184
+ originPayload: {
185
+ message: Uint8Array;
186
+ };
187
+ };
188
+ }
189
+ export declare type SignerResponseMessage = SignerReadyMessage | SignerResponse;
190
+ export declare type SignerResponse = SignerResponseSuccess | SignerResponseFailure;
141
191
  export declare enum TransactionMessageKind {
142
192
  client = "transaction-client",
143
193
  ready = "transaction-ready",
@@ -3,6 +3,13 @@ export var PermissionsType;
3
3
  PermissionsType["identity"] = "permissions-identity";
4
4
  PermissionsType["wallet"] = "permissions-wallet";
5
5
  })(PermissionsType || (PermissionsType = {}));
6
+ export var SignerMessageKind;
7
+ (function (SignerMessageKind) {
8
+ SignerMessageKind["client"] = "signer-client";
9
+ SignerMessageKind["ready"] = "signer-ready";
10
+ SignerMessageKind["success"] = "signer-client-success";
11
+ SignerMessageKind["fail"] = "signer-client-failure";
12
+ })(SignerMessageKind || (SignerMessageKind = {}));
6
13
  // Transaction Types
7
14
  export var TransactionMessageKind;
8
15
  (function (TransactionMessageKind) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAgKA,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;AAC/B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,oBAAoB;AACpB,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uDAA6B,CAAA;IAC7B,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,6DAAmC,CAAA;AACrC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAuLA,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;AAC/B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,6CAAwB,CAAA;IACxB,2CAAsB,CAAA;IACtB,sDAAiC,CAAA;IACjC,mDAA8B,CAAA;AAChC,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AA+BD,oBAAoB;AACpB,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uDAA6B,CAAA;IAC7B,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,6DAAmC,CAAA;AACrC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC"}
@@ -13,3 +13,7 @@ export declare enum WalletType {
13
13
  me = "me",
14
14
  unknown = "unknown"
15
15
  }
16
+ export interface Balance {
17
+ value: string;
18
+ decimals: number;
19
+ }
@@ -1,6 +1,25 @@
1
+ export declare const LEDGER_CANISTER_ID = "ryjl3-tyaaa-aaaaa-aaaba-cai";
2
+ export declare const NNS_CANISTER_ID = "qoctq-giaaa-aaaaa-aaaea-cai";
1
3
  export declare const SUB_ACCOUNT_BYTE_LENGTH = 32;
2
4
  export declare const CREATE_CANISTER_MEMO: bigint;
3
5
  export declare const TOP_UP_CANISTER_MEMO: bigint;
4
6
  export declare const TRANSACTION_FEE: bigint;
5
- export declare const LEDGER_CANISTER_ID = "ryjl3-tyaaa-aaaaa-aaaba-cai";
6
- export declare const NNS_CANISTER_ID = "qoctq-giaaa-aaaaa-aaaea-cai";
7
+ export declare const NET_ID: {
8
+ blockchain: string;
9
+ network: string;
10
+ };
11
+ export declare const ROSETTA_URL = "https://rosetta-api.internetcomputer.org";
12
+ export declare const IC_EXPLORER = "https://dashboard.internetcomputer.org";
13
+ export declare const IC_ROCKS = "https://ic.rocks";
14
+ export declare const MAX_TRANSACTION_DECISION_MILSECONDS = 120000;
15
+ export declare const PRINCIPAL_REGEX: RegExp;
16
+ export declare const ALPHANUM_REGEX: RegExp;
17
+ export declare const CANISTER_REGEX: RegExp;
18
+ export declare const CANISTER_MAX_LENGTH = 27;
19
+ export declare const ADDRESS_TYPES: {
20
+ PRINCIPAL: string;
21
+ ACCOUNT: string;
22
+ CANISTER: string;
23
+ ERC20: string;
24
+ UNKNOWN: string;
25
+ };
@@ -1,10 +1,26 @@
1
+ export const LEDGER_CANISTER_ID = 'ryjl3-tyaaa-aaaaa-aaaba-cai';
2
+ export const NNS_CANISTER_ID = 'qoctq-giaaa-aaaaa-aaaea-cai';
1
3
  export const SUB_ACCOUNT_BYTE_LENGTH = 32;
2
4
  export const CREATE_CANISTER_MEMO = BigInt(0x41455243); // CREA,
3
5
  export const TOP_UP_CANISTER_MEMO = BigInt(0x50555054); // TPUP
4
6
  export const TRANSACTION_FEE = BigInt(10000);
5
- export const LEDGER_CANISTER_ID = 'ryjl3-tyaaa-aaaaa-aaaba-cai';
6
- export const NNS_CANISTER_ID = 'qoctq-giaaa-aaaaa-aaaea-cai';
7
- // import config from "../config";
8
- // // @ts-ignore
9
- // export const HOST = "HOST" in config ? config["HOST"] : undefined;
7
+ export const NET_ID = {
8
+ blockchain: 'Internet Computer',
9
+ network: '00000000000000020101',
10
+ };
11
+ export const ROSETTA_URL = 'https://rosetta-api.internetcomputer.org';
12
+ export const IC_EXPLORER = 'https://dashboard.internetcomputer.org';
13
+ export const IC_ROCKS = 'https://ic.rocks';
14
+ export const MAX_TRANSACTION_DECISION_MILSECONDS = 120000;
15
+ export const PRINCIPAL_REGEX = /(\w{5}-){10}\w{3}/;
16
+ export const ALPHANUM_REGEX = /^[a-zA-Z0-9]+$/;
17
+ export const CANISTER_REGEX = /(\w{5}-){4}\w{3}/;
18
+ export const CANISTER_MAX_LENGTH = 27;
19
+ export const ADDRESS_TYPES = {
20
+ PRINCIPAL: 'principal',
21
+ ACCOUNT: 'accountId',
22
+ CANISTER: 'canister',
23
+ ERC20: 'erc20',
24
+ UNKNOWN: 'unknown',
25
+ };
10
26
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAE7D,kCAAkC;AAElC,gBAAgB;AAChB,qEAAqE"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAI7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAM,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,UAAU,EAAE,mBAAmB;IAC/B,OAAO,EAAE,sBAAsB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,0CAA0C,CAAC;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Principal } from '@dfinity/principal';
2
- import { AccountIdentifier, SubAccount } from './common/types';
2
+ import { AccountIdentifier, Balance, SubAccount } from './common/types';
3
3
  export declare const uint8ArrayToBigInt: (array: Uint8Array) => bigint;
4
4
  export declare const bigIntToUint8Array: (value: bigint) => Uint8Array;
5
5
  export declare const arrayBufferToArrayOfNumber: (buffer: ArrayBuffer) => Array<number>;
@@ -20,13 +20,36 @@ export declare const E8S_PER_ICP = 100000000;
20
20
  export declare enum TokenSymbol {
21
21
  ICP = "ICP"
22
22
  }
23
+ export declare const getDecimalFromSymbol: (sym: string) => number;
23
24
  export interface TokenMapItem {
24
25
  [key: string]: {
25
26
  amount: number;
26
27
  symbol: string;
28
+ balanceString: BalanceString;
27
29
  };
28
30
  }
29
31
  export declare const formatAssetBySymbol: (_amount: bigint, symbol: string) => {
30
32
  amount: number;
31
33
  symbol: string;
34
+ balanceString: BalanceString;
32
35
  } | undefined;
36
+ export declare const parseBalance: (balance: Balance) => string;
37
+ export declare const balanceFromString: (balance: string, decimal?: number) => bigint;
38
+ export interface BalanceString {
39
+ total: string;
40
+ aboveZero: string;
41
+ belowZero: string;
42
+ formatAboveZero: string;
43
+ }
44
+ export declare const balanceToString: (balance: bigint, decimal?: number) => BalanceString;
45
+ export declare const validateAccountId: (text: string) => boolean;
46
+ export declare const validatePrincipalId: (text: string) => boolean;
47
+ export declare const validateCanisterId: (text: string) => boolean;
48
+ export declare enum AddressType {
49
+ PRINCIPAL = "principal",
50
+ ACCOUNT = "accountId",
51
+ CANISTER = "canister",
52
+ ERC20 = "erc20",
53
+ INVALID = "invalid"
54
+ }
55
+ export declare const getAddressType: (text: string) => AddressType.PRINCIPAL | AddressType.ACCOUNT | AddressType.CANISTER | AddressType.INVALID;
@@ -1,8 +1,9 @@
1
+ /* eslint-disable no-useless-catch */
1
2
  import { Principal } from '@dfinity/principal';
2
3
  import { sha224 } from 'js-sha256';
3
4
  import { Buffer } from 'buffer';
4
5
  import crc from 'crc';
5
- import { SUB_ACCOUNT_BYTE_LENGTH } from './constants';
6
+ import { ALPHANUM_REGEX, CANISTER_MAX_LENGTH, SUB_ACCOUNT_BYTE_LENGTH } from './constants';
6
7
  export const uint8ArrayToBigInt = (array) => {
7
8
  const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
8
9
  if (typeof view.getBigUint64 === 'function') {
@@ -108,17 +109,98 @@ export var TokenSymbol;
108
109
  (function (TokenSymbol) {
109
110
  TokenSymbol["ICP"] = "ICP";
110
111
  })(TokenSymbol || (TokenSymbol = {}));
112
+ export const getDecimalFromSymbol = (sym) => {
113
+ switch (sym) {
114
+ case TokenSymbol.ICP:
115
+ return 8;
116
+ default:
117
+ return 8;
118
+ }
119
+ };
111
120
  export const formatAssetBySymbol = (_amount, symbol) => {
112
- const amount = parseInt(_amount === null || _amount === void 0 ? void 0 : _amount.toString(), 10);
121
+ const balanceString = balanceToString(_amount, getDecimalFromSymbol(symbol));
122
+ const amount = Number(balanceString.total);
113
123
  const tokenMap = [
114
124
  {
115
125
  ICP: {
116
- amount: amount / E8S_PER_ICP,
126
+ amount: amount,
127
+ balanceString,
117
128
  symbol: 'ICP',
118
129
  },
119
130
  },
120
131
  ];
121
- const found = tokenMap.find(v => v[symbol] !== undefined);
132
+ const found = tokenMap.find((v) => v[symbol] !== undefined);
122
133
  return found === null || found === void 0 ? void 0 : found[symbol];
123
134
  };
135
+ export const parseBalance = (balance) => {
136
+ return (parseInt(balance.value, 10) / 10 ** balance.decimals).toString();
137
+ };
138
+ export const balanceFromString = (balance, decimal = 8) => {
139
+ const list = balance.split('.');
140
+ const aboveZero = list[0];
141
+ const aboveZeroBigInt = BigInt(aboveZero) * BigInt(1 * 10 ** decimal);
142
+ let belowZeroBigInt = BigInt(0);
143
+ const belowZero = list[1];
144
+ if (belowZero !== undefined) {
145
+ belowZeroBigInt = BigInt(belowZero.substring(0, decimal).padEnd(decimal, '0'));
146
+ }
147
+ return aboveZeroBigInt + belowZeroBigInt;
148
+ };
149
+ export const balanceToString = (balance, decimal = 8) => {
150
+ const balanceString = balance.toString(10);
151
+ const balanceStringLength = balanceString.length;
152
+ let aboveZero = '0';
153
+ let belowZero = '0'.padEnd(decimal, '0');
154
+ if (balanceStringLength > decimal) {
155
+ belowZero = balanceString.substring(balanceStringLength - decimal, balanceStringLength);
156
+ aboveZero = balanceString.substring(0, balanceStringLength - decimal);
157
+ }
158
+ else {
159
+ belowZero = balanceString.padStart(decimal, '0');
160
+ }
161
+ const formatAboveZero = String(aboveZero).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
162
+ return { total: aboveZero + '.' + belowZero, aboveZero, belowZero, formatAboveZero };
163
+ };
164
+ export const validateAccountId = (text) => text.length === 64 && ALPHANUM_REGEX.test(text);
165
+ export const validatePrincipalId = (text) => {
166
+ try {
167
+ return text === Principal.fromText(text).toString();
168
+ }
169
+ catch (e) {
170
+ return false;
171
+ }
172
+ };
173
+ export const validateCanisterId = (text) => {
174
+ try {
175
+ return text.length <= CANISTER_MAX_LENGTH && validatePrincipalId(text);
176
+ }
177
+ catch (e) {
178
+ return false;
179
+ }
180
+ };
181
+ export var AddressType;
182
+ (function (AddressType) {
183
+ AddressType["PRINCIPAL"] = "principal";
184
+ AddressType["ACCOUNT"] = "accountId";
185
+ AddressType["CANISTER"] = "canister";
186
+ AddressType["ERC20"] = "erc20";
187
+ AddressType["INVALID"] = "invalid";
188
+ })(AddressType || (AddressType = {}));
189
+ export const getAddressType = (text) => {
190
+ try {
191
+ if (validateAccountId(text)) {
192
+ return AddressType.ACCOUNT;
193
+ }
194
+ else if (validatePrincipalId(text)) {
195
+ return AddressType.PRINCIPAL;
196
+ }
197
+ else if (validateCanisterId(text)) {
198
+ return AddressType.CANISTER;
199
+ }
200
+ return AddressType.INVALID;
201
+ }
202
+ catch (error) {
203
+ throw error;
204
+ }
205
+ };
124
206
  //# sourceMappingURL=converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/utils/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAU,EAAE;IAC9D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAC7B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;KACnC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAc,EAAE;IAC9D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;QAC3C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KAC7B;SAAM;QACL,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;KAClD;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAmB,EAAiB,EAAE;IAC/E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAsB,EAAc,EAAE;IAC9E,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAsB,EAAe,EAAE;IAChF,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAU,EAAE;IACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAe,EAAE;IACpF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAiB,EAAE;IACpE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAyB,EAAU,EAAE;IAClE,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAiB,EAAE;IACtE,MAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAC1E,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,iBAAoC,EAAc,EAAE;IAC3F,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,iBAA6B,EAAqB,EAAE;IAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,SAAoB,EACpB,UAAuB,EACf,EAAE;IACV,+DAA+D;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAc,EAAE;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAiC,EAAE;IACtF,IAAI;QACF,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,OAAO,4BAA4B,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9D;QACD,OAAO,SAAS,CAAC;KAClB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CACxC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5E,UAAU;AACV,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAc,EAAE;IAC9D,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,SAAW,CAAC;AAEvC,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,0BAAW,CAAA;AACb,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AAMD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,MAAc,EACkC,EAAE;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAmB;QAC/B;YACE,GAAG,EAAE;gBACH,MAAM,EAAE,MAAM,GAAG,WAAW;gBAC5B,MAAM,EAAE,KAAK;aACd;SACF;KACF,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;IAC1D,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/utils/converter.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAU,EAAE;IAC9D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAC7B;SAAM;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;KACnC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAc,EAAE;IAC9D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;QAC3C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KAC7B;SAAM;QACL,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;KAClD;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAmB,EAAiB,EAAE;IAC/E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAsB,EAAc,EAAE;IAC9E,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAsB,EAAe,EAAE;IAChF,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAU,EAAE;IACjE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAe,EAAE;IACpF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAiB,EAAE;IACpE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAyB,EAAU,EAAE;IAClE,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAiB,EAAE;IACtE,MAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAC1E,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,iBAAoC,EAAc,EAAE;IAC3F,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,iBAA6B,EAAqB,EAAE;IAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,SAAoB,EACpB,UAAuB,EACf,EAAE;IACV,+DAA+D;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAc,EAAE;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAiC,EAAE;IACtF,IAAI;QACF,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;YACrB,OAAO,4BAA4B,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9D;QACD,OAAO,SAAS,CAAC;KAClB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CACxC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5E,UAAU;AACV,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAc,EAAE;IAC9D,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,SAAW,CAAC;AAEvC,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,0BAAW,CAAA;AACb,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE;IAClD,QAAQ,GAAG,EAAE;QACX,KAAK,WAAW,CAAC,GAAG;YAClB,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;KACZ;AACH,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,MAAc,EAGF,EAAE;IACd,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAmB;QAC/B;YACE,GAAG,EAAE;gBACH,MAAM,EAAE,MAAM;gBACd,aAAa;gBACb,MAAM,EAAE,KAAK;aACd;SACF;KACF,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5D,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,MAAM,EAAE;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAU,EAAE;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAe,EACf,OAAO,GAAG,CAAC,EACH,EAAE;IACV,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC;IACtE,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,eAAe,GAAG,MAAM,CACtB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CACrD,CAAC;KACH;IACD,OAAO,eAAe,GAAG,eAAe,CAAC;AAC3C,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,OAAO,GAAG,CAAC,EACI,EAAE;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;IACjD,IAAI,SAAS,GAAG,GAAG,CAAC;IACpB,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,mBAAmB,GAAG,OAAO,EAAE;QACjC,SAAS,GAAG,aAAa,CAAC,SAAS,CACjC,mBAAmB,GAAG,OAAO,EAC7B,mBAAmB,CACpB,CAAC;QACF,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;KACvE;SAAM;QACL,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KAClD;IACD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAEhF,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,GAAG,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE,CACzD,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,IAAI;QACF,OAAO,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;KACrD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE;IACjD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;KACxE;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,8BAAe,CAAA;IACf,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;IAC7C,IAAI;QACF,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,WAAW,CAAC,OAAO,CAAC;SAC5B;aAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;YACpC,OAAO,WAAW,CAAC,SAAS,CAAC;SAC9B;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,WAAW,CAAC,QAAQ,CAAC;SAC7B;QACD,OAAO,WAAW,CAAC,OAAO,CAAC;KAC5B;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC"}